Linux下编程工具的使用(5) - GDB调试工具(1)
作者 佚名技术
来源 Linux系统
浏览
发布时间 2012-04-30
arranty" for details. This GDB was configured as "x86_64-linux-gnu". (gdb) help List of classes of commands: aliases -- Aliases of other commands breakpoints -- Making program stop at certain points data -- Examining data files -- Specifying and examining files internals -- Maintenance commands obscure -- Obscure features running -- Running the program stack -- Examining the stack status -- Status inquiries support -- Support facilities tracepoints -- Tracing of program execution without stopping the program user-defined -- User-defined commands Type "help" followed by a class name for a list of commands in that class. Type "help all" for the list of all commands. Type "help" followed by command name for full documentation. Type "apropos word" to search for commands related to "word". Command name abbreviations are allowed if unambiguous. (gdb) gdb 的命令很多, gdb 把之分成许多个种类. help 命令只是例出 gdb 的命令种类,如果要看种类中的命令,可以使用 help <class> 命令,如: help breakpoints ,查看设置断点的所有命令.也可以直接 help <command> 来查看命令的帮助. gdb 中,输入命令时,可以不用打全命令,只用打命令的前几个字符就可以了,当然,命令的前几个字符应该要标志着一个唯一的命令,在 Linux 下,你可以敲击两次 TAB 键来补齐命令的全称,如果有重复的,那么 gdb 会把其例出来. 示例一:在进入函数 func 时,设置一个断点.可以敲入 break func ,或是直接就是 b func (gdb) b func Breakpoint 1 at 0x8048458: file hello.c, line 10. 示例二:敲入 b 按两次 TAB 键,你会看到所有 b 打头的命令: (gdb) b backtrace break bt (gdb) 示例三:只记得函数的前缀,可以这样: (gdb) b make_ < 按 TAB 键 > (再按下一次 TAB 键,你会看到 : ) make_a_section_from_file make_environ make_abs_section make_function_type make_blockvector make_pointer_type make_cleanup make_reference_type make_command make_symbol_completion_list (gdb) b make_ GDB 把所有 make 开头的函数全部例出来给你查看. 示例四:调试 C 的程序时,有可以函数名一样.如: (gdb) b ''bubble( M-? bubble(double,double) bubble(int,int) (gdb) b ''bubble( 你可以查看到 C 中的所有的重载函数及参数.(注: M-? 和“按两次 TAB 键”是一个意思) 要退出 gdb 时,只用发 quit 或命令简称 q 就行了. GDB 中运行*NIX 的shell 程序 在 gdb 环境中,你可以执行 *NIX 的 shell 的命令,使用 gdb 的 shell 命令来完成: shell <command string> 调用 *nux 的 shell 来执行 <command string> ,环境变量 SHELL 中定义的 *NIX 的 shell 将会被用来执行 <command string> ,如果 SHELL 没有定义,那就使用 *NIX 的标准 shell : /bin/sh .(在 Windows 中使用 Command.com 或 cmd.exe ) (gdb) disassemble func Dump of assembler code for function func: 0x8048450 <func>: push |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: samba服务器配置疑难杂症下一篇: FlashFXP 连接Linux服务器连不上原因
关于Linux下编程工具的使用(5) - GDB调试工具(1)的所有评论