GDB调试的一些很有用经验:
1. gdb调试,如果有参数,可以在run命令后加,也可以使用set args ;如果是使用gdbserver+gdb的远程调试方式,参数可以在gdbserver后面加。

2. gdbserver通过网络远程调试一个正在运行的进程:gdbserver IP:PORT –attach PID

3. gdb显示:.dynamic section for “/lib/libthread.so.0” is not at the expected address(wrong library or version mismatch?),
该错误是由于gdb使用了默认的host的/lib库文件导致的,需要重新设定搜索目录:set solib-absolute-prifix /path/to/cross/compiler/lib,
solib-absolute-prifix表示so库文件的绝对路径,此为优先搜索目录,此外也可以设定搜索路径:solib-search-path.(这个问题在嵌入式Linux远程调试中很常见)

4. 如果源文件不在当前目录,gdb调试时由于找不到源文件,只能显示汇编代码,这时可以使用-d指定源文件的目录,比如:gdb –d /home/dir app

5. 如果你的程序是多线程的话,你可以定义你的断点是否在所有的线程上,或是在某个特定的线程上:break <line> thread <threadno>,threadno为gdb分配的线程ID,
如果你不指定线程ID,默认你的断点设在所有的线程上面。

GDB调试——经验总结的更多相关文章

  1. GDB调试-从入门到实践

    你好,我是雨乐! 在上篇文章中,我们分析了线上coredump产生的原因,其中用到了coredump分析工具gdb,这几天一直有读者在问,能不能写一篇关于gdb调试方面的文章,今天借助此文,分享一些工 ...

  2. GDB调试命令小结

    1.启动调试 前置条件:编译生成执行码时带上 -g,如果使用Makefile,通过给CFLAGS指定-g选项,否则调试时没有符号信息.gdb program //最常用的用gdb启动程序,开始调试的方 ...

  3. 使用gdb调试Python进程

    使用gdb调试Python进程 有时我们会想调试一个正在运行的Python进程,或者一个Python进程的coredump.例如现在遇到一个mod_wsgi的进程僵死了,不接受请求,想看看究竟是运行到 ...

  4. core dump gdb调试

    core dump又叫核心转储, 当程序运行过程中发生异常, 程序异常退出时, 由操作系统把程序当前的内存状况存储在一个core文件中, 叫core dump. (linux中如果内存越界会收到SIG ...

  5. Linux基础 30分钟GDB调试快速突破

    引言 Linus心灵鸡汤 在*nix开发中有道卡叫gdb调试,不管你怎么搞. 它依然在那丝毫不会松动.今天致敬一个 活着的传奇 Linus Torvalds Unix 始于上个世纪60年代,在70年代 ...

  6. 使用gdb调试游戏服务器

    前言 谈论gdb重要性 一般来说.提gdb,命令用于调试."命令",用户是几乎相同的复杂话.而事实确实如此,实际的开发调试必须用到gdb. 如今.大多数Linux系统是存在于ser ...

  7. 用gdb调试python多线程代码-记一次死锁的发现

    | 版权:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接.如有问题,可以邮件:wangxu198709@gmail.com 前言 相信很多人都有 ...

  8. vi/vim使用进阶: 在VIM中使用GDB调试 – 使用vimgdb

    vi/vim使用进阶: 在VIM中使用GDB调试 – 使用vimgdb << 返回vim使用进阶: 目录 本节所用命令的帮助入口: :help vimgdb 在UNIX系统最初设计时,有一 ...

  9. 第六课 GDB调试 (上)

    1序言: 1.初学者经过学习前面的Makefile知识,信心满满,内心觉得应该要好好学习不单掌握语言的编写,也要学会相对应的工具调高开发效率.有时我们写出来的代码经过执行结果却跟我们预期不一样那怎么办 ...

随机推荐

  1. BZOJ4198: [Noi2015]荷马史诗(哈夫曼树)

    Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 1824  Solved: 983[Submit][Status][Discuss] Descripti ...

  2. 【复杂度分析】loj#6043. 「雅礼集训 2017 Day7」蛐蛐国的修墙方案

    感觉有点假 题目大意 数据范围:$n<=100$ 题目分析 由于题目给出的是 置换,所以相当于只需枚举每个环的两个状态. 主要是复杂度分析这里: 一元环:不存在 二元环:特判保平安 三元环:不存 ...

  3. django+xadmin在线教育平台(八)

    4-5 user modesl.py设计 循环引用: 设计app时每个app都有model   mark 如图:我们在user中定义usercourse记录用户学习的课程.会有两个外键:user和co ...

  4. 侯捷《C++面向对象开发》——动手实现自己的复数类

    前言 最近在看侯捷的一套课程<C++面向对象开发>,刚看完第一节introduction之后就被疯狂圈粉.感觉侯捷所提及所重视的部分也正是我一知半解的知识盲区,我之前也写过一些C++面向对 ...

  5. 如何设置 html 中 select 标签不可编辑、只读

    转载自: https://blog.csdn.net/hjm4702192/article/details/33729767 1. <select style="width:195px ...

  6. 深入理解PHP7之zval

    PHP7已经发布, 如承诺, 我也要开始这个系列的文章的编写, 今天我想先和大家聊聊zval的变化. 在讲zval变化的之前我们先来看看zval在PHP5下面是什么样子 PHP5zval回顾在PHP5 ...

  7. Eclipse搭建SpringBoot

    第一种方法(不建议) 首先新建Maven工程 勾选第一个按钮,第三个是选择working set ,你可以不选 下一步,配置工程信息,注意打包为jar 打开pom.xml文件,添加spring-boo ...

  8. tcl之其他命令-eval/source

  9. thinkphp5控制器向+vue的data里传值

    传一维数组传值 $array=['id'=>40,"cat_name"=>"明星产品"]; $MenuCats_info=json_encode($ ...

  10. 超简单开发自己的php框架一点都不难

    (转)https://blog.csdn.net/qq_33862644/article/details/79344331 写框架的极简思路: 接收,打印参数想怎么弄.如 获取配置文件的方法,根据传过 ...