
这是一个API参考:
http://www.cs.cmu.edu/afs/cs/Web/People/tekkotsu/dox/StackTrace_8h.html
应该适用于所有linux内核
这是C中的另一个例子
http://www.linuxjournal.com/article/6391
#include <stdio.h>#include <signal.h>#include <execinfo.h>voID show_stackframe() { voID *trace[16]; char **messages = (char **)NulL; int i,trace_size = 0; trace_size = backtrace(trace,16); messages = backtrace_symbols(trace,trace_size); printf("[bt] Execution path:\n"); for (i=0; i<trace_size; ++i) printf("[bt] %s\n",messages[i]);}int func_low(int p1,int p2) { p1 = p1 - p2; show_stackframe(); return 2*p1;}int func_high(int p1,int p2) { p1 = p1 + p2; show_stackframe(); return 2*p1;}int test(int p1) { int res; if (p1<10) res = 5+func_low(p1,2*p1); else res = 5+func_high(p1,2*p1); return res;}int main() { printf("First call: %d\n\n",test(27)); printf("Second call: %d\n",test(4));} 总结 以上是内存溢出为你收集整理的在HP-UX和Linux上进行堆栈展开全部内容,希望文章能够帮你解决在HP-UX和Linux上进行堆栈展开所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)