如何在Linux的QTCreator中设置用dlopen打开的共享库的断点 [英] How to set a breakpoint in a shared library opened with dlopen in QTCreator in Linux

查看:41
本文介绍了如何在Linux的QTCreator中设置用dlopen打开的共享库的断点的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用QTCreator调试我的共享库,该库由dlopen和dlsym调用。 Qt调试器未在共享库中的断点处停止。

当我使用GDB运行我的应用程序时,它工作正常。

SO有调试符号。

如何让QTCreator调试我的应用?

谢谢。

更新:

我创建了一个GDB启动脚本,其中包含我的项目的完整路径,现在它可以工作了。 问题是,我不希望使用Qt为每个项目运行此脚本。

是否可以针对每个项目执行此操作?

推荐答案

看起来gdb无法找到您的.so文件。您应该检查this post,看看您的solib-search-path中是否可以找到共享库。如果不是这样,您应该在Tools/Options/Debugger/gdb中的&Quot;Additional Startup Commands&Quot;字段中扩展如下内容:

set solib-search-path %{CurrentProject:BuildPath}/<relative path to the folder where the .so file was built>

在我的情况下,在Android下工作,我设置了set solib-search-path %{CurrentProject:BuildPath}/android-build/libs/armeabi-v7a,现在如果在共享库代码中设置断点就可以工作了。

@ChrisF:已尝试将Debugging a dynamically-loaded library in c++ with QtCreator标记为此问题的副本,但我必须等待投票通过(Stackoverflow不允许我标记重复的副本,因为";此问题没有正面投票或接受的答案&...

这篇关于如何在Linux的QTCreator中设置用dlopen打开的共享库的断点的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆