• GDB的启动方式


    1.直接启动

    gdb

    gdb test.out

    gdb test.out core 异常崩溃时产生的core

    2.动态连接

    gdb test.out pid(进程)

    动态的跟踪pid进程的行为

    3.GDB应用示例一

    gdb   //启动

    (gdb) file test.out  //载入目标程序

    (gdb) set args arg1  arg2   //设置命令行参数

    (gdb) run   //执行目标程序

    还有一个start命令,start在启动程序后,会立即停止。

    gdb 

    (gdb) file test.out 

    上面两条语句等价于:gdb test.out

    4.GDB应用示例二:动态的跟踪、监视某个进程的执行

    gdb  //启动

    (gdb) attach pid  //链接到目标进程,链接成功后,目标进程将停止执行。

    (gdb) continue  //恢复执行

    gdb 

    (gdb) attach pid  

    上面两条语句等价于gdb test.out pid

    如何动态的链接到一个已经运行的进程上:

    将test.out先运行起来

    在另一个终端获得进程的pid

    然后执行:gdb

    (gdb) attach pid

    5.GDB使用初探

    gcc -g test.c func.c -o test.out

    ulimit -c unlimited  (让程序在崩溃时产生core文件)

    gdb test.out core

    定位到func.c文件的第7行出现了问题

    *g_pointer = (int )"D.T.Software";

    想把g_pointer所指的地址处写一个整型值,然而g_pointer指向0地址处(为什么?因为定义了int* g_pointer ,它是全局变量,没有进行初始化,默认为0)

  • 相关阅读:
    智能网关de_GWD的一次排障经历
    盛唐领土争夺战读后感
    Unreal Open Day游记
    虚幻4随笔7 未知的未来
    虚幻4随笔6 Object和序列化
    虚幻4随笔5 使用中的一些发现
    虚幻4随笔4 从工程开始
    松口气,近一段时间的工作学习情况
    虚幻4随笔 三 从UE3到UE4
    关卡原型制作思路
  • 原文地址:https://www.cnblogs.com/-glb/p/12514440.html
Copyright © 2020-2023  润新知