【发布时间】:2014-08-06 10:13:48
【问题描述】:
我有一个 Mutex 对象,它的锁定函数在某些条件/时间被神秘地调用了很多次(它通过内部每个线程计数器进行跟踪,并以固定频率报告发生的总数)。如果我可以在代码中添加一个检查,例如,在固定时间段内每 100 次左右调用,它会记录谁调用了它,以便更好地了解谁可能有错,那就太好了。我认为这应该可以通过一些堆栈跟踪来实现,但我不确定从哪里开始或参考什么。有没有简单的方法来解决这个问题?
【问题讨论】:
-
你不能只在调试器中设置断点吗?
-
我可以,但是当它已经在运行并且日志记录会减少干扰时停止这个应用程序很困难/不方便
-
您不能将 gdb 附加到进程并检查堆栈上的函数吗?
-
您可能会向锁定函数添加一个参数,并让每个调用站点传递其自己的识别参数,例如一个整数。
标签: c++ linux stack-trace