Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/137.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何防止GDB为(大型)库加载调试符号?_C++_Qt_Gdb_Shared Libraries_Debug Symbols - Fatal编程技术网

C++ 如何防止GDB为(大型)库加载调试符号?

C++ 如何防止GDB为(大型)库加载调试符号?,c++,qt,gdb,shared-libraries,debug-symbols,C++,Qt,Gdb,Shared Libraries,Debug Symbols,在调试Qt5应用程序时,我有时对Qt5的内部结构不感兴趣,而是对应用程序本身的结构感兴趣。因此,我不需要加载Qt5库的所有调试符号,因为加载这些符号需要几秒钟 在为我的应用程序保留调试符号的同时,是否可以防止GDB为这些Qt5库加载符号 在为我的应用程序保留调试符号的同时,是否可以防止GDB为这些Qt5库加载符号 对 正如Richard Criten的评论所提到的,设置为0将阻止加载所有共享库的符号,然后可以使用命令手动添加文件(该命令接受正则表达式)。如果省略此正则表达式,则加载所有共享库 但

在调试Qt5应用程序时,我有时对Qt5的内部结构不感兴趣,而是对应用程序本身的结构感兴趣。因此,我不需要加载Qt5库的所有调试符号,因为加载这些符号需要几秒钟

在为我的应用程序保留调试符号的同时,是否可以防止GDB为这些Qt5库加载符号

在为我的应用程序保留调试符号的同时,是否可以防止GDB为这些Qt5库加载符号

正如Richard Criten的评论所提到的,设置为
0
将阻止加载所有共享库的符号,然后可以使用命令手动添加文件(该命令接受正则表达式)。如果省略此正则表达式,则加载所有共享库

但是,这将阻止自动加载所有符号(不仅仅是调试符号),还将阻止自动加载系统库的符号,这通常是展开堆栈所必需的

更好的方法可能是在某处保存一份带有完整调试信息的Qt5库副本,例如
~/Qt5 debug/
,然后在原始库上运行
strip-g
。这样,您将获得所有库的符号信息,在极少数情况下,当您实际需要Qt5的完整调试信息时,您仍然可以使用GDB
文件~/Qt5 debug/libQt5Core.so.5.2
或类似命令来完成这项工作


GDB手册中的章节有更多关于使用这些单独调试符号的文档。

也许这一页:可能有一些用处。谢谢!发布此问题后不久,我在GDB手册中找到了相关部分,希望您不介意我添加它们:-)非常感谢!!!在Raspberry上开始调试Qt应用程序需要很长时间。使用此选项,启动gdb会立即发生。您还可以将此确切命令添加到~/.gdbinit以使其永久化。如何防止使用sharedlibrary加载库regex@PMat指定与不希望加载的库不匹配的正则表达式?