gpt4 book ai didi

c++ - 在 C++ 中跟踪函数调用的方法

转载 作者:行者123 更新时间:2023-11-28 05:36:26 25 4
gpt4 key购买 nike

我使用的大型软件包没有任何一致的方法错误处理。我看到这样的错误消息:

ERROR: stupid message

现在,使用 grep 等,我能够找到发出此消息的函数,即

void somefunc(Arg1 arg1, Arg2 arg2, ...){
// ...
std::cout << "ERROR: stupid message" << std::endl;
}

但是,我很难找出在我的用例中调用此函数的位置。如果这是异常或段错误,我可以看到堆栈跟踪 - 但像这样,我有点迷路了。

我无法触及 somefunc 的代码,所以我想我必须使用 valgrind 或类似的东西来找到有问题的函数调用,但我不知道该怎么做。我正在使用 Linux 系统并使用 g++ 编译我的代码,但我无法更改或重新编译包含 somefunc 的代码部分。有什么建议吗?

最佳答案

这里有一些技巧(工具)可以帮助您:

使用调试器

在输出语句处放置一个断点。到达断点时,打印回溯或查看调用堆栈。

生成调用树

一些文档工具,如 Doxygen,可以生成“调用者”和“被调用者”图。您可以使用这些来搜索可能的执行路径。

关于c++ - 在 C++ 中跟踪函数调用的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38208248/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com