b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

gdb 条件断点_gdb break_windows 调试工具(7)

电脑杂谈  发布时间:2017-04-10 23:05:23  来源:网络整理

nopass
ignore

当被调试的程序收到信号时,GDB不会让被调试程序来处理这个信号。

info signals
info handle

查看有哪些信号在被GDB检测中。

当event发生时,停住程序。event可以是下面的内容:

1、throw 一个C++抛出的异常。(throw为关键字)

2、catch 一个C++捕捉到的异常。(catch为关键字)

某些时候,用-g编译过后的执行程序中只是包括了源文件的名字,没有路径名。GDB提供了可以让你指定源文件的路径的命令,以便GDB进行搜索。

Directory dirname …
dir dirname

加一个源文件路径到当前路径的前面。如果你要指定多个路径,UNIX下你可以使用“:”,Windows下你可以使用“;”。

directory

清除所有的自定义的源文件搜索路径信息。

show directories

显示定义了的源文件搜索路径。

  (gdb)   list   line1,line2

要想运行准备调试的程序,可使用run(r)命令,在它后面可以跟随发给该程序的任何参数,包括标准输入和标准输出说明符(<和>)和外壳通配符(*、?、[、])在内。

如果你使用不带参数的run命令,gdb就再次使用你给予前一条run命令的参数,这是很有用的。

利用set args命令就可以修改发送给程序的参数,而使用show args 命令就可以查看其缺省参数的列表。

(gdb)set args –b –x
(gdb)show args
(gdb)backtrace(bt)  //命令为堆栈提供向后跟踪功能。     
(gdb)Backtrace       //命令产生一张列表,包含着从最近的过程开始的所以有效过程和调用这些过程的参数。     
  (gdb)   print   p   //(p为变量名)     
  (gdb)   whatis   p     
  type   =   int   *     

print 是gdb的一个功能很强的命令,利用它可以显示被调试的语言中任何有效的表达式。表达式除了包含你程序中的变量外,还可以包含以下内容:

(gdb)print   find_entry(1,0)     
(gdb)print   *table_start
$8={e=reference=’\000’,location=0x0,next=0x0} 
(gdb)print   $1  //($1为历史记录变量,在以后可以直接引用   $1   的值)     

人为数组提供了一种去显示存储器块(数组节或动态分配的存储区)内容的方法。早期的调试程序没有很好的方法将任意的指针换成一个数组。就像对待参数一样,让我们查看内存中在变量h后面的10个整数,一个动态数组的语法如下所示:

base@length

因此,要想显示在h后面的10个元素,可以使用h@10:

(gdb)print   h@10     
$13=(-1,345,23,-234,0,0,0,98,345,10)     

可以用来在调试的程序中设置断点,该命令有如下四种形式:

1. break   line-number   使程序恰好在执行给定行之前停止。
2. break   function-name   使程序恰好在进入指定的函数之前停止。
3. break   line-or-function   if   condition   如果condition(条件)是真,程序到达指定行或函数时停止。
4. break   routine-name   在指定例程的入口处设置断点     


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-40594-7.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...