DEBUG常用命令

博客介绍了DEBUG常用命令及其参数说明,还提及《IBM PC0520汇编语言程序设计》,聚焦于汇编语言相关信息技术内容。

DEBUG常用命令


命 令

目 的

格 式



A(Assemble)

汇编语句

A[address] 



C(Compare)

比较内存

C range address



D(Dump) 

显示内存

D[address]或D[range]



E(Enter)

改变内存

E address[list]



F(Fill)

填充内存

F range list



G(Go)

执行程序

G[=address[address[address...]]



H(Hexarithmetic)

十六进制运算命令

H[address[drive|sector|sector]]



I(Input)

输入

I portaddress



L(Load)

装入内存

L[address[drive|sector|sector]]



M(Move)

传送内存

M range address



N(Name)

定义文件和参数

N[d:][path]filename[.ext]



O(Output)

输出字节

O portaddress byte



P(Proceed)

在下条指令前停止

P[=address][value]



Q(Quit)

结束DEBUG程序

Q



R(Hexarithmetic)

显示寄存器/标志位

R[registername]



S(Search)

捡索字符

S range list



T(Trace)

执行并显示(跟踪)

T[=address][value]



U(Unassemble)

反汇编指令

│U[address]或U[range]



W(Write)

把文件或数据写盘

W[address[drive|sector|sector]]



参数说明





参 数



定 义 格 式




address

地址格式如下:

[<段地址>:]偏移地址

其中<段地址>可以是段寄存器名、十六进制或缺省

例如:CS:100 0F00:100 100



byte

1位或两位16进制数字



drive

驱动器代号(例如:0代表A驱动器、1代表B驱动器)



list

由一个或多个字节和/或字符串值构成

例如:A0 "ABC" 1F 4 "abcd:"

表示有五项:三个字节和两个字符串,共10个字节



portaddress

表示一个8bit或16bit端口地址,由1~4个16进制数组成



range

指示区域的下界地址和上界地址,有两种格式

·address address 例如: CS:100

·address L value 例如: CS:100 L 11

(value是命令所要处理的十六进制字节数)



registername

寄存器名称



sector sector

由1~3个16进制数组成,指示:

·起始相对扇区号

·读或写的扇区数



value

由1~4个16进制数组成,指示:

·相加或相减的数

·Trace命令要执行的指令数或命令所要处理的字节数





《IBM PC0520汇编语言程序设计》
### C语言调试工具常用命令 C语言调试过程中,`GDB` 是最常用的调试工具之一。以下是 `GDB` 的一些常用命令及其功能: #### 1. 启动调试会话 使用 `-g` 参数编译程序以包含调试信息后,可以通过以下命令启动 `GDB`: ```bash gdb target ``` 或者直接加载可执行文件并指定参数: ```bash gdb --args target arg1 arg2 ``` 这将加载目标程序并允许进一步操作[^1]。 #### 2. 设置断点 断点用于暂停程序的执行以便检查状态: - 在特定行号设置断点: ```gdb break filename.c:line_number ``` - 在函数入口处设置断点: ```gdb break function_name ``` #### 3. 运行程序 启动程序运行: ```gdb run ``` 如果需要传递参数,则可以在 `run` 命令后附加参数: ```gdb run arg1 arg2 ``` #### 4. 单步执行 逐行执行代码: - 执行下一行代码(进入函数内部): ```gdb step ``` - 执行下一行代码(不进入函数内部): ```gdb next ``` #### 5. 查看变量值 在程序暂停时查看变量的当前值: ```gdb print variable_name ``` #### 6. 检查调用栈 查看程序当前的调用栈信息,了解程序流执行的位置及如何到达此点: ```gdb where ``` 或使用更详细的版本: ```gdb backtrace ``` #### 7. 修改变量值 在调试过程中修改变量的值: ```gdb set variable_name = new_value ``` #### 8. 继续执行 从断点处继续执行程序直到遇到下一个断点: ```gdb continue ``` #### 9. 监视点 监视某个变量的变化而不需手动检查: ```gdb watch variable_name ``` #### 10. 完成当前函数 执行完当前函数并返回到调用处: ```gdb finish ``` #### 11. 退出调试器 结束调试会话: ```gdb quit ``` 此外,在开发阶段可以使用 `assert` 函数检测逻辑错误,但在发布版本中通常通过定义 `NDEBUG` 宏来禁用 `assert`,以避免性能开销[^2]。 ### 示例:调试一个简单程序 以下是一个简单的 C 程序示例,演示如何使用 GDB 调试: ```c #include <stdio.h> #include <assert.h> int main() { int a = 5, b = 0; assert(b != 0); // 检查除数是否为零 int result = a / b; printf("Result: %d\n", result); return 0; } ``` 编译时添加 `-g` 参数: ```bash gcc -g example.c -o example ``` 启动 GDB 并设置断点: ```bash gdb example break main run ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值