LLDB是一个构建为一组可重用组件的调试器,它高度利用较大LLVM项目中的现有库,例如Clang表达式解析器和LLVM反汇编程序。
在 GDB 中,我有一个 Python 脚本,每当当前文件/行号发生变化时,它都会使用 gdb.prompt_hook 向打开的 vim 会话发送命令。有效地给我一个“实时更新”所以...
LLDB Python 脚本 - 如何在特定地址添加模块或加载符号文件?
在 LLDB 中,您可以在调试会话期间执行以下操作,以在特定地址添加丢失的符号: 目标模块加载 --file .text 0x 你怎么能这样... 在 LLDB 中,您可以在调试会话期间执行以下操作,以在特定地址添加丢失的符号: target modules load --file <symbol file> .text 0x<address> 如何使用 LLDB Python 脚本模块来做到这一点?我查遍了API也没找到对应的方法。 我想通了。您可以使用 debugger.HandleCommand 来运行任意 LLDB 命令。我解决这个问题的一般方法是定义并注册一个可以在 LLDB 调试会话期间调用的函数。 例如: def load_libraries(debugger, command, result, internal_dict): print(f"image add some_library.so", flush=True) debugger.HandleCommand(f"image add some_library.so") print(f"target modules load --file some_library.so .text 0x<some address>", flush=True) debugger.HandleCommand(f"target modules load --file some_library.so .text 0x<some address>")
在 GDB 中,您可以执行 add-symbol-file 来加载特定地址处的符号文件。 LLDB 中的等效项是什么? 我已经尝试过了 图片添加 他... 在 GDB 中,您可以执行 add-symbol-file <library> <address> 来加载特定地址处的符号文件。 LLDB 中的等效项是什么? 我已经尝试过了 image add <symbol file> target modules load --file <symbol file> .text <address> 但这似乎并不能解决未知符号 命令是正确的,事实证明我只是缺少额外的符号。 通过查看cat /proc/$(pidof <my_program>)/maps | grep xp | grep <first 5-7 characters of the missing address>我能够找出丢失的符号文件 然后我像平常一样加载它们 image add <missing symbol file> target modules load --file <symbol file> .text 0x<address>
如何在 xcode 调试器(lldb)中导入项目并打印铸造的 swift 对象
我已将调试器附加到正在运行的应用程序。现在我尝试使用以下命令在 lldb 控制台中打印铸造的 Swift 对象: expr -l Swift --导入 MyProjectName expr -l Swift -- 让 $vc = unsafeB...
如何使用 VSCode 和 LLDB 检查局部变量或使用带有 Rust 代码的监视窗口?
我正在尝试使用 VSCode 调试 Rust 应用程序,但我无法检查任何局部变量或使用监视窗口(请参阅附件)。 所有断点都工作正常,我只是看不到任何变量...
CLion SIGABRT 我使用的是 CLion 2024.1.6,lldb-1600.0.39.3。在调试模式下,程序触发了SIGABRT。预计应该在此处触发断点。我想知道问题出在哪里...
我正在从源代码构建 AOSP,并创建了一个小型 C++ 程序,该程序在启动时将一些消息打印到 logcat。现在我想根据https://source.android.com/device来调试程序...
我是Mac新手,我想知道如何在MAC上安装LLDB。 我正在运行 OS X 10.11 El Capitan GM。 我需要在 iOS 上调试我的一位朋友的应用程序。 我想而不是使用 xc...
我使用 codelite 的大型应用程序可以使用 g++ 很好地构建并启动并运行。当我尝试启动 lldb 或 gdg 时,监视器上会闪烁一些内容然后停止,或者只是什么都不做。 我
我在 MacOS 12 Monterey 12.6.6 上使用 CodeLite 17.0.0 我按照 CodeLite 的“调试适配器客户端”页面上的步骤通过brew 下载 llvm,但是当我运行 lldb 时,出现超时错误...
为什么C++中的LLDB能够打印我的整个数据结构,但无法打印子组件?
我使用的是 Mac OS Sonoma 14.5,通过 x 代码工具安装了 LLDB 1500.0.404.7。我注意到我的 LLDB 的行为方式相当令人困惑。它能够打印出一些 std:containers 的整个...
Xcode lldb 无法附加到 MacOS 系统程序 /bin/cp - “不允许附加到进程。”
当我尝试使用 Xcode 12.4 附带的 LLDB 在 macOS Catalina 10.15.7 和 Big Sur 11.2.2 上运行 Unix cp 命令时,当我启动该进程时,LLDB 会冻结几秒钟,然后失败...
使用 LLDB 调试内联 ASM - 将指令视为步骤命令的单独语句?
在 LLDB 中,step 命令将整个 asm{} 块作为单个“语句”步进。 有没有办法让它单独处理每条指令,这样你就不必使用 si 来单步指令......
我有一个简单的 macOS 应用程序,它生成 14 个运行相同函数的线程。 如果我在函数中设置断点,并从命令行 lldb 中运行应用程序,而不是中断...
我在 OSX 中使用 lldb 作为独立调试器。我正在尝试通过重定向的方式调试 C 可执行文件,使用文本文件作为输入。 lldb 文档为 chan 指定了以下命令...
使用 SetScriptCallbackFunction 注册的函数在内部调用 StepOut() 后不会继续执行
我有一个关于 LLDB Python 脚本的问题。 我正在运行《高级 Apple 调试和逆向工程》一书中的示例脚本: https://github.com/kodecocodes/dbg-materials...
我正在将一个应用程序移植到 macOS,以接管键盘焦点。这是段错误,我在附加 lldb 和运行程序时没有任何问题,直到它在进入函数之前遇到断点...
我想知道是否有一个选项可以将许多头文件(C++头文件)导入到lldb中。我的目标是能够将地址解析为结构/对象,例如: p *(some_struct *)<
我正在使用 rust-lldb 来探索 Rust 中的函数项和函数指针。代码很简单: // src/main.rs #[内联(从不)] fn add(a: i32, b: i32) -> i32 { a+b } #[内联(从来没有...
我正在处理难以重现的内存崩溃,并使用 wwdc18 会话 414 中提供的指导以及本文中的其他线索进行故障排除 我没有任何象征性的问题...