繁体   English   中英

在远程机器上编译的调试过程

[英]debugging process that compiled in remote machine

我在调试模式下编译了Xcode项目。 但是,从带有lldb(或任何其他远程计算机)的VM运行它时,我看不到任何调试符号。

为了解决这个问题,我在本地编译器中创建了一个指向项目源代码的软链接,以便每个文件都具有相同的路径。

但是,与本地VM不同,在远程计算机中,我可能没有源代码访问权限。

所以我的问题是我应该将哪些文件从编译机的项目调试输出复制到远程机器,以便lldb调试器可以识别目标符号,我应该如何“告诉” lldb查看那些新数据,而不是原始符号位置(在编译机中)

在正常的构建/调试周期中,lldb从构建过程中生成的.o文件中读取调试信息。 二进制文件中有一个“调试图”,指向这些.o文件的位置。 由于调试映射记录了绝对路径,因此,如果要在另一台计算机上使用.o文件,则.o文件必须在文件系统上的位置与在生成器上的位置相同。

执行此操作的另一种方法是使用Xcode的调试信息生成的“ DWARF + dSYM”变体,该变体构建包含完全链接的调试信息的“ .dSYM”文件夹。 然后只需将dSYM和二进制文件移到同一目录,lldb就会找到它。 如果由于某种原因不起作用,则还有一个lldb命令: add-dsym ,可用于手动告诉lldb dSYM在哪里。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM