gpt4 book ai didi

c++ - 将 mtrace 用于 c++

转载 作者:IT老高 更新时间:2023-10-28 23:17:15 28 4
gpt4 key购买 nike

当我在我的 c++ 程序中使用 mtrace 时,我得到如下输出

内存未释放:

  Address           Size        Caller 
0x0804a3c8 0x4 at 0x400b159f

我如何知道代码中 0x400b159f 的位置?

最佳答案

在许多 unix 系统上,您还可以使用 addr2line 实用程序将地址映射回文件名和行号。此实用程序要求使用调试标志(-g 表示 gcc)编译代码。对于名为 wombat 的程序,您可以像这样使用它:

addr2line -e wombat 0x400b159f

它会打印出类似的东西

wombat_helper.c:1023

如果你得到 ??:0 则找不到函数。

更新:mtrace 报告的内存地址是调用 malloc 和 free 函数的位置。对于 C++,这几乎总是在 new 和 delete 运算符中,因此用途非常有限,没有其他信息,例如堆栈跟踪来告诉程序中的 new 或 delete 运算符是从哪里调用的。

关于c++ - 将 mtrace 用于 c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2256870/

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