gdb跟踪进程时,可以用 info frame查看当前栈桢信息,可以用 frame 、up、down 改变当前栈桢
(gdb) info frame
Stack level 0, frame at 0x9fffffffbf6af1c0:  ==>当前栈地址
 ip = 0xc0000000003db5f0:0 in __doprnt_main; saved ip 0xc0000000003d5990:0 ==》代码段地址
 called by frame at 0x9fffffffbf6af1c0       ==》调用它的栈地址
 Size of frame is 96, Size of locals is 88, Size of rotating is 2.
 NAT collections saved at 0x9fffffffbf6915f8 0x9fffffffbf6917f8.
 Arglist at 0x9fffffffbf6914f8, args:  ==》main函数参数列表地址
 Locals at 0x9fffffffbf6914f8, Previous frame's sp is 0x9fffffffbf6af1c0
在GDB时,有个变量SP,标识当前栈的地址,所以可以使用如下方法,得到整个调用上下文栈的大小
(gdb) frame 0
(gdb) set $sp_save = $sp
(gdb) # the frame # of main or __pthread_bound_body
(gdb) frame 13
(gdb) p $sp - $sp_save
可以通过以下环境变量改变线程栈默认大小:
export PTHREAD_DEFAULT_STACK_SIZE =  (HP-UX)
AIXTHREAD_STKSIZE (AIX)

相关文章:

  • 2021-09-25
  • 2021-11-18
  • 2022-02-07
  • 2021-04-07
  • 2021-12-16
  • 2021-07-24
猜你喜欢
  • 2022-12-23
  • 2021-10-04
  • 2022-01-18
  • 2021-05-19
  • 2022-01-15
相关资源
相似解决方案