问题标签 [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.
android - 如何从带有地址和偏移量的 base.odex 获取函数名称
这是一个 android 应用程序崩溃堆栈跟踪:
F 调试:#05 pc 001d0949 /data/app/com.test-2/oat/arm/base.odex(偏移量 0x12a000)
我知道“.so”库,我可以使用 addr2line 来获取函数名。
那么如何处理odex文件呢?
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:
linux - 如何从配置文件地址获取函数名称?
我在 Linux 中组装了一个性能分析器,但在将收集的堆栈跟踪信息映射到函数名称时遇到了问题。
我目前正在从我的后处理代码中调用 addr2line
但是,这非常慢,因为我的个人资料有很多样本。有没有像 addr2line 这样更快的其他实用程序,或者我可以以比我现在更有效的方式调用 addr2line 吗?
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 时,它设法产生正确的输出。
首先为什么libunwind返回的PC值与DW_AT_low_pc的不同?
似乎 libunwind 正在为 PC 返回一个不正确的值,但如果是这种情况,那么 libunwind 如何获取函数名称?
有没有什么方法可以从 libunwind 给出 PC 值,我可以使用 addr2line 或其他命令行工具获取文件名和文件号?
感谢您的阅读,我知道这是一个很长的问题。
c - 调试符号的 addr2line 命令搜索路径
我无法使addr2line工作。它确实在三个(不存在的)路径上查找符号:
但它似乎忽略了默认情况下实际安装所有调试符号的路径:
我像这样运行 *addr2line**:
我是否缺少一些配置开关、系统选项或类似的东西?
那是问题陈述,现在是我所说的一些证据。在这里,我将使用程序屏幕作为示例:
在这里,我们凭经验找出了screen的调试符号在哪里:
现在我们运行strace addr2line来查看它尝试访问的位置...
在这里,我们看到了我之前提到的 3 条路径,但没有任何所需的迹象。
linux - 内核地址上的 addr2line 找不到源代码行
我正在构建一个启用了调试符号的自定义 linux 内核(4.15.0 x86_64)。我发现 addr2line 无法指向源代码行。
addr2line -e vmlinux 0xffffffff9be625f0
gdb 还使用以下命令返回“没有可用于地址的行号信息”
$ gdb ../linux/vmlinux /proc/kcore
...从../linux/vmlinux...读取符号...完成。
$ 信息行 *0xffffffff9be625f0
应该怎么做才能从地址中获取行号?这是.config文件。
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)如果内核恐慌日志在恐慌发生时指向上述文件,我们可以从中得出什么结论?我们能找到内存损坏的原因以及这些信息的原因吗?
内核恐慌日志
问候,彼得。
c++ - C++ - 在 Windows 上是否有任何命令喜欢 addr2line
如果 Windows 应用程序在没有 pdb 的情况下在用户设备上崩溃,它将产生如下调用堆栈:
但是我在开发设备上有.PDB文件,所以我想通过.PDB地址源行。我知道addr2line
在 Linux 上可以通过 .so 文件寻址行的命令,我想知道addr2line
在 Windows 上是否有类似的命令。
macos - 如何使用atos?(或 Mac OS X 上的 addr2line)
我看到以下示例使用addr2line
. 但是 和 的接口atos
是addr2line
不同的。我不确定如何使用atos
. 有人可以告诉我如何将其转换为 usingatos
吗?
https://balau82.wordpress.com/2010/10/06/trace-and-profile-function-calls-with-gcc/
或者,有没有办法让 addr2line 在 Mac 上工作(众所周知 addr2line 在 Mac OS X 上不能很好地工作)?我只是??
使用addr2line
. 谢谢。
unity3d - 这是什么统一错误?Addr2Line 故障
突然我有这个错误,我不知道如何解决。
- 我在电脑上有这个错误
/.................................................. ......... 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
/.................................................. …………
- 构建android应用程序后出现此错误。
错误:当前不可用 il2cpp 行:-1