gpt4 book ai didi

gdb - memcpy 回溯没有可用的符号

转载 作者:行者123 更新时间:2023-12-03 21:19:33 26 4
gpt4 key购买 nike

我不知道为什么我看不到这个回溯。加载了我自己的二进制文件中的符号,并且包 libc6-dbg已安装。我是否需要告诉 gdb 在哪里可以找到 libc 符号?

Program received signal SIGSEGV, Segmentation fault.
__memcpy_ia32 () at ../sysdeps/i386/i686/multiarch/../memcpy.S:74
74 ../sysdeps/i386/i686/multiarch/../memcpy.S: No such file or directory.
(gdb) bt full
#0 __memcpy_ia32 () at ../sysdeps/i386/i686/multiarch/../memcpy.S:74
No locals.
#1 0x00000000 in ?? ()
No symbol table info available.
(gdb)

最佳答案

从您的回溯来看,您的堆栈损坏可能会覆盖您的返回地址(主要是因为只有两个调用并且没有关于调用 memcpy 的代码的信息可用)。您是否可能正在使用 memcpy通过堆栈中的地址?

检查此类损坏的一种方法是使用 watch gdb 命令:

  • 最重要的部分是分隔应该损坏的调用。在您的情况下,应该调用 memcpy 或接近它。
  • 一旦你有一个可疑的函数,就在它上面添加一个断点。
  • 运行直到到达断点。
  • 通过以下方式将观察点设置为调用函数的地址:watch 0xXXXXXX
  • 运行直到到达观察点。

  • 如果返回地址被覆盖,db 应该停止损坏调用。

    关于gdb - memcpy 回溯没有可用的符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20560906/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com