Re: luajit occasionally crashes

  • From: Mike Pall <mike-1308@xxxxxxxxxx>
  • To: luajit@xxxxxxxxxxxxx
  • Date: Fri, 16 Aug 2013 13:07:40 +0200

cx0cx2001 wrote:
> How can I get the function name, the value of argment k?

Lua functions do not have names internally: the debug names are
derived from the calling bytecode, which is quite complicated.

The Lua stack is at J->L->base[0] etc. until J->L->top. But it's
not so easy to interpret the values. E.g. use this:

  p (char *)J->L->base[1].gcr.gcptr32 + 16

if the second argument (k) is a string value, and so on.

> And, is it possible that I get callstack of lua from core dump?
> Such as, use debug.getinfo(i, 'Sln') and debug.getlocal(i, j),  I can get 
> callstack and local var in lua function by setting var i and j.

It's difficult to use the Lua API functions directly from GDB. You
could write a C function that prints the stack and run it from GDB:

  call dumpstack(J->L)

But, as I said, the problem is unlikely to be at the function that
triggers the crash. The problem happens earlier and the assertions
ought to catch that.

--Mike

Other related posts: