• makefile、gdb使用记录


    makefile的模板

    all:    rover server station
    
    rover:  rover.c tcputil.o
        gcc rover.c tcputil.o -o rover -lpthread
    
    server: server.c tcputil.o
        gcc server.c tcputil.o -o server -lpthread
    
    station:station.c tcputil.o
        gcc station.c tcputil.o -o station -lpthread
    
    tcputil:tcputil.c 
        gcc tcputil.c -c -lpthread
    
    .PHONY: clean
    
    clean:
        rm -f *.o rover server station

    - 引号后面的文件代表需要的材料

    - .PHONY:指令声明,虚文件

    GDB的使用

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

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

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

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

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

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

    3、gdb -help

    4、指令表

    (gdb) l

    l命令相当于list,从第一行开始例出原码

    (gdb) 直接回车表示,重复上一次命令
    (gdb) break 16 设置断点,在源程序第16行处
    (gdb) break func 设置断点,在函数func()入口处
    (gdb) info break 查看断点信息
    (gdb) r  运行程序,run命令简写
    (gdb) n  单条语句执行,next命令简写
    (gdb) c  继续运行程序,continue命令简写
    (gdb) p i  打印变量i的值,print命令简写
    (gdb) bt  查看函数堆栈
    (gdb) finish  退出函数
    (gdb) q 退出gdb

    x  按十六进制格式显示变量。
        d  按十进制格式显示变量。
        u  按十六进制格式显示无符号整型。
        o  按八进制格式显示变量。
        t  按二进制格式显示变量。 
        a  按十六进制格式显示变量。
        c  按字符格式显示变量。
        f  按浮点数格式显示变量。

            (gdb) p i
            $21 = 101    
            
            (gdb) p/a i
            $22 = 0x65
            
            (gdb) p/c i
            $23 = 101 'e'

     (摘自http://blog.csdn.net/haoel/article/details/2879

    DDD:带图形界面的Debugger

    ddd在ubuntu下的安装:sudo apt-get install ddd

  • 相关阅读:
    python tarfile模块基本使用
    Python shutil模块
    python的gzip库使用方法
    python的gzip库使用方法
    python的gzip库使用方法
    linux 下查看文件修改时间,访问时间,状态改变时间
    linux 下查看文件修改时间,访问时间,状态改变时间
    linux 下查看文件修改时间,访问时间,状态改变时间
    mysqldump使用
    windows 7环境下配置oracle 11g 客户端
  • 原文地址:https://www.cnblogs.com/catmelo/p/3863744.html
Copyright © 2020-2023  润新知