【问题标题】:how to get the info via the address of library(so) when in gdb在gdb中如何通过库(so)的地址获取信息
【发布时间】:2016-11-22 07:58:09
【问题描述】:

进程崩溃并生成了坟墓(墓碑)。它是由信号6(SIGABRT) 触发的。而且回溯很浅:

signal 6 (SIGABRT), code 0 (?), fault addr --------
    r0 00000000  r1 000008b5  r2 00000006  r3 000008b5
    r4 00000006  r5 00000002  r6 2b094be4  r7 0000010c
    r8 00000038  r9 00000002  sl 2c653680  fp 2c653c98
    ip 2c655920  sp 2c653560  lr 2af9ecf4  pc 2af9d8d4  cpsr 20000010
backtrace:
    #00  pc 0002c8d4  /lib/libc.so.6 (raise+60)
    #01  pc ffffffff  <'unknown'>

在堆栈中,找到有关可疑库的跟踪,并在线程中,通过映射传输地址。使用工具 address2line 获取有关符号的更多信息。虽然符号可能在 .data 部分。输出如下:

$d
crtstuff.c:?

然后我想通过 gdb 在运行时中的库(so)中通过事故点附近的地址获取信息。是否可行?如果是,怎么做?

【问题讨论】:

    标签: c++ gdb tombstone


    【解决方案1】:

    怎么做?

    认为你正在寻找(gdb) info symbol 0x123456

    【讨论】:

    • 是的,很棒。谢谢!
    猜你喜欢
    • 2018-06-22
    • 2015-12-19
    • 1970-01-01
    • 2018-08-19
    • 1970-01-01
    • 2022-06-12
    • 2021-08-18
    • 2017-04-05
    • 1970-01-01
    相关资源
    最近更新 更多