GDB使用记录】的更多相关文章

makefile的模板 all: rover server station rover: rover.c tcputil.o gcc rover.c tcputil.o -o rover -lpthread server: server.c tcputil.o gcc server.c tcputil.o -o server -lpthread station:station.c tcputil.o gcc station.c tcputil.o -o station -lpthread tcp…
ref:http://sunyongfeng.com/201506/programmer/tools/gdb.html 简介 GDB,GNU Debugger,特性如下: GDB具备各种调试功效,可对计算机程序的运行进行追踪.警告.使用者可以监控及修改程序内部变量的值,甚至可在程序的正常运行之外调用函数. GDB支持多数处理器架构 持续开发中 支持远程调试 支持内核调试,KGDB 从事嵌入式软件开发两年来,主要在以下几方面使用GDB: 查看.修改运行时变量: 多线程调试,查看当前线程运行状态(以…
gdb常用命令 显示类 info locals 显示当前局部变量 info args 显示当前函数的参数 info sharedlibrary 显示当前程序依赖的动态库 ptype val 打印变量类型 info threads 查看线程信息 x /4xb address 查看 address往后的4个单元(每个单元一个字节),以16进制显示 info macro MacroName 显示宏命名(编译加上 -ggdb3) 控制类 finish 执行完当前函数直至返回上一层 return 从当前执…
想要熟练利用GDB进行程序调试,首先要了解什么是GDB. 1. 什么是GDB GDB (the GNU Project Debugger) 是一个可以运行在大多数常见的UNIX架构.Windows.Mac OSX等系统上的跨平台调试器,允许我们查看另一个程序在运行过程中内部发生了什么——或者另一个程序崩溃时在做什么. 具体而言,GDB能做以下四种事情[1],以帮助我们定位运行中的Bug: 让程序开始运行,指定任何可能影响其行为的内容. 让程序在特定条件下停止运行. 检查程序停止运行时发生了什么.…
本文为作者原创,转载请注明出处:https://www.cnblogs.com/leisure_chn/p/10693247.html 本文以嵌入式 Linux 环境下的 gdb 使用为例,记录交叉编译过程中一个比较关键的问题:configure 过程中 --build, --host, --target 参数的区别. 1. 交叉编译 交叉编译是指在一种平台上编译出运行于另一种平台的程序.这里的平台,涉及硬件和软件两个部分,硬件平台指 CPU 架构,软件平台指操作系统.交叉编译主要针对嵌入式领域…
-----------2018.9.26更新标记----------- gdb的确是个很强大的东西啊,这里记录一下gdb的基本操作吧 后续可能会补充,但暂时感觉够用了就不写多了. 首先是ubuntu终端的2个最基本的操作:(不然会gdb但是调不出终端也没用啊!) 1,cd xxxx     进入xxxx目录 2,Ctrl + Alt + T   调出终端 3,l  列出目录里有哪些文件 & 文件夹 接下来就是gdb了. 前提:编译时加上 -g 选项 比如g++ P1000.cpp -g -Wal…
上一篇我有相关关于一个段错误的记录,现在记录当时的段错误具体是在哪里的. // 从 GNU 的官网下载当前在使用的 glibc 的源代码以及最新的 glibc 源代码 // 地址如下: http://ftp.gnu.org/gnu/libc/ // 下载的是 glibc-2.12.2.tar 以及最新的 glibc-2.25.tar 两个版本 // 这里要记住, glibc 2.12.2 这个版本是有一个bug 的, times 的参数不能传 NULL. // 解压 glibc-2.12.2.t…
PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明   本文作为本人csdn blog的主站的备份.(BlogID=102) 环境说明 Ubuntu 18.04 gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04) Bochs 2.6 As86 version: 0.16.17 前言   自从我近段时间开始温习一些基础知识以来,其中觉得以前学的很浅的就是OS原理.为啥这样…
1.创建cpp文件:vim sourcefile.cpp 2.生成可执行文件:g++ -g sourcefile.cpp -o exename ------据说是要必须加上-g参数,否则不可调试 3.启动调试:输入gdb(滚蛋吧)进入gdb环境 4.输入 file exename   (告诉gdb要调试了) 5.输入 l (list)查看代码,回车重复上一条命令 -----------------------list 的详细使用----------------------------- ----…
http://blog.chinaunix.net/uid-26941022-id-3199961.html b.c void fun(int a, int b){ int c; c=a+b; } void fun1(int a,int b){int d;d=a+b; } int main(int argc, const char *argv[]){ int a = 0; a = 1; a = 2; fun(1,2); fun1(2,3); return 0; } (gdb) b main Br…