lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


> There is the debug interface, but from what I saw it allows me "only" to
> monitor the execution of code. If the code is executed I can monitor
> everything along the execution using the debug function.
> What I would like to have/realize is something like a usual debug interface
> where I can actually monitor the Lua execution from the "very beginning"
> which would be at "program start" (which would be luaL_loadfile in my case
> or any other of the load functions).

There are several debuggers that allow you to do something close to
this. The debug hook provided by the debug library can be used to
"stop" the application and accept commands from your controller (an
IDE or a command-line interface), which will allow you to implement
all "normal" debugging functions like stepping through the code,
setting breakpoints, and getting variable values.

I've described how this is done in my debugger (MobDebug:
https://github.com/pkulchenko/MobDebug) in this SO answer:
http://stackoverflow.com/a/11026978/1442917. It also integrates with
an IDE (in the signature), so you can see how this type of debugging
can work.

Paul.

ZeroBrane Studio - slick Lua IDE and debugger for Windows, OSX, and
Linux - http://studio.zerobrane.com/

On Sat, Sep 22, 2012 at 11:39 AM, Seppl Vorderhörer
<Seppl.Vorderhoerer@t-online.de> wrote:
> Well, probably I was not precise enough:
> I would like to write/get/reuse a debugger for my program which uses Lua
> embedded in the program.
>
> What I do is the usual stuff: Linking a number of C functions to Lua, then
> calling a (ore more) Lua script(s).
> This works perfectly (I was really surprised how easily and good Lua can be
> embedded and how powerful and fast it is, thank you for it by the way, it's
> really great stuff).
>
> What I lack is the ability to debug the Lua code - it got already way more
> complex than I ever thought as I saw that the C part can be kept small as
> many tasks can be done in Lua as well instead of having specialised C code -
> so some sort of introspective and/or debugging feature would come quite
> handy.
>
> There is the debug interface, but from what I saw it allows me "only" to
> monitor the execution of code. If the code is executed I can monitor
> everything along the execution using the debug function.
> What I would like to have/realize is something like a usual debug interface
> where I can actually monitor the Lua execution from the "very beginning"
> which would be at "program start" (which would be luaL_loadfile in my case
> or any other of the load functions). The logical approach to me would be to
> find out after the call to luaL_loadfile which lua scripts have been loaded
> and to represent them to the user in a debugger view so that she/he can
> place breakpoints, even view the underlying bytecode etc.
>
> As there are a number of debuggers available I guess this must be possible.
> But my starting point was the official documentation and there I found the
> debug API, gave it some thought and simply was not able to find out how I
> can do what I want to do.
> So my question is: Is it possible and I'm just thinking in the wrong
> direction? Which of the projects realizing debug functions or which source
> of documentation would be a good starting point?
>
> I will definitely take a look at your bytecode inspector, thanks for that.
> I understand, that there is no official documenation about the underlying
> bytecode and the VM?! Or is there?
>
>
>
>
> Am 22.09.2012 19:34, schrieb Luiz Henrique de Figueiredo:
>>>
>>> I miss stuff like "get a list of all functions for a loaded chunk",
>>
>> This does not make much sense because function definition is actually
>> an assignment.
>>
>>> maybe even "get insight into the compiled code in some way" etc.
>>
>> You can try lbci, my bytecode inspector library:
>>         http://www.tecgraf.puc-rio.br/~lhf/ftp/lua/#lbci
>>
>> If there is interest, I can update it to support Lua 5.2.
>>
>>
>
>