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

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

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

[david@DID david]$ g++ -g hello.cpp -o hello

如果没有-g,将看不见程序的函数名和变量名,代替它们的全是运行时的内存地址。当用-g把调试信息加入,并成功编译目标代码以后,看看如何用gdb来调试。

启动gdb的方法有以下几种:

gdb

program也就是执行文件,一般在当前目录下。

gdb core

用gdb同时调试一个运行程序和core文件,core是程序非法执行后,core dump后产生的文件。

gdb

如果程序是一个服务程序,那么可以指定这个服务程序运行时的进程ID。gdb会自动attach上去,并调试它。program应该在PATH环境变量中搜索得到。

●在Linux下用ps(第一章已经对ps作了介绍)查看正在运行的程序的PID(进程ID),然后用gdb PID格式挂接正在运行的程序。

●先用gdb 关联上源代码,并进行gdb,在gdb中用attach命令来挂接进程的PID,并用detach来取消挂接的进程。

gdb启动时,可以加上一些gdb的启动开关,详细的开关可以用gdb -help查看。下面只列举一些比较常用的参数:

-symbols

-s

从指定文件中读取符号表。

-se file

从指定文件中读取符号表信息,并把它用在可执行文件中。

-core

-c

调试时core dump的core文件。

-directory

-d

加入一个源文件的搜索路径。默认搜索路径是环境变量中PATH所定义的路径。

4.1.1 gdb的命令概貌

gdb的命令很多,gdb将之分成许多种类。help命令只是列出gdb的命令种类,如果要看其中的命令,可以使用help 命令。如:

(gdb) help data

也可以直接用help [command]来查看命令的帮助。

gdb中,输入命令时,可以不用输入全部命令,只用输入命令的前几个字符就可以了。当然,命令的前几个字符应该标志着一个惟一的命令,在Linux下,可以按两次TAB键来补齐命令的全称,如果有重复的,那么gdb会把它全部列出来。

示例一:在进入函数func时,设置一个断点。可以输入break func,或是直接输入b func。

(gdb) b func

Breakpoint 1 at 0x804832e: file test.c, line 5.

(gdb)

示例二:输入b按两次TAB键,你会看到所有b开头的命令。

(gdb) b

backtrace break bt

要退出gdb时,只用输入quit或其简称q就行了。

4.1.2 gdb中运行Linux的shell程序

在gdb环境中,可以执行Linux的shell命令:

shell

调用Linux的shell来执行,环境变量SHELL中定义的Linux的shell将会用来执行。如果SHELL没有定义,那就使用Linux的标准shell:/bin/sh(在Windows中使用Command.com或cmd.exe)。

还有一个gdb命令是make:

make

可以在gdb中执行make命令来重新build自己的程序。这个命令等价于shell make 。

4.1.3 在gdb中运行程序

当以gdb 方式启动gdb后,gdb会在PATH路径和当前目录中搜索的源文件。如要确认gdb是否读到源文件,可使用l或list命令,看看gdb是否能列出源代码。

在gdb中,运行程序使用r或是run命令。程序的运行,有可能需要设置下面四方面的事。

程序运行参数

set args 可指定运行时参数。如:


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

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

    • 费亚杰
      费亚杰

      大总裁咩

    • 杨红
      杨红

      谁告诉你是活的了

    • 刘瑞宏
      刘瑞宏

      它就是在展示一个“警告中国”的姿态

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