线程堆栈指针

Der*_*unk 4 c pthreads threadx

在Linux 2.6.32-32中,有没有办法在程序中以编程方式查找有关线程的以下信息pthreads?我需要:运行计数,堆栈指针,堆栈开始/结束,堆栈大小,堆栈使用.我想,有点像ThreadX,但在一个程序中.谢谢.

Bjo*_*rnD 6

  • pthread_getattr_np()应该为您提供线程的pthread属性
  • pthread_attr_getstack()返回堆栈地址和大小
  • 我不知道你的算术是什么意思.
  • 对于不同于当前线程的线程的堆栈指针,您可能需要使用ptrace.一旦拥有它,您可以使用它来进行数学运算,以确定使用了多少堆栈.

要获得自己的堆栈指针,您可以随时执行以下操作:

mword sp;
asm volatile ("mov %esp, $0" : "=r"(sp));
Run Code Online (Sandbox Code Playgroud)