DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

2022年3月15日

摘要: 今天用gdb查看core文件,发现找不到源文件。记录一下相关命令 在gdb里面查看源码, list 一下提醒找不到相关文件,列出来的是绝对路径的完整文件名。 help files 看一下帮助,可以加载符号,源文件等,自己看一下。 dir 设置源码路径无效,show directories 看到设置成 阅读全文
posted @ 2022-03-15 14:58 DoubleLi 阅读(332) 评论(0) 推荐(0)

摘要: 如果你手头上有一个你自己或者别人开发的程序,但它有一些bug。或者你只是想知道这个程序是如何工作的。怎么办呢?你需要一个调试工具。 现在很少有人会直接对着汇编指令进行调试,通常情况下,大家都希望能对照着源代码进行调试。但是,你调试使用的主机,一般来说并不是构建程序的那台,因此你会看到如下这个令人沮丧 阅读全文
posted @ 2022-03-15 14:51 DoubleLi 阅读(1109) 评论(0) 推荐(0)

摘要: 有的时候一个程序不是在同一个机器上执行的,当调试的时候就可能无法找到源代码的路径, 这时就需要使用下面的方法了: 当gdb程序找不到源码时,进行重新设置源码路径步骤: (1). 使用如下命令查看目标文件中保存的是相对路径还是绝对路径readelf -p .debug_str target_bin_f 阅读全文
posted @ 2022-03-15 14:42 DoubleLi 阅读(2016) 评论(0) 推荐(0)

摘要: 在gdb程序的时候,有时候会发现源代码文件找不到,对于那些带调试信息的系统库或者第三方库,很多时候当你真正想gdb去追他源代码的时候你会发现gdb根本找不到这些源代码路径。这个时候有两种选择: 【1】如果gdb这个时候告诉你找不到这个带调试信息库的源文件路径,此时给出的路径地址是绝对路径,比如 /h 阅读全文
posted @ 2022-03-15 14:30 DoubleLi 阅读(2196) 评论(0) 推荐(0)

摘要: 使用gdb调试程序时,执行gdb 可执行程序 程序进程号 报错: 解决方案: gdb -iex 'set auto-load safe-path /' 可执行程序 程序进程号 阅读全文
posted @ 2022-03-15 14:27 DoubleLi 阅读(227) 评论(0) 推荐(0)

摘要: LIBRARY_PATH和LD_LIBRARY_PATH是Linux下的两个环境变量,二者的含义和作用分别如下: LIBRARY_PATH环境变量用于在程序编译期间查找动态链接库时指定查找共享库的路径,例如,指定gcc编译需要用到的动态链接库的目录。设置方法如下(其中,LIBDIR1和LIBDIR2 阅读全文
posted @ 2022-03-15 14:14 DoubleLi 阅读(72) 评论(0) 推荐(0)

摘要: 最近调试的时候遇到一个问题,系统中安装的curl版本和调试程序依赖的curl版本不一致,编译时在Makefile里用gcc -L指定了libcurl的路径能够顺利编译,但是gdb启动程序时报错,依赖的curl动态库版本与加载的不一致,加载失败。 查阅资料发现,在osx上加载动态库的顺序是先搜索DYL 阅读全文
posted @ 2022-03-15 11:57 DoubleLi 阅读(388) 评论(0) 推荐(0)

摘要: 笔记: 当GDB无法显示so动态库的信息或者显示信息有误时,通常是由于库搜索路径错误导致的,可使用set sysroot、set solib-absolute-prefix、set solib-search-path来指定库搜索路径。 1. set sysroot 与 set solib-absol 阅读全文
posted @ 2022-03-15 11:43 DoubleLi 阅读(618) 评论(0) 推荐(0)