• GDB使用例子


    GDB使用例子

    一般来说GDB主要调试的是C/C++的程序。要调试C/C++的程序,首先在编译时,我们必须要把调试信息加到可执行文件中。使用编译器(cc/gcc/g++)的 -g 参数可以做到这一点。如:

    > gcc -g hello.c -o hello
    > g++ -g hello.cpp -o hello

     

     

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

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

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

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

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

     

      示例一:在进入函数func时,设置一个断点。可以敲入break func,或是直接就是b func
        (gdb) b func
        Breakpoint 1 at 0x8048458: file hello.c, line 10.

      示例二:敲入b按两次TAB键,你会看到所有b打头的命令:
        (gdb) b
        backtrace  break      bt

      示例三:l(l命令相当于list,从第一行开始例出原码)

      示例四:r(运行程序) n(下一步) c(Continuing)

      示例五:p i 查看变量i的值

      示例六:bt 查看函数堆栈

  • 相关阅读:
    Python中的类(上)
    Django REST Framework API Guide 07
    Django REST Framework API Guide 06
    Django REST Framework API Guide 05
    Django REST Framework API Guide 04
    Django REST Framework API Guide 03
    Django REST Framework API Guide 02
    Django REST Framework API Guide 01
    Django 详解 信号Signal
    Django 详解 中间件Middleware
  • 原文地址:https://www.cnblogs.com/kexinxin/p/9939129.html
Copyright © 2020-2023  润新知