gpt4 book ai didi

qt - 调试很慢

转载 作者:行者123 更新时间:2023-12-02 00:52:59 37 4
gpt4 key购买 nike

我已经交叉编译了 Qt 并创建了 SD 卡镜像并使用 losetup 进行了挂载。与直接 sshfs 挂载相比,Compiation 现在要快得多。应用程序运行正常。现在,我想调试它非常慢,它似乎正在将文件复制回开发机器进行调试。我看到这个建议:

来自远程目标的文件传输可能很慢。请改为使用“set sysroot”访问本地文件。

我正在使用 gdb-multiarch 并且有 gdbserver(在目标板上)。

我有点迷路了。在哪里设置这个选项?我已经为二进制文件提供了 --sysroot 参数,但没有用。非常感谢任何帮助。

更新:使用Qt Creator进行开发。

最佳答案

sysroot 是一个 gdb 设置。您可以使用 set sysroot 命令在 gdb 中设置它。例如:

(gdb) help set sysroot 
Set an alternate system root.
The system root is used to load absolute shared library symbol files.
For other (relative) files, you can add directories using
`set solib-search-path'.

此设置控制 gdb 如何尝试查找它需要的各种文件,尤其是您正在调试的可执行文件和共享库。

最新版本的 gdb 默认 sysroottarget:,意思是“从目标获取文件”。如果您在本地调试,这只是本地文件系统访问;但是如果你正在远程调试并且连接速度很慢,这可能会有点痛苦。为了加快速度,我们的想法是保留一份您需要的所有文件的本地副本,然后使用 set sysroot 将 gdb 指向这个本地副本。

这种方法的主要问题是,如果您的本地副本与远程副本不同步,您最终可能会混淆 gdb 并得到无意义的结果。我不确定,但也许启用 build-ids 可以在一定程度上缓解这个问题(当然理论上 gdb 可以检测到 build-id 不匹配并发出警告,我只是不记得它是否确实如此)。

关于qt - 调试很慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38080460/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com