重新获取二进制文件后保存断点

Saving breakpoints after re-sourcing binary

我有一个小的工作环境相关的疑问。我正在分析 LLDB 中的二进制文件,有时,我需要对代码进行一些更改并重新编译它。然后将新的二进制文件重新导入 LLDB 以供进一步分析。

目前,我正在做这个

  1. 在 LLDB 中,使用 shell <shell-command> 编译代码。
  2. 使用 file <binary> 重新加载二进制文件。

但是这样一来,我就失去了断点。那么,有什么方法可以保存断点吗?

两件事。

首先,如果您在用于当前 lldb 目标的同一路径上重新编译二进制文件,则无需创建新目标。当您执行 run 读取新的二进制和调试信息、重置断点等操作时,lldb 会注意到文件已更改

但是如果有其他原因需要创建一个新目标,lldb 有 breakpoint writebreakpoint read 命令允许您将断点序列化到一个文件,然后将它们读回一个新的目标。