zoukankan      html  css  js  c++  java
  • Debugging with GDB v10.1中文翻译-第四章 在GDB里运行程序

    第四章 在GDB里运行程序(未完成)

    当您在GDB下运行一个程序时,您必须在编译它时首先生成调试信息。
    您可以在自己选择的环境中,从GDB的默认参数开始(如果有的话)。如果您正在进行本地调试,您可以重定向程序的输入和输出,调试已经运行的进程,或者终止子进程。

    4.1 为调试而编译

    为了有效地调试程序,需要在编译时生成调试信息。该调试信息存储在目标文件中;它描述了每个变量或函数的数据类型,以及可执行代码中源代码行号和地址之间的对应关系。
    为了获取调试信息,请在运行编译器时指定"-g"选项。
    要发送给客户的程序使用"-O"编译器选项进行优化编译。然而,一些编译器不能同时处理"-g"和"-O"选项。使用这些编译器,您无法生成包含调试信息的优化可执行文件。
    GCC,GNU C/C++编译器,同时支持带或不带"-O"的"-g",这使得调试优化后的代码成为可能。我们建议您在编译程序时始终使用"-g"。你可能认为你的程序是正确的,但是你得寸进尺是没有意义的。有关更多信息,请参见第11章[优化代码],第181页。
    GNU C编译器的旧版本允许一个变体选项'-gg'用于调试信息。GDB不再支持这种格式;如果你的GNU C编译器有这个选项,请不要使用它。
    GDB知道预处理器宏,可以向您展示它们的扩展(参见第12章[宏],第185页)。如果只指定 -g 标志,大多数编译器不会在调试信息中包含有关预处理器宏的信息。GCC的3.1版以及更高版本的GNU C编译器,如果您使用的是DWARF调试格式,它会提供宏信息,并指定选项 -g3
    有关影响调试信息的GCC选项的更多信息,请参见使用GNU编译器集合(GCC)中的"调试程序或GCC的选项"一节。
    如果您使用编译器支持的最新版本的DWARF调试格式,您将获得最佳的调试体验。DWARF是目前GDB中最具表现力和最受支持的调试格式。

  • 相关阅读:
    vim常用命令
    MYSQL用户管理
    RPM 命令
    Windows下使用xShell向远程Linux上传文件
    Linux PHP 安装过程出现的错误
    完整的 http 错误代码含义解释
    Linux gzip压缩输出
    高性能Mysql主从架构的复制原理及配置详解
    Mybatis多个参数传值方法
    jsp 九大内置对象和其作用详解
  • 原文地址:https://www.cnblogs.com/Songhe/p/14543976.html
Copyright © 2011-2022 走看看