Llvm LLDB中是否有数据结构或类来存储从命令行键入的命令?

Llvm LLDB中是否有数据结构或类来存储从命令行键入的命令?,llvm,lldb,Llvm,Lldb,出于某些原因,我需要分析从stdin键入的命令,例如:“brs-fhello.cpp-l4”。但是我发现很难找到这些命令存储在LLDB中的位置。LLDB命令命令历史记录将转储当前LLDB会话中键入的所有命令。没有一个SB API可以以结构化形式获取此信息,但是命令输出是非常可解析的,使用sbcommandexplorer.HandleCommand可以通过编程方式获取命令结果 看起来,命令历史记录没有捕获多行输入(例如,在输入多行expr表达式时),尽管这与其说是一个功能,不如说是一个疏忽 ll

出于某些原因,我需要分析从stdin键入的命令,例如:“brs-fhello.cpp-l4”。但是我发现很难找到这些命令存储在LLDB中的位置。

LLDB命令
命令历史记录将转储当前LLDB会话中键入的所有命令。没有一个SB API可以以结构化形式获取此信息,但是命令输出是非常可解析的,使用sbcommandexplorer.HandleCommand可以通过编程方式获取命令结果

看起来,
命令历史记录
没有捕获多行输入(例如,在输入多行
expr
表达式时),尽管这与其说是一个功能,不如说是一个疏忽


lldb还使用输入的命令填充编辑行存储。有editline API可以解决这个问题,所以您可以从Python中获得这个问题。

谢谢您的回答!我刚刚在一分钟内解决了这个问题。从命令行键入的命令存储在一个func中的字符串“line”中,该func在IOhandler.cpp.Thank:)中名为IOHandlerEditline::Run(),如果您试图观察从lldb内部执行的命令,那么您可能希望为管理命令行的IOhandler钩住IOHandlerDelegate::IOHandlerInputComplete。这是命令将要提交给LLDB命令解释器的点。