zoukankan      html  css  js  c++  java
  • gdb调试

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

    1、gdb <program> 
    program也就是你的执行文件,一般在当然目录下。 

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

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



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

    -symbols <file> 
    -s <file> 
    从指定文件中读取符号表。 

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

    -core <file> 
    -c <file> 
    调试时core dump的core文件。 

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

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

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

    1、程序运行参数。 
    set args 可指定运行时参数。(如:set args 10 20 30 40 50) 
    show args 命令可以查看设置好的运行参数。 

    2、 运行环境。 
    path <dir> 可设定程序的运行路径。 
    show paths 查看程序的运行路径。 
    set environment varname [=value] 设置环境变量。如:set env USER=hchen 
    show environment [varname] 查看环境变量。 

    3、工作目录。 
    cd <dir> 相当于shell的cd命令。 
    pwd 显示当前的所在目录。 

    4、程序的输入输出。 
    info terminal 显示你程序用到的终端的模式。 
    使用重定向控制程序输出。如:run > outfile 
    tty命令可以指写输入输出的终端设备。如:tty /dev/ttyb

  • 相关阅读:
    括号匹配
    超级阶梯问题
    进制问题
    rwkj 1423
    next_permutation
    rwkj 1420
    uva-10392-因数分解
    uva-10305-水题-拓扑排序
    uva-10194-排序
    uva-10152-乌龟排序
  • 原文地址:https://www.cnblogs.com/skying555/p/9515333.html
Copyright © 2011-2022 走看看