如何知道哪个函数正在调用系统调用?
我使用 strace 跟踪我的应用程序,发现它在系统调用“poll”处被阻止,我想找出哪个函数正在调用这个系统调用。如何?
I use strace to trace my app,and find it is blocked at a system call "poll",I want to figure out which function is calling this system call.How?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您是否使用调试信息(gcc 的
-g
标志)编译程序?启动调试器并获取堆栈跟踪!示例程序(example.c):
示例构建&回溯:
Did you compile your program with debugging information (the
-g
flag for gcc)? Fire up your debugger and get a stack trace!Example program (example.c):
Example build & backtrace:
只需输入:
gstack
pid即可获取具有指定进程 ID 的程序的堆栈跟踪。
Just type:
gstack
pidto get a stack trace of your program with the specified process id.