gdb入门
下面是我自己写的一个测试用例 a.c
#include<stdio.h>
int add(int a,int b){
return a+b;
}
int main(){
int n=add(5,10);
printf("n is %d\n",n);
n=n*n;
printf("n is %d\n",n);
n=add(10,10);
printf("n is %d\n",n);
return 0;}
gdb调试过程
gcc -g a.c -o result //如果想使用gdb调试,那么必须加入-g选项
gdb result 进入gdb调试
l (字母l)显示源码,如果没显示完,按回车继续显示剩下的
b 7 在第七行设置断点
r 运行程序,会在断点那里停下来
p n 显示变量n的值
n 执行下一行
b 9 在第九行再次创建断点,9也可以改为函数名main
condition 2 n==255 检测n的值为255时暂停运行
c 从断点处继续运行
cl 9 清除第九行断点
s 单步调试,执行到下一断点
高级命令
高级命令
gdb还有很多高级用法,如查看堆栈列表,分割窗口等,这里就不一一测试了。
查询运行信息
where/bt:查看当前运行的堆栈列表
up/down:改变堆栈显示的深度
set args:参数:指定运行时的参数
show args:查看设置好的参数
info program: 来查看程序的是否在运行,进程号,被暂停的原因。
分割窗口
layout:用于分割窗口,可以一边查看代码,一边测试
layout src:显示源代码窗口
layout asm:显示反汇编窗口
layout regs:显示源代码/反汇编和CPU寄存器窗口
layout split:显示源代码和反汇编窗口
Ctrl + L:刷新窗口
gdb入门的更多相关文章
- GDB 入门篇
调试流程:(使用gcc编译时加上 -g -Wall选项)gdb attach pidinfo bb filename:linenum / b filename:functionnamecp varia ...
- 较详细的gdb入门教程
本文主要介绍gdb的基础使用.若需了解一些技巧,请访问此篇博客:点这里 本篇教程适用于Windows,macOS及Linux,但由于Windows的自带终端很难用,所以体验可能不太好.Windows ...
- 新手如何在gdb中存活
网络上已经有很多gdb调试的文章了,为什么我还要写这篇文章呢,因为本文是写给gdb新手的,目的就是通过一个简单的例子来让新手很快上手.一旦上手入门了,其他的问题就可以自己去搜索搞定了.右边是gdb的L ...
- 汇编入门基础与helloworld
一个存储器拥有128个存储单元,可存储128个byte(字节),一个bite则又是由8个二进制位即bit(比特)组成,bit是计算机的最小信息单位. 总线分为地址总线,控制总线,数据总线 一个cpu有 ...
- 推荐一些不错的计算机书籍(php c mysql linux等等)
推荐一些不错的计算机书籍. # PHP<PHP程序设计>(第2版) --PHP语法和入门最好的书<PHP5权威编程> --PHP入门后升级书<深入PHP:面向对象.模 ...
- 一个很不错的适合PHPER们书单,推荐给大家【转】
来我博客的访客们中,有一些是PHP的初学者,是不是很迷茫PHP应该怎么学?应该买什么样的书?到处问人,到处求助?这下好了. 正好看到黑夜路人在博客上推荐了一个书单,看上去都非常不错,很多我也没有读过, ...
- 一个PHP书单 -摘自网络
# PHP <PHP程序设计>(第2版) –PHP语法和入门最好的书 <PHP5权威编程> –PHP入门后升级书 <深入PHP:面向对象.模式与实践>(第3版) – ...
- PHP学习必读的20本书
PHP相关<PHP程序设计>(第2版) –PHP语法和入门最好的书<PHP5权威编程> –PHP入门后升级书<深入PHP:面向对象.模式与实践>(第3版) –理解P ...
- php有关数据推荐
# PHP<PHP程序设计>(第2版) --PHP语法和入门最好的书<PHP5权威编程> --PHP入门后升级书<深入PHP:面向对象.模式与实践>(第3版) ...
随机推荐
- Java实现随机生成车牌号
String[] citys = {"津","京","宁"}; String sectionNamePre = "断面" ...
- OJ_查找二叉树
#include<iostream>using namespace std;int n,m;int d[120];int t=1;int re;struct Node{ int data; ...
- springboot学习章节-spring常用配置
1.Scope package com.zhen.highlights_spring4.ch2.scope; import org.springframework.context.annotation ...
- 一次练习 发现的问题,malloc free 无效;findfirstfile失败,writefile失败的原因
#include <windows.h> #include <stdio.h> #include <shlwapi.h> #pragma comment(lib,& ...
- <Web Crawler><Java><thread-safe queue>
Basic Solution The simplest way is to build a web crawler that runs on a single machine with single ...
- 在使用Idea配置jQuery的问题
今天使用idea中引入jQuery代码时,发生的几个错误,时刻提醒 1.jQuery的驱动包要放置在web目录下 2.引入jQuery的驱动包时,语句格式为<script></scr ...
- 58-63用ssh远程连接linux系统
一.注意 在CentOS7.6中,ifconfig来查询IP已经不再适用,要用ip add 二.vim编辑器 编辑:按[i]键可以进入到编辑状态,显示insert这样的字眼就对了 退出:按esc退出编 ...
- mmap 操作
mmap 功能描述: mmap将一个文件或者其它对象映射进内存.文件被映射到多个页上,如果文件的大小不是所有页的大小之和,最后一个页不被使用的空间将会清零.munmap执行相反的操作,删除特定地址区域 ...
- BT原理分析
BT全名為BitTorrent,是一個p2p軟件,你在下載download的同時,也在為其他用戶提供上傳upload,因為大家是「互相幫助」,所以不會隨著用戶數的增加而降低下載速度. 其實跟ED也十分 ...
- 非原创。使用ajax加载控件
非原创.来自博客园老赵. public class ViewManager<T> where T : System.Web.UI.UserControl { private System. ...