用GDB调试程序(2)
2009-05-13 01:29:17来源:未知 阅读 ()
    要查看寄存器的值,很简单,可以使用如下命令:      
    info registers  
        查看寄存器的情况。(除了浮点寄存器)      
    info all-registers
        查看所有寄存器的情况。(包括浮点寄存器)      
    info registers
        查看所指定的寄存器的情况。          
    寄存器中放置了程序运行时的数据,比如程序当前运行的指令地址(ip),程序的当前堆栈地址(sp)等等。你同样可以使用print命令来访问寄存器的情况,只需要在寄存器名字前加一个$符号就可以了。如:p $eip。
 改变程序的执行
    一旦使用GDB挂上被调试程序,当程序运行起来后,你可以根据自己的调试思路来动态地在GDB中更改当前被调试程序的运行线路或是其变量的值,这个强大的功能能够让你更好的调试你的程序,比如,你可以在程序的一次运行中走遍程序的所有分支。
一、修改变量值
    修改被调试程序运行时的变量值,在GDB中很容易实现,使用GDB的print命令即可完成。如:      
        (gdb) print x=4      
    x=4这个表达式是C/C++的语法,意为把变量x的值修改为4,如果你当前调试的语言是Pascal,那么你可以使用Pascal的语法:x:=4。      
    在某些时候,很有可能你的变量和GDB中的参数冲突,如:      
        (gdb) whatis width
        type = double
        (gdb) p width
        $4 = 13
        (gdb) set width=47
        Invalid syntax in expression.
    因为,set width是GDB的命令,所以,出现了“Invalid syntax in expression”的设置错误,此时,你可以使用set var命令来告诉GDB,width不是你GDB的参数,而是程序的变量名,如:      
        (gdb) set var width=47          
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:初试openbsd 心得
下一篇:有关FreeBSD的汉化与使用
- 拓扑排序程序 2009-05-13
- (转载)FreeBSD如何搭建iPhone程序开发环境 2009-05-13
- linux内核printk调试 2009-05-13
- Freebsd下程序随系统开机启动的方法 2009-05-13
- BSD协议的调试器 2009-05-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash