我已经开发了一个LLVM前端生成LLVM IR作为目标代码。如果我扩展这个前端以将调试信息嵌入到生成的IR中,那么可以使用LLDB调试我的源代码吗?我的意思是,lldb是否支持任何针对LLVM IR的源代码语言?
发布于 2014-08-19 20:41:24
你必须得到一个矮人语言代码,并让lldb来识别它。如果我们得到了一些未知语言的侏儒,我们就会忽略它.
如果没有更多的支持,有些事情就会成功,而其他的就不会成功。
如果您发出正确的行表信息,您应该能够映射回您的源,这也应该是步进工作。其他的事情开始变得困难起来。
下一个困难的部分是如何告诉lldb关于您的类型信息。lldb使用Clang的AST作为调试器中类型信息的内部存储。为了打印局部变量(使用frame variable命令)和用于表达式解析器,lldb将矮小类型信息转换为Clang。
如果您的语言有一个类似于C的类型系统,那么应该能够为您的类型解析侏儒。这样,再加上正确的变量信息,frame variable就可以正常工作了。
表达式解析器(即expression、print或po命令)要求lldb为您的语言提供一个解析器。这可能是相当大的一部分工作。
https://stackoverflow.com/questions/25358161
复制相似问题