交叉开发---------1.2Linux中命令行调试工具

GDB调试工具
    作用:可以让我们自己的程序在Ubuntu中按照我们自己的控制,让代码单步运行,在运行的同时,可以打印出各种变量的值和地址

    我们可以把我们的程序运行到GDB这个环境上面去(类似于windows中的各种调试工具)
    安装GDB工具:
        sudo apt install gdb 
    
    如何把代码放到这个环境上面去调试呢?
        1.编译程序的时候需要加上调试信息
            gcc -g 1.c -o 1
            可执行文件1中包含了gdb调试的信息,这个程序可以运行到gdb环境上面

            gcc 1.c -o 1
            可执行文件1中没有包含了gdb调试的信息,这个程序不可以运行到gdb环境上面

        2.gdb + 你要调试的程序文件名
            gdb 01   //利用gdb工具调试当前目录下面名字叫做01的可执行文件

            进入gdb的调试命令模式:
            有一些需要记住的常用命令(命令可以使用首字母缩写):

            l     list   列举源代码
                按回车就是重复执行上一次输入的命令

            quit   退出gdb这个调试程序

            r     run  运行程序
                    让程序开始运行,运行到断点的位置或者程序结束

            b     break point   设置断点
                gdb在运行这个程序的时候,可以设置断点,会在运行到断点位置的时候停下来
                如:
                b main    程序运行到main函数的时候停下来
                b 18        程序运行到第18行的时候停下来
                b fun       程序运行到fun函数的时候停下来
                ...

                info b  查看所有设置的断点信息
                delete + num  删除num表示的断点

                停下来的时候,打印的一行语句是下一次将要执行的语句 

            
            p   print   在运行的同时,可以打印出各种变量的值和地址

                print n   打印变量n的值
                print &n   打印变量n的地址 
                print fun   打印函数的地址

                info line 3  查看第三行的信息

            n   :next   下一步,单步运行,执行上一次列举出来的代码
            s   :step into  下一步,单步运行,执行上一次列举出来的代码

            n和s的区别?
                n和s仅仅在遇到函数的时候有区别
                n会把函数调用指令当成一条简单的指令,一次性执行完毕
                s会跳转到函数的内部,一条一条运行函数的代码

            以上就是我们需要记住的基本的指令

            练习:自己写一个简单的代码,试一下gdb工具

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值