繁体   English   中英

Linux中QTCreator中dlopen打开的共享库如何设置断点

[英]How to set a breakpoint in a shared library opened with dlopen in QTCreator in Linux

我正在尝试使用 QTCreator 调试我的共享库,该库是使用 dlopen 和 dlsym 调用的。 QT 调试器不会在共享库中的断点处停止。

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

SO 具有调试符号。

如何让 QTCreator 调试我的应用程序?

谢谢。

更新:

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

每个项目都可以这样做吗?

看起来 GDB 无法找到您的 .so 文件。 您应该检查这篇文章,看看是否可以在您的solib-search-path中找到共享库。 如果不是,您应该使用以下内容扩展 Tools/Options/Debugger/GDB 中的“Additional Startup Commands”字段:

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 dynamical-loaded library in c++ with QtCreator 标记为这个问题的副本,但我必须等待投票(stackoverflow 不会让我标记重复项,因为“这个问题没有赞成或接受的答案“......”

暂无
暂无

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

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