我没有深入细节,我正在研究一个程序,它由几个独立的进程组成,所有进程都在嵌入式QNX RTOS上运行。他们没有亲子关系,他们都使用spawnlp(P_NOWAIT, ...)
产生,他们都使用OS提供的IPC机制相互通信。在多个进程中使用GDB进行调试
当我使用GDB进行调试时,在我正在使用的进程中打断点时,所有线程都暂停,这非常棒。但有没有办法让它暂停执行我的其他进程?眼下发生的事情是所有其他进程继续道路行驶,而我的过程被暂停,因此所有的IPC队列得到充分等等,等等
由于提前,
HF
我没有深入细节,我正在研究一个程序,它由几个独立的进程组成,所有进程都在嵌入式QNX RTOS上运行。他们没有亲子关系,他们都使用spawnlp(P_NOWAIT, ...)
产生,他们都使用OS提供的IPC机制相互通信。在多个进程中使用GDB进行调试
当我使用GDB进行调试时,在我正在使用的进程中打断点时,所有线程都暂停,这非常棒。但有没有办法让它暂停执行我的其他进程?眼下发生的事情是所有其他进程继续道路行驶,而我的过程被暂停,因此所有的IPC队列得到充分等等,等等
由于提前,
HF
可以关联带有每个断点的GDB命令列表。所以,当你打的过程中一个断点,比如,你可以发送一个SIGTRAP处理B,应该把它扔到调试器:
(gdb) b main
Breakpoint 1 at 0x804834a: file testA.c, line 40.
(gdb) command
Type commands for when breakpoint 1 is hit, one per line.
End with a line saying just "end".
>shell kill -s TRAP `pidof testB`
>end
(gdb)
我认为可能会这样做,它可能不会完全停止其他进程,而是应该尽快阻止它们足够快以防止IPCt队列被填满 –
我不知道他们是否会仍然与当前的gdb进程关联。 – ravi