23

寻找与 gdb“目录”命令等效的 lldb 来添加搜索路径以查找丢失的源代码(或可能在 xcode 中的类似功能)?

提前致谢!

4

2 回答 2

32

该设置允许您在调试会话中target.source-map定义一系列路径重新映射。a => b它与 gdb dir命令不同,后者是一个目录列表,用于按基本名称搜索源文件,但您可以使用source-map. 这是一个示例,我在编译后将源文件移动到隐藏目录:

% cd /tmp
% echo 'int main () { }' > a.c
% clang -g a.c
% mkdir hide
% mv a.c hide/
% xcrun lldb a.out
(lldb) settings set target.source-map /tmp /tmp/hide
(lldb) l -f a.c
   1    int main () { }
(lldb) br se -n main
Breakpoint created: 1: name = 'main', locations = 1
(lldb) r
Process 21674 launched: '/private/tmp/a.out' (x86_64)
Process 21674 stopped
* thread #1: tid = 0x1f03, 0x0000000100000f49 a.out`main + 9 at a.c:1, stop reason = breakpoint 1.1
    #0: 0x0000000100000f49 a.out`main + 9 at a.c:1
-> 1    int main () { }
(lldb) 

有关此设置的更多信息,请键入set list target.source-maplldb。fwiw 您可能已经在 lldb 中发现了这一点,这将列出名称/描述中apropos path包含单词路径的所有命令/设置。看到有这个名称的设置,您settings list可以查看设置列表并发现它在target..

于 2012-10-19T19:32:41.983 回答
-1

lldb无法找到源文件的问题可能是由有缺陷的编译过程引起的 - 我只是花了几个小时试图找到一个lldb命令来强制设置源文件的路径,但最终发现我执行了实际编译和链接我的...中的相同标志集(-Wall -Werror -Wextra -gMakefile因此编译器在没有警告和错误消息的情况下工作,尽管实际上存在错误(或警告被视为错误)。修复它们固定lldb的工作流程。也许开发人员应该考虑添加一些警告(对于像我这样的新手),以防程序无法找到源(它们位于src文件夹中的同一目录中)。

于 2020-02-07T19:06:52.010 回答