首页 > 其他分享 >编译器和 gdb

编译器和 gdb

时间:2023-07-14 22:04:35浏览次数:44  
标签:XX 行号 编译器 pg 断点 gdb

g++ -o XX XX.cpp 编译
-g gdb 调试
-O2 吸氧
-pg 看函数运行
-ftrapv 有没有溢出
-fsanitize=address 看数组有没有越界

-pg -ftrapv -fsanitize=address 都要运行一遍(./XX
-pg 后面还要 gprof -b ./XX
如果越界了,后面两个会给出 Aborted 直接终止


gdb 调试

gdb (./)XX   开始 gdb
b(break) 行号   设置断点
b(break) 行号 if ...(不用打括号的 if 条件句)   设置条件断点
r(run)   运行程序
p(print) 函数,数组,变量,条件表达式   显示
clear 行号   取消断点
n(next)   执行下一行
s(step)   执行下一步
c(continue)   继续运行
q(quit)   退出 gdb

标签:XX,行号,编译器,pg,断点,gdb
From: https://www.cnblogs.com/thirty-two/p/17555083.html

相关文章

  • GDB RSP协议
    https://www.cnblogs.com/cfas/p/16847682.htmlhttps://blog.csdn.net/hmsiwtv/article/details/8759129https://blog.51cto.com/u_15060461/4145151......
  • Net 编译器平台--- Roslyn Scripting APIs
    引言上一篇中.Net编译器平台---Roslyn,介绍了Roslyn的各项功能,包括公开API,使用语法,使用语义,使用工作区等功能。那么回到上一篇中提到的问题,实现类似这样的功能(以下代码为伪代码):stringscriptText="inta=1;intb=2;returna+b;";varresult=Script.Run(scriptTex......
  • Net 编译器平台 --- Roslyn
    引言最近做一个功能想要动态执行C#脚本,就是预先写好代码片段,在程序运行时去执行代码段,比如像这样(以下代码为伪代码):stringscriptText="inta=1;intb=2;returna+b;";varresult=Script.Run(scriptText);查阅了一些资料,发现.Net的开源编译器平台-Roslyn,可以支......
  • 前端学习 C 语言 —— GDB调试器
    GDB调试器我们在讲指针时用GDB调试段错误。本篇将详细介绍gdb的最常用命令、日志记录、检测点,最后介绍如何用gdb调试进程以及用gdb调试一个开源项目的调试版本——glmark2。gdb介绍GDB,theGNUProjectdebugger——gdb官网gdb是一款调试器,能打断点。支持多种语......
  • 编译安装openGauss并用GDB进行调试
    编译安装openGauss并用GDB进行调试惜月夜于2021-06-2818:15:07发布1810收藏2分类专栏:openGauss文章标签:数据库版权openGauss专栏收录该内容1篇文章0订阅订阅专栏编译安装openGauss并用GDB进行调试关于编译opengauss,然后怎么去调试它,不知道花了多长时间.本来想着用......
  • C++面试八股文:std::array如何实现编译器排序?
    C++面试八股文:std::array如何实现编译器排序?某日二师兄参加XXX科技公司的C++工程师开发岗位第25面:面试官:array熟悉吗?二师兄:你说的是原生数组还是std::array?面试官:你觉得两者有什么区别?二师兄:区别不是很大,原生数组(非动态数组)和std::array都在栈上开辟空间,初始化的时候......
  • 解释器和编译器
    解释器和编译器是两种不同的程序,用于处理和执行源代码。它们之间的主要区别在于代码的转换和执行方式。编译器将整个源代码文件作为输入,对其进行分析、优化和转换,并生成等价的目标代码(通常是机器码或字节码)。这个过程称为编译。生成的目标代码可以在计算机上直接执行,无需再次转换......
  • 关于编译器(转)
    原文:https://blog.csdn.net/wuhenyouyuyouyu/article/details/104669179/ 全部的语言编译器都拥有共通的中介架构:1.一个前端,用于解析匹配此语言的源代码,这个前端会产生一个抽象语法树;2.将此语法树翻译成为GCC的寄存器传递语言(registertransferlanguage)的后端。编译器......
  • VSCode gdb 调试 qemu u-boot 的方法
    前言最近使用VSCodeGDB调试qemu,有了一点收获,u-boot编译后生成了一个elf文件:u-boot,是否也可以调试一下?为何需要VSCodeGDB调试,直接gdb调试不就可以了吗?答案就是:VSCode可以界面调试,命令行调试会枯燥很多环境使用qemu,就是不需要板子win1064位VMwareWorkstationPro......
  • gdb简单使用
    gdb常见指令1.编译假设文件名为hello.cgcc-ggdb3-Wall-ohellohello.c调试,需要在编译时加上选项-ggdb3选项-Wall:可以提示错误信息2.进入gdbgdbhello3.打断点,以源码内行号为单位打断点: break21在第21行设置断点 breakmain在main函数处设置断点 break......