C 如何使用QNX中的线程类型访问每个线程的堆栈?
QNX中微子中的线程数据类型是什么?C 如何使用QNX中的线程类型访问每个线程的堆栈?,c,unix,operating-system,qnx,qnx-neutrino,C,Unix,Operating System,Qnx,Qnx Neutrino,QNX中微子中的线程数据类型是什么? 如何使用线程*值访问线程堆栈的内容,就像使用gdb命令工具调试堆栈帧一样 您可以在自己的线程中检索特定线程的寄存器值,或者如果您是另一个进程的root用户,则可以通过/proc文件系统检索该线程的寄存器值 首先,使用DCMD_PROC_CURTHREAD devctl选择要检索其寄存器的线程: 然后使用DCMD_PROC_GETREG检索寄存器的值,包括堆栈指针 如果您是从同一进程的另一个线程执行此操作,则可以使用SP的值,因为您位于相同的地址空间中 如果从
如何使用线程*值访问线程堆栈的内容,就像使用gdb命令工具调试堆栈帧一样 您可以在自己的线程中检索特定线程的寄存器值,或者如果您是另一个进程的root用户,则可以通过/proc文件系统检索该线程的寄存器值 首先,使用DCMD_PROC_CURTHREAD devctl选择要检索其寄存器的线程: 然后使用DCMD_PROC_GETREG检索寄存器的值,包括堆栈指针 如果您是从同一进程的另一个线程执行此操作,则可以使用SP的值,因为您位于相同的地址空间中 如果从另一个进程执行此操作,则需要通过/proc/PID/读取地址空间,如所述:
如果可能的话,您必须记住,在检查其他线程堆栈时,它可能会在您阅读时发生更改。当然,除非你暂停另一个线程。是的!我将要读取其堆栈的线程在读取期间未运行。