Plans for fork/exec debugging



Hello,

I have been willing to support fork/exec debugging in Nemiver for quite
some time now. Now that that we have disassembling support almost ready
I think it's about time to start talking about this feature.

Basically when a program does some forking, it would be nice to be able
to e.g. be notified when the fork or exec happens, be able to choose the
either follow the child or the parent process, that kind of things.

I have started to think about all this and I thought I'd maybe share the
TODO list that resulted from my ramblings.

So here is what I think we need to support.

A. Add a setting to let the user specify if she want to either follow
the parent or the child process when a fork occurs.

B. Break on fork, vfork and exec system calls.

  Doing this involves adding new entry points to the IDebugger
  interface to break on these events, and extending the breakpoint
  setting dialog to let the user break on these too.

  Ice on the cake, support breaking on all system calls. Not really needed for
  this feature, but since we are at it, we'd do it as well.

C. Support GDB/MI asynchronous thread related notifications

GDB/MI sends asynchronous notifications about thread and thread groups
creation, destruction and selection. We need to parse those
notifications and let IDebugger emit signals for those. I'd like to
provide a new widget in the UI that would log these thread life cycle
related events to let the user know about which thread(-group) is
running the code she is seeing.

A bug was created to track this feature already at
https://bugzilla.gnome.org/show_bug.cgi?id=581377

I have created the branch named "follow-fork-mode" to host code for
this. That branch depends on the asm-support branch that I think should
be merge-able into master "Real Soon Now (tm)".  For now, only the point
A. has been implemented. It was the easy part that let me uncover the
need for B and C.

Comments welcome.

Cheers.

-- 
	Dodji


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