GDB 使用

  what ?

    GDB 是啥玩意,如果没听说过请移步这里哈哈http://www.gnu.org/software/gdb/。。。。。。。。。。。。。。

why?

  话说今天被人问过GDB
都用过那些命令,想了想其实很多时候都是有需求了去查,没有系统的整理过,在这里整理一下,便于记忆,哎,上了年纪了记性越来越差了哈哈

 

  How?

GDB 最常用的命令:

  •   附加可执行文件

  gdb   xxx

  gdb -p  xxx

  gdb -c xxx.core xxx

  •   进入程序后:

基本的:

  r arg  : run

  c    : continue

  b   :b func, b linenum , b +/- offset ,      b
filename:linename ,  b  filename:func     ,b address, b
 if  <condition>

  info   breakpoints,

  d       : delete

  clear  :

  disable : .....

  condition:

  ignore <bnum> <count>

  bt  : backtrace

  f    : frame

  l    :list

  n   : next

  s       : Execute next program line (after stopping);
step into any function calls in the line

  p   : print expr

  q   : exit

  这里知识简单的列出了每个参数,具体的使用说明,可以直接 help cmd, gdb和shell 一样,使用某个命令时候 输入前几个,tab
就可以啦。。。

 观察点:

  watch    expr

  rwatch    expr

  awatch  expr

  info    watchpoints

线程相关:

  info threads

  thread n

  

  有了上面zhexie命令,大家可以很容易的去定位问题啦..............

  --------------------------------------------------------我是华丽的分割线------------------------------------------------------------

  有了上面的基础,就可以继续进阶了, Letgo

  参考:

  http://sourceware.org/gdb/current/onlinedocs/gdb/

  http://blog.csdn.net/haoel/article/details/2880

时间: 2024-10-09 20:56:34

GDB 使用的相关文章

Linux下GDB调试与对拍(先挖个坑)

应为NOIP要复赛在NOI-Linux下编写程序,所以被迫选择Vim+Gdb(主要是Guide太丑了). 虽然GUIDE的调试功能已经对付大多数的调试,反正学一学GDB的使用也没什么坏处. 1 生成调试信息 要调试C/C++的程序,首先在编译时,我们必须要把调试信息加到可执行文件中.使用编译器(cc/gcc/g++)的 -g 参数可以做到这一点.如: gcc -g hello.c -o hello g++ -g hello.cpp -o hello 如果没有-g,你将看不见程序的函数名.变量名,

gdb调试

[前言]使用gdb调试前,在编译程序时,要加 -g 选项,否则你将看不见程序的函数名.变量名,所代替的全是运行时的内存地址. 1.开始调试 a.  gdb <program> program也就是你的执行文件,一般在当前目录下. b. gdb <program> core 用gdb同时调试一个运行程序和core文件,core是程序非法执行后core dump后产生的文件. 2.[列出源码],从第n行开始(编译时要加 -g 选项) l n 3.[设置断点]在第N行加断点 break

gdb调试命令

本篇摘自互联网,纯属自己学习笔记,然分享给看到我的博客的人们. 用GDB调试程序 GDB是一个强大的命令行调试工具.大家知道命令行的强大就是在于,其可以形成执行序列,形成脚本.UNIX下的软件全是命令行的,这给程序开发提代供了极大的便利,命令行软件的优势在于,它们可以非常容易的集成在一起,使用几个简单的已有工具的命令,就可以做出一个非常强大的功能. 于是UNIX下的软件比Windows下的软件更能有机地结合,各自发挥各自的长处,组合成更为强劲的功能.而Windows下的图形软件基本上是各自为营,

Go语言gdb调试踩坑

整个是一个docker环境 docker版本: 1.12.1,镜像是我自己做的基于ubuntu:14.04.05. 容器操作系统版本: Ubuntu 14.04.5 LTS go版本: 1.6.3 在gdb中执行run命令出错! 错误输出: warning:Error disabling address space randomization: Operation not permitted 环境:docker 解决办法: warning:Error disabling address spac

GDB踪函数的完整调用过程 及原理

http://www.lenky.info/archives/2013/02/2202 Breakpoint 1, 0x0000003c4e417410 in open64 () from /lib64/ld-linux-x86-64.so.2 (gdb) bt #0 0x0000003c4e417410 in open64 () from /lib64/ld-linux-x86-64.so.2 #1 0x0000003c4e40f789 in _dl_sysdep_read_whole_fil

Linux GDB程序调试工具使用简介

GDB概述 GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具.或许,各位比较喜欢那种图形界面方式的,像VC.BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC.BCB的图形化调试器更强大的功能.所谓"寸有所长,尺有所短"就是这个道理. 一般来说,GDB主要帮忙你完成下面四个方面的功能: 启动你的程序,可以按照你的自定义的要求随心所欲的运行程序. 可让被调试的程序在你所指定的调置的断点处停住.(断点可以是条件表达式) 当程序被停住时,

makefile gdb ps

GDB 1.调试core ulimit -c ulimited 产生段错误,目录下有core文件, gdb a.out core 2.ps常用命令http://linux.cn/article-4743-1.html pstree,ps -aux,查看线程ps -eLf 调试线程,gdb中info thread thread 9

gdb常用

调试信息条件:-g或-gdbgcc -g -o test  test.cgcc -ggdb3 -o test test.cggdb3告诉gcc,使用gdb的扩展产生调试符号.其中“3”表示使用的是第三级(最高级)调试信息.------------------------------------------------------------------------------ulimit -c unlimited再次运行可执行文件,产生core文件 gdb test core加载test和cor

VELT-0.1.5开发: gdb串口调试内核时信息丢失的问题

快乐虾 http://blog.csdn.net/lights_joy/(QQ群:Visual EmbedLinux Tools 375515651) 欢迎转载,但请保留作者信息 本文仅适用于vs2013 + velt-0.1.5 VELT的全称是Visual EmbedLinuxTools,它是一个与visual gdb类似的visual studio插件,用以辅助完成Linux开发.利用这个插件,将可以在visual studio的IDE中进行Linux应用程序的开发(包括编译和调试),也可

gdb调用程序崩溃时的内存镜像core文件

/* * gcc gdb_test.c -o gdb_test -g * ./gdb_test * Segmentation fault (core dumped) * gdb gdb_test -c core.5521 * Core was generated by `gdb_test'. * Program terminated with signal 11, Segmentation fault. * #0 0x000000000040048b in main (argc=1, argv=