【问题标题】:Set breakpoint at specific line with gdb使用 gdb 在特定行设置断点
【发布时间】:2021-04-01 05:39:46
【问题描述】:

我有两个文件:

bomb.cbomb(可执行文件)。在.c 文件中有对bomb 文件的调用。我看不到炸弹文件的内部,当然只有反汇编。

我目前在 Linux 上运行,我正在尝试设置一些断点以更好地了解炸弹文件的内部。

我愿意:

gdb bomb
b 0x0000000000401061

但它不起作用,因为我收到错误:

Function "0x0000000000401061" not defined.

bomb 的反汇编中,我能够识别出一些功能,如果可以的话:

b [function name]

断点已设置。

我希望将它设置为一个特定的行,这不是一个函数。 我该怎么做?

【问题讨论】:

  • 为什么只能看到反汇编?不能用调试符号编译吗?
  • gdb -g bomb.c -o bomb; gdb bomb; 在 gdb 内部,执行 break bomb.c:45 在第 45 行设置断点。
  • 这能回答你的问题吗? Set breakpoint at specific line with gdb
  • @WilliamPursell 如果我编写该命令,我会得到:unrecognized option -g
  • @ucei 抱歉,应该是gcc -g bomb.c -o bomb。您需要使用调试符号进行编译

标签: linux debugging gdb breakpoints disassembly


【解决方案1】:

对我有用的解决方案:

b *0x401061

代替:

b 0x0000000000401061

【讨论】:

    猜你喜欢
    • 2018-12-15
    • 1970-01-01
    • 2018-05-13
    • 2019-02-15
    • 2020-02-25
    • 1970-01-01
    • 1970-01-01
    • 2015-09-22
    • 1970-01-01
    相关资源
    最近更新 更多