使用 gprof 分析非终止 C 程序
Posted
技术标签:
【中文标题】使用 gprof 分析非终止 C 程序【英文标题】:Profile non-terminating C program using gprof 【发布时间】:2014-09-08 09:45:58 【问题描述】:我正在尝试使用 gprof 分析程序。关键是在某些情况下,程序不会自行完成,而是使用 Linux 执行时间限制。在这种情况下,不会生成文件“gmon.out”。
我想知道是否有一种方法可以获取某种分析信息,即使在程序超时结束的情况下也是如此。就我阅读here 而言,这是不可能的,所以对于我的问题的任何 cmet 或建议,我将不胜感激。
提前致谢!
【问题讨论】:
【参考方案1】:如果您确定没有信号处理某个信号,比如说SIGTERM
,您可以添加一个调用exit()
的信号处理程序。
然后您可以使用kill -SIGTERM pid
终止您的程序,并且应该创建gmon.out
。
【讨论】:
您好,感谢您的提示!我按照您的建议添加了信号管理,但由于我使用了_exit,仍然没有创建gmon.out,然后我将_exit替换为exit,文件创建成功。【参考方案2】:如果您在 gdb 中运行程序或可以将 gdb 附加到程序,您可以使用“p exit(0)”关闭程序并转储配置文件数据。
【讨论】:
以上是关于使用 gprof 分析非终止 C 程序的主要内容,如果未能解决你的问题,请参考以下文章
由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“UICollectionView 必须使用非零布局参数初始化