[ZeroBrane Studio] Re: Change the tooltip formatting via interpreter? How to distribute interpreter & api?

  • From: Paul K <paul@xxxxxxxxxxxxx>
  • To: "zerobrane@xxxxxxxxxxxxx" <zerobrane@xxxxxxxxxxxxx>
  • Date: Mon, 20 Oct 2014 21:06:28 -0700

Hi Jan,

> I will be eagerly waiting for an update on this, then :D

Almost done with the prototype.

> Does the debugging still work if something tries to access and/or change the 
> Lua state from C++ (which happens frequently in our program)? It would be 
> slightly counter-productive if the C++ side would crash the program one frame 
> after debugging starts by trying to set a Lua value.

I don't see why not, although I haven't tested situations when the
debugger itself is interrupted and some changes are done to the VM
that is being debugged. Note that the debugging is using debug hook
functionality in Lua and during the hook execution all other hooks are
disabled.

> What happens when there are numerous Lua states, all running on different 
> threads (which also happens in our program)? For example a graphics thread 
> with Lua-scripted UI, a gameplay thread with Lua-scripted gameplay, etc..

There is no support for debugging of multiple Lua VMs from the same
instance of the IDE, although you can configure different instances to
handle different requests (by using different port numbers); see this
section in the FAQ:
http://studio.zerobrane.com/doc-faq.html#how-do-i-start-two-zerobrane-studio-instances-to-debug-two-applications-at-the-same-time

You can send multiple debugging requests to the same instance of ZBS
and all except the first one will be rejected, so it may be better to
pick one of the threads (or VMs) you want to debug and to start
debugging only for that thread/VM.

> Does the usage of LuaJIT make any difference here (we use it for obvious 
> performance reasons)?

No. In fact jit is disabled for the debugging to work based on Mike
Pall's recommendation.

> And if we would need to spend months on that feature, the time would probably 
> be better spent on something else. After all, Lua already has fine error 
> messages that are actually helpful. Most of the time, anyway.

Agree, that's your call; without knowing more about your setup I can't
say how much time it may take, but in general it's not too complex to
make it work for a multi VM environment. Maybe someone else will want
to comment...

Paul.

Other related posts: