- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
当我在我的 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/
我正在使用 gnu mtrace 工具来检查 C 代码中的内存泄漏。这会生成一个难以阅读的文本文件(大概是所有动态内存操作的日志),该文件可以由也称为 mtrace 的 perl 脚本解释。 我试过使
如何启用 mtrace() (和 MALLOC_TRACE env)用于没有源的二进制程序? mtrace 是 glibc 的特性:http://www.gnu.org/s/hello/manual/
我有一个程序执行 5 个 mallocs 和 3 个 free。我在开始时调用 mtrace(),在结束时调用 muntrace()。如果我正常运行程序,mtrace 将报告丢失的释放。如果我这样做:
我正在尝试使用 mtrace 检测 Fortran 程序中的内存泄漏。我正在使用 gfortran 编译器。有关 mtrace 的(工作)C 示例,请参见维基百科条目:http://en.wikipe
当我在我的 c++ 程序中使用 mtrace 时,我得到如下输出 内存未释放: Address Size Caller 0x0804a3c8 0
我是一名 c 程序员,我是 c++ 的新手。在 c 中,我们有 mtrace() 函数来跟踪有关分配和释放内存的信息。 是否有任何类似的功能可以做到这一点,但在 c++ 中。 最佳答案 mtrace不
为什么 Linux mtrace 实用程序不跟踪通过 mmap()/munmap() 调用完成的内存分配?如何实现以及实现的挑战是什么? 我需要一个可靠的工具来跟踪我的应用程序完成的内存分配,该应用程
所以我遇到了一个奇怪的问题,我希望有人能解释一下......我有以下代码: #include #include #include static void *run(void *args) {
我正在尝试调试内存泄漏问题。我正在使用 mtrace()获取 malloc/free/realloc 跟踪。我已经运行了我的程序,现在有一个巨大的日志文件。到目前为止,一切都很好。但是我在解释文件时遇
我是一名优秀的程序员,十分优秀!