QNX中微子中的THREAD数据类型是什么? 如何使用THREAD *值访问线程堆栈的内容,就像使用gdb命令工具调试堆栈帧一样?
答案 0 :(得分:0)
您可以通过/ proc文件系统在另一个进程中检索您自己的特定线程的寄存器值或(如果您是root用户)。
首先使用DCMD_PROC_CURTHREAD devctl()选择要检索寄存器的线程:
之后使用DCMD_PROC_GETREG来检索寄存器的值,包括堆栈指针。
如果您是从同一进程的另一个线程执行此操作,则可以使用SP的值,因为您位于相同的地址空间中。
如果您是从另一个进程执行此操作,则需要通过/ proc / PID /读取()地址空间,如下所述: http://www.qnx.com/developers/docs/6.5.0_sp1/index.jsp?topic=%2Fcom.qnx.doc.neutrino_prog%2Fprocess.html&cp=13_7_3_4_1&anchor=Address_space