问题标签 [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 投票
0 回答
536 浏览

android - 如何从带有地址和偏移量的 base.odex 获取函数名称

这是一个 android 应用程序崩溃堆栈跟踪:

F 调试:#05 pc 001d0949 /data/app/com.test-2/oat/arm/base.odex(偏移量 0x12a000)

我知道“.so”库,我可以使用 addr2line 来获取函数名。

那么如何处理odex文件呢?

0 投票
1 回答
161 浏览

c++ - Making sense of the addr2line message with C++ STL

I have been having this rare segfault, and while debugging it, I managed to get the following output from addr2line program.

Since _S_copy_chars() is a private function in std::string, I am obviously not calling it directly. But I am unable to guess which public function is calling it. If I can figure out the public function, I can zero in on the null de-referencing that is causing the segfault.

I am suspecting the following code...

The Other candidate is this:

0 投票
1 回答
140 浏览

linux - 如何从配置文件地址获取函数名称?

我在 Linux 中组装了一个性能分析器,但在将收集的堆栈跟踪信息映射到函数名称时遇到了问题。

我目前正在从我的后处理代码中调用 addr2line

但是,这非常慢,因为我的个人资料有很多样本。有没有像 addr2line 这样更快的其他实用程序,或者我可以以比我现在更有效的方式调用 addr2line 吗?

0 投票
2 回答
988 浏览

c++ - Libunwind PC 值不适用于 addr2line

我正在尝试遵循链接中的示例: https ://eli.thegreenplace.net/2015/programmatic-access-to-the-call-stack-in-c/

但是我遇到了一些问题。我有一段像这样使用 libunwind 打印回溯信息的代码:

测试.cpp

运行此代码会产生如下输出,即程序计数器值:(function_name+0xoffset)

正如上面的链接中提到的,函数名称左侧的程序计数器值可以馈送到 addr2line 以获取文件名和行号信息。但是,每当我尝试这样做时(例如,对于函数 foo):

查看 objdump 文件后,我发现函数 foo 有一个调试条目:

当我将 DW_at_low_pc 的值输入到 addrline 时,它​​设法产生正确的输出。

  1. 首先为什么libunwind返回的PC值与DW_AT_low_pc的不同?

  2. 似乎 libunwind 正在为 PC 返回一个不正确的值,但如果是这种情况,那么 libunwind 如何获取函数名称?

  3. 有没有什么方法可以从 libunwind 给出 PC 值,我可以使用 addr2line 或其他命令行工具获取文件名和文件号?

感谢您的阅读,我知道这是一个很长的问题。

0 投票
0 回答
1355 浏览

c - 调试符号的 addr2line 命令搜索路径

我无法使addr2line工作。它确实在三个(不存在的)路径上查找符号:

但它似乎忽略了默认情况下实际安装所有调试符号的路径:

我像这样运行 *addr2line**:

我是否缺少一些配置开关、系统选项或类似的东西?


那是问题陈述,现在是我所说的一些证据。在这里,我将使用程序屏幕作为示例:

在这里,我们凭经验找出了screen的调试符号在哪里:

现在我们运行strace addr2line来查看它尝试访问的位置...

在这里,我们看到了我之前提到的 3 条路径,但没有任何所需的迹象。

0 投票
1 回答
1873 浏览

linux - 内核地址上的 addr2line 找不到源代码行

我正在构建一个启用了调试符号的自定义 linux 内核(4.15.0 x86_64)。我发现 addr2line 无法指向源代码行。

addr2line -e vmlinux 0xffffffff9be625f0

gdb 还使用以下命令返回“没有可用于地址的行号信息”

$ gdb ../linux/vmlinux /proc/kcore

...从../linux/vmlinux...读取符号...完成。

$ 信息行 *0xffffffff9be625f0

应该怎么做才能从地址中获取行号?这是.config文件。

0 投票
2 回答
1942 浏览

c - 如何使用 Kernel Panic log 识别内存损坏的原因?

我的定制硬件基于 imax6q 处理器。我正在使用的内核 - Linux 边界 4.1.15。在我的自定义硬件设计上运行 linux 应用程序时,我遇到了内核恐慌。那么我该如何调试它以澄清这是硬件相关还是软件问题?或者如何解决哪个内存正在损坏?

目前我正在使用addr2line -e vmlinux_with_debug_info 804a47e8来解码内核恐慌消息。但它只在发生恐慌时显示内核源代码(程序计数器停止的地方)。

1)作为以下内核日志的示例,当我解码 [804a47e8] 时,它仅提供内核源。那么你知道如何识别哪个内存会损坏吗?或者我们可以得到更多的细节吗?

前任 :

使用 addr2line>>

所以源是 rbtree.c 并且第 457 行会崩溃。

在文件 entry-armv.S 中,第 1219 行指向 addr2line

像这样我可以识别一些文件,例如;

和他们的台词。有了这个我怎么知道内核或内存出了什么问题?

2)如果内核恐慌日志在恐慌发生时指向上述文件,我们可以从中得出什么结论?我们能找到内存损坏的原因以及这些信息的原因吗?

内核恐慌日志

问候,彼得。

0 投票
1 回答
2552 浏览

c++ - C++ - 在 Windows 上是否有任何命令喜欢 addr2line

如果 Windows 应用程序在没有 pdb 的情况下在用户设备上崩溃,它将产生如下调用堆栈:

但是我在开发设备上有.PDB文件,所以我想通过.PDB地址源行。我知道addr2line在 Linux 上可以通过 .so 文件寻址行的命令,我想知道addr2line在 Windows 上是否有类似的命令。

0 投票
1 回答
4019 浏览

macos - 如何使用atos?(或 Mac OS X 上的 addr2line)

我看到以下示例使用addr2line. 但是 和 的接口atosaddr2line不同的。我不确定如何使用atos. 有人可以告诉我如何将其转换为 usingatos吗?

https://balau82.wordpress.com/2010/10/06/trace-and-profile-function-calls-with-gcc/

或者,有没有办法让 addr2line 在 Mac 上工作(众所周知 addr2line 在 Mac OS X 上不能很好地工作)?我只是??使用addr2line. 谢谢。

0 投票
0 回答
535 浏览

unity3d - 这是什么统一错误?Addr2Line 故障

突然我有这个错误,我不知道如何解决。

  1. 我在电脑上有这个错误

/.................................................. ......... Addr2Line 故障

脚本后端:il2cpp

构建类型:发布

CPU:arm64-v8a


Addr2Line 故障

脚本后端:il2cpp

构建类型:发布

CPU:arm64-v8a

C:/Program Files/Android/android-ndk-r16b/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64/bin/arm-linux-androideabi-addr2line.exe -C -f -p -e C :\ program Files \ Unity \ hub \ editor \ 2019.1.0f2 \ editor \ data \ plaphbackEngines \ androidplayer \ variations \ variations \ il2cpp \ repares \ symbors \ arm64-v8a \ libunity \ libunity.so \ libunity.so 000000000000000000000000000000000000000000000000来00000000.00.0000000000来州000000000000000000000000000000000000000000000000000000000000来零000000000000000000000000000000000000来00000000..00.800车0000000000000000000000000000000000000000000000000000000000000000000000000000000000来00000000.00..800开间

标准错误 [C:/Program Files/Android/android-ndk-r16b/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64/bin/arm-linux-androideabi-addr2line.exe: 'C:\Program' :没有这样的文件]标准输出[

]退出代码:1

/.................................................. …………

  1. 构建android应用程序后出现此错误。

错误:当前不可用 il2cpp 行:-1