我在Mac上使用LLDB,对于某些文件,它显然找不到源代码,因为我只是在进行反汇编。那么是否有任何设置可以帮助我找出它试图找到的文件以及它正在查找的位置,以便我可以找出要定义的源Map?
9bfwbjaz1#
除非你改变了你的帧格式设置,lldb会在常规的停止打印和回溯中打印源文件的基本名称。因此,在一个有调试信息但我们找不到源代码的帧中停止,您将看到如下内容:
frame #0: 0x0000000100003f50 missing_file`main(argc=1, argv=0x000000016fdff140) at missing_file.c:9:3
但没有后续来源。所以你知道有一个源代码来自名为missing_file. c的文件,lldb找不到它。如果你想知道missing_file. c的完整路径,请执行以下操作:(lldb)源信息-f missing_file. c它将显示完整的路径,这是您需要的源Map。如果这是一个更常见的问题,您可以在frame-format设置中将module.file.basename与module.file.fullname交换。然后,当你停在一个帧中时,你会立即看到源文件的完整路径。这不是默认设置,因为停止时通常不需要完整路径,而且路径可能很长。lldb当前没有“notifymissingsourcefiles searches noisily”模式。很容易猜出发生了什么,并且在给定源名称的情况下查找完整路径也很简单。搜索非常简单,它只查询debug信息路径,而target.source-map...因此,没有人觉得有必要从lldb获得更多关于搜索过程的细节。但是,如果您认为这是一个值得添加的内容,请使用lldb问题跟踪器提交ER:https://github.com/llvm/llvm-project/issues或者如果你觉得冒险尝试鞭打了一些自己!
frame-format
module.file.basename
module.file.fullname
target.source-map
1条答案
按热度按时间9bfwbjaz1#
除非你改变了你的帧格式设置,lldb会在常规的停止打印和回溯中打印源文件的基本名称。
因此,在一个有调试信息但我们找不到源代码的帧中停止,您将看到如下内容:
但没有后续来源。
所以你知道有一个源代码来自名为missing_file. c的文件,lldb找不到它。如果你想知道missing_file. c的完整路径,请执行以下操作:
(lldb)源信息-f missing_file. c
它将显示完整的路径,这是您需要的源Map。
如果这是一个更常见的问题,您可以在
frame-format
设置中将module.file.basename
与module.file.fullname
交换。然后,当你停在一个帧中时,你会立即看到源文件的完整路径。这不是默认设置,因为停止时通常不需要完整路径,而且路径可能很长。lldb当前没有“notifymissingsourcefiles searches noisily”模式。很容易猜出发生了什么,并且在给定源名称的情况下查找完整路径也很简单。搜索非常简单,它只查询debug信息路径,而
target.source-map
...因此,没有人觉得有必要从lldb获得更多关于搜索过程的细节。但是,如果您认为这是一个值得添加的内容,请使用lldb问题跟踪器提交ER:
https://github.com/llvm/llvm-project/issues
或者如果你觉得冒险尝试鞭打了一些自己!