调试的艺术学习笔记--命令记录
2010-11-07 17:11
253 查看
1)单步调试: n (next), s(step 跟n的区别,s进入到函数内)
2)恢复操作:c(continue) 直到遇到下个断点
3)临时断点: tbreak 有效期,第一次遇到
4)检查变量:p (printf)
5)监视点:watch 当监视点的值发生变化时停止
6)查看栈:bt(backtrace) 显示整个栈的内容。
7)看已经设的断点: ib(info break)
8)设置断点:break function, break line_number, break filename:line_number, break filename:function
9)删除断点: delete+数值标识符(从第7点可得到) (不加参数,删除所有断点), clear使用跟第8点对应
10)禁用断点:disable+数值标识符 (重新启用 enable)
11)在单步时跳出函数:finish
12)在单步时跳出循环:until
13)条件断点:break break-arg if (condition),例: break main if argc > 1
14)断点命令列表(到断点自动执行):
commands breakpoint-number 例子:commands 1
... >printf "i = %d", i
commands >end
...
end
a) 在commands 中加入silent,过滤到其他无用的输出。
b) 最后一个commands是continue的话,自动continue。
例:comands 1
> silent
> printf "i = %d", i
> continue
> end
15)查看局部变量:info locals 得到当前栈中所有局部变量的值列表
16)设置变量:set x=12
17)GDB线程命令:
a) info threads(给出当前所有的线程信息)
b) thread 3(切换查看线程)
c) break 88 thread 3(当线程3到达源代码行88时停止执行)
d) break 88 thread 3 if x == y
e) thread apply all bt,查看所有的线程的栈信息。
18) 您可以以进程ID作为第二个参数,以调式一个正在运行的进程
gdb 程序名 1234
注意点:
1)重新编译文件时不要退出gdb,断点可以保存着。
2)在调试时不要开启优化代码的选项,不然经过了优化,设置的断点的位置跟编译后的位置相差可能很大。
2)恢复操作:c(continue) 直到遇到下个断点
3)临时断点: tbreak 有效期,第一次遇到
4)检查变量:p (printf)
5)监视点:watch 当监视点的值发生变化时停止
6)查看栈:bt(backtrace) 显示整个栈的内容。
7)看已经设的断点: ib(info break)
8)设置断点:break function, break line_number, break filename:line_number, break filename:function
9)删除断点: delete+数值标识符(从第7点可得到) (不加参数,删除所有断点), clear使用跟第8点对应
10)禁用断点:disable+数值标识符 (重新启用 enable)
11)在单步时跳出函数:finish
12)在单步时跳出循环:until
13)条件断点:break break-arg if (condition),例: break main if argc > 1
14)断点命令列表(到断点自动执行):
commands breakpoint-number 例子:commands 1
... >printf "i = %d", i
commands >end
...
end
a) 在commands 中加入silent,过滤到其他无用的输出。
b) 最后一个commands是continue的话,自动continue。
例:comands 1
> silent
> printf "i = %d", i
> continue
> end
15)查看局部变量:info locals 得到当前栈中所有局部变量的值列表
16)设置变量:set x=12
17)GDB线程命令:
a) info threads(给出当前所有的线程信息)
b) thread 3(切换查看线程)
c) break 88 thread 3(当线程3到达源代码行88时停止执行)
d) break 88 thread 3 if x == y
e) thread apply all bt,查看所有的线程的栈信息。
18) 您可以以进程ID作为第二个参数,以调式一个正在运行的进程
gdb 程序名 1234
注意点:
1)重新编译文件时不要退出gdb,断点可以保存着。
2)在调试时不要开启优化代码的选项,不然经过了优化,设置的断点的位置跟编译后的位置相差可能很大。
相关文章推荐
- Git学习笔记(主要是对一些命令进行记录。。)
- WinDbg学习笔记十 - 内核调试常用命令4 - 内存
- Xcode 实战开发学习笔记 之调试应用程序两个有用的命令
- 学习笔记 --- LINUX 应用调试之使用strace命令追踪系统调用
- Bird私房菜学习笔记1 命令记录
- WinDbg学习笔记八 - 内核调试常用命令2 - 进程相关
- WinDbg学习笔记十一 - 内核调试常用命令5 - 对象相关
- Java虚拟机学习笔记-记录一次编译OpenJDK8与调试的过程
- WinDbg学习笔记七 - 内核调试常用命令1 - 查看目标机
- 调试的艺术学习笔记--程序崩溃处理(段错误)
- Pixhawk学习笔记(5)——PX4FLOW光流传感器调试过程记录
- linux个人学习笔记---ubuntu14.10删除播放器历史记录命令
- 学习笔记 --- LINUX 应用调试之编写之事件记录与自动重现
- GIT学习笔记-命令基础-记录每次更新到仓库
- Linux命令学习笔记(更新:shell调试)
- 深度学习的GDB调试命令和经验记录
- WinDbg学习笔记九 - 内核调试常用命令3 - 线程相关
- JavaScript学习记录——《学用 JavaScript 设计模式》学习笔记(1)
- linux命令学习笔记(44):top命令
- NS3学习记录(二)---eclipse调试NS3配置