用 gdb debug c++ 程序,好多次遇到 Error while mapping shared library sections ,之前由于有其他的 debug 手段,因此就避开没有去追究是什么原因。今天遇到的问题没办法避开了,只能花时间来解决这个问题了。
很多时候为了做一些小实验或者尝试学习一套新的库,有关的动态链接库文件不会直接放到系统目录(诸如 /usr/lib)中,而只是在自己的 home 目录里面进行操作。并且通常为了方便,会把动态链接库文件和单元测试程序放到同一个目录中,同时把代表当前目录的
. 设置到 LD_LIBRARY_PATH 中,这样在很多情况下就不用额外设置 LD_LIBRARY_PATH 了。
经过一番尝试之后,发现正是由于这种做法导致了 gdb 报错。
解决方法:把用到的动态链接库文件目录显式地指定到 LD_LIBRARY_PATH 。
然后用 ldd
<program> 检查,看看输出结果中,有关的动态链接库文件是不是显示为全路径。
如果是全路径,那么 gdb 就不会再报错。如果是显示为相对路径,那么 gdb 就会报错。</program>
分享到:
相关推荐
使用GDB调试,英文版。对于从事 Linux C/C++ 后台开发的读者来说,GDB 调试是需要熟练掌握的一项技能
GDB详细手册,文档内部分内容: //查看运行中的线程 (gdb) info thread //查看线程 (gdb) thread <n> //切换为线程id (gdb) bt //backtrace 打印堆栈 (gdb) break xx.cpp:xx thread all //在所有线程上打断点 (gdb) ...
GDB 在arm开发板上的远程调试 GDB 在arm开发板上的远程调试 GDB 在arm开发板上的远程调试 GDB 在arm开发板上的远程调试
GDB调试GDB调试GDB调试GDB调试GDB调试 GDB调试GDB调试GDB调试GDB调试GDB调试
Openwrt中通过gdb工具定位内核panic错误位置,快速定位内核内存越界代码位置,节约调试时间。
这是GDB完全手册,用来在Linux环境下的GDB调试,很重要
可以打印map,vector等 只要 source stl-views-1.0.3.gdb
巧用backtrace系列函数,在不具备gdb环境的Linux系统上大致定位段错误位置
with the Invariant Sections being “Free Software” and “Free Software Needs Free Documentation”, with the Front-Cover Texts being “A GNU Manual,” and with the Back-Cover Texts as in (a) below. ...
gdb 源码
GDB完全手册GDB完全手册GDB完全手册GDB完全手册GDB完全手册
GDB中文手册 介绍GDB的基本调试方法
gdb64.exe和gdb.exe,呐,如名字所示喽
gdb调试案例gdb64常用命令说明: [root@redhat home]#gdb 调试文件:启动gdb (gdb) l :(字母l)从第一行开始列出源码 (gdb) break n :在第n行处设置断点 (gdb) break func:在函数func()的入口处设置断点 (gdb) ...
gdb手册debuging with gdb 中文版本的
gdb调试器的使用gdb调试器的使用gdb调试器的使用gdb调试器的使用gdb调试器的使用
debugging with GDB GDB使用指南
GDB官网用户手册
Linux下的gdb调试程序的教程,根据几个程序代码的实例,介绍gdb的详细调试教程,我就是跟这个教程学的。效果还行。