问题标签 [addr2line]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
89249 浏览

android - 如何在 Android 中使用 addr2line

我被我的应用程序卡住了,因为我无法调试,因为它是一个多线程的应用程序并且崩溃并出现错误 SIGSEGV。我从 LogCat 获得了很多信息,它提供了我本地库中的地址。如果我可以将这些地址转换为我的代码,那将会很有帮助。

有人知道如何使用 android-ndk 提供的 addr2line 吗?

0 投票
4 回答
114709 浏览

c - 如何在 Linux 中使用 addr2line 命令?

我正在尝试在 Unix 中使用 addr2line 命令,但每次它都给出与 ??:0 相同的输出。我正在发出命令addr2line -e a.out 0x4005BDC。我在使用valgrind查找内存泄漏的工具运行此 a.out 可执行文件时得到了此地址。-g我还用选项编译了源代码。

0 投票
2 回答
11198 浏览

c - glibc 函数检索当前的可执行文件名?

我想知道是否有一个可以从 gcc/g++ 中使用的 glibc 函数来检索当前的可执行文件。

这样做的目的是提供 -e 参数, addr2line本答案所示

0 投票
3 回答
492 浏览

gdb - 是否有一个 addr2line 可以分析内存中的代码?

addr2line用来分析抛出异常后的堆栈跟踪(使用回溯和回溯符号)。目前,从磁盘分析 120Mb 二进制文件(调试版本)大约需要 2 秒。

是否有一个库(LGPL),它通过分析内存中的代码段来完成同样的工作?当然,这限制了我只能分析自己的应用程序——但在我的用例中,这就足够了。

0 投票
1 回答
5294 浏览

android - 如何在 Android 上使用 addr2line?

我的代码(在 Android 上使用 AndEngine 和 PhysicsBox2DExtension 的游戏)崩溃了,有人建议我使用 addr2line,但我完全不知道该怎么做,而且我看过的许多“教程”都非常模糊。也许有人可以给我一步一步的指示?

我正在使用 Windows 7 和 Eclipse Indigo。我已经下载了 Android NDK r8 并将其保存到 C:\Program Files (x86)\Android NDK\android-ndk-r8。我的项目保存到 C:\Users\Reese\workspace\TestGFX5。

堆栈跟踪:

除此之外,我迷路了。请帮忙?

0 投票
2 回答
9819 浏览

c++ - 是否有对 addr2line 的库调用?

我需要从 C++ 程序中获取 addr2line 提供的信息(回溯函数调用的文件和行)。是否有类似于 addr2line 的库调用?

编辑:我在 Linux 环境中工作。

我知道我可以直接调用 addr2line 并且我知道我可以在我的程序中使用 addr2line 的源代码(这也是 GPL 许可的)。但我想调用一个库函数,如果它存在的话,会更干净。

编辑:我将使用 binutils 的 bfd,就像 addr2line 一样。bfd 是什么意思呢?

0 投票
1 回答
9409 浏览

c++ - What's the "discriminator" in addr2line?

When running addr2line in some programs, I get a "discriminator N" comment at the end of the line:

main at /tmp/nsievebits.c:56 (discriminator 3)

The man page doesn't mention it, and a quick Google search seems to indicate mostly source code files, with no clear explanation. Is it some intentionally undocumented feature? More importantly, should I worry about it at all?

0 投票
0 回答
1569 浏览

linux - 有没有办法避免 addr2line 打印“问号”行

当我调用addr2line我的程序时,我得到了这种形式的输出:

是否有可能获得更清晰的输出(没有问号和零线 -????:0)?另一个可以解析地址并且更具可配置性的工具?

谢谢

0 投票
2 回答
3146 浏览

c++ - 分析由于库故障而发生的崩溃的回溯

在我的应用程序中,我设置了信号处理程序来捕获 Segfaults 并打印 bactraces。当进程启动时,我的应用程序会加载一些插件库。

如果由于主可执行二进制文件中的错误,我的应用程序因段错误而崩溃,我可以使用以下方法分析回溯:

它准确地显示了函数和 source_file:line_no

但是,如何分析是否由于插件中的错误而发生崩溃,如下面的回溯?

我的应用程序和插件库都已使用 gcc 编译并且未剥离。我的应用程序在执行时使用 dlopen 加载 plugin.so 不幸的是,崩溃发生在我无法在 gdb 下运行应用程序的站点上。

疯狂地在谷歌上搜索答案,但所有讨论回溯和 addr2line 的网站都排除了可能需要分析错误插件的场景。我希望一些好心的黑客知道解决这个困境的方法,并可以分享一些见解。对于其他程序员来说,这将是非常宝贵的。

提前致谢。

0 投票
1 回答
952 浏览

android - Why addr2line is not able to resolve certain address to function names?

I have backtraces obtained from executing the command dumpheap -n <PID> <file>. I have to convert these address to function names and line numbers to make these backtraces meaningful. I used addr2line to convert these addresses to function names. This is the command i used addr2line -C -f -e <libname>.so <address>. There are certain places where addr2line gives me $t in the place of function names but gives the filename:linenumber correctly. How should i resolve this '$t' into function name.