
GCC_G++_GDB_DDD
文章平均质量分 86
Augusdi
让时间验证一切,让时间验证我。感谢大家的无私帮助,我愿以同样的态度回馈我热情的朋友,用我们的热忱开创美好未来!
展开
-
深入浅出让你理解什么是LLVM
什么是LLVMLLVM项目是模块化、可重用的编译器以及工具链技术的集合。美国计算机协会 (ACM) 将其2012 年软件系统奖项颁给了LLVM,之前曾经获得此奖项的软件和技术包括:Java、Apache、 Mosaic、the World Wide Web、Smalltalk、UNIX、Eclipse等等创始人:Chris Lattner,亦是Swift之父趣闻:Chris Latter本来只是想写一个底层的虚拟机,这也是LLVM名字的由来,low level virtual machi转载 2021-09-11 17:20:26 · 745 阅读 · 0 评论 -
LLVM-clang
LLVM什么是LLVM?官网:https://llvm.org/The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.LLVM项目是模块化,可重用的编译器与及工具链技术的技术美国计算协会(ACM)将其2012年软件系统奖项颁给了LLVM,之前曾经获得此奖项的软件和技术包括:Java,Apache,Mosaic,the World Wide Web,Small转载 2021-08-21 13:29:13 · 556 阅读 · 0 评论 -
LLVM入门笔记
一、LLVM的周边项目:1.clang、llvm、clang-tools-extra、compiler-rt:clang+LLVM:clang是LLVM的前端,把各种源码编译处理;clang-tools-extra:clang默认以外的认为不是很重要的工具;Compiler-RT 项⽬为硬件不⽀持的低级功能提供特定的⽀持。例如,32位⽬标通常缺少⽀持64位除法的指令, Compiler-RT 通过提供特定⽬标的优化函数来解决此问题,使⽤这样的函数可以在32位指令处理器上实现64位转载 2021-08-21 13:24:48 · 1576 阅读 · 1 评论 -
层级调用的makefile模板
目录简介 公共部分makefile 模块目录makefile 顶层makefile 实际输出简介学习完《跟我一起写makefile》之后,对于makefile的各种规则和函数有了初步了解,但是对于层级调用的makefile不是很熟悉,接下来的内容是搜索的网上的一个模板,对其中内容自己做了一些修改,并且简单实验了一下可以正常工作.这个模板与其他的不相同的是,他把公共部分封装成了一个makefile,这个思路感觉很有意思。原文链接《一个适用于层级目录结构的makefile模版》本.转载 2021-07-18 23:28:57 · 992 阅读 · 1 评论 -
C/C++程序编译
目录简介 预处理 编译 汇编 链接简介该部分内容仅作概念上的介绍,具体细节请参照《程序员的自我修养–链接、装载与库习》进行学习,以下笔记也是书中相关内容编译过程大体可分为4个过程,预处理(preprocessing)、编译(compiliation)、汇编(assembly)和链接(linking)使用 gcc 命令不跟任何的选项的话,会默认执行预处理、编译、汇编、链接这整个过程,如果程序没有错,就会得到一个可执行文件,默认为a.out-E选项:提示编译器执行完预处转载 2021-07-18 23:27:45 · 523 阅读 · 1 评论 -
GDB调试之多进程/线程
目录选择调试进程 进程切换 实例 多线程调试选择调试进程在GDB中有两个选项来确定调试的进程:follow-fork-mode,设置调试哪个进程 detach-on-fork,GDB在fork之后是否断开(detach)某个进程的调试这两个选项的参数组合起来的效果如下表follow-fork-mode detach-on-fork 效果 parent on 只调试父进程 child on 只调试子进程 parent off转载 2021-07-18 23:24:04 · 494 阅读 · 0 评论 -
GDB调试之图形化界面(TUI)
目录简介 窗口介绍及切换 窗口属性 窗口刷新 TUI模式下指令介绍 断点状态显示简介TUI(TextUser Interface)为GDB调试的文本用户界面,可以方便地显示源代码、汇编和寄存器文本窗口,甚至可以显示程序及断点运行状态。备注:本文所有命令均在tui模式下生效窗口介绍及切换 窗口介绍 该模式下有五种窗口 (cmd)command命令窗口. 可以键入调试命令 (src)source源代码窗口. 显示当前行,断点等信息..转载 2021-07-18 23:05:22 · 4637 阅读 · 1 评论 -
GDB调试之改变程序执行流程
目录目的 实例目的最近学习了函数调用及返回的流程后,突发奇想能不能直接使用GDB修改栈空间,达到调用函数 -> 返回主函数变为调用函数 -> 插入自定义函数 -> 返回主函数的效果,感觉很有意思,遂进行以下实验实例肥肠简单的代码如下 1234567891011121314151617181920 int add2(int a, int b){ printf("asdasdads\n.转载 2021-07-18 08:04:30 · 542 阅读 · 1 评论 -
GDB调试之多进程/线程
目录选择调试进程 进程切换 实例 多线程调试选择调试进程在GDB中有两个选项来确定调试的进程:follow-fork-mode,设置调试哪个进程 detach-on-fork,GDB在fork之后是否断开(detach)某个进程的调试这两个选项的参数组合起来的效果如下表follow-fork-mode detach-on-fork 效果 parent on 只调试父进程 child on 只调试子进程 parent off转载 2021-07-17 23:22:57 · 1127 阅读 · 1 评论 -
gcc的参数
目录常用选项 预处理选项 警告选项常用选项选项 作用 总体选项 -c 编译或汇编源文件,但是不作连接.编译器输出对应于源文件的目标文件。GCC默认用`.o'替换源文件名后缀`.c',`.i',`.s'等等。GCC 忽略-c 选项后面任何无法识别的输入文件 -S 编译后即停止,不进行汇编。生成.s汇编源文件 -E 预处理后即停止,不进行编译 -o file 指定输出文件为file 链接选项 -llibrary 链接名为 libr转载 2021-07-17 13:40:33 · 428 阅读 · 1 评论 -
GDB调试之objdump命令
目录常用参数介绍 应用场景简介objdump命令主要是用来查看文件中的各个段的详细信息常用参数介绍 123456789101112131415161718192021222324252627282930313233343536 [root@VM_0_4_centos studyCode]# objdump --helpUsage: objdump <option(s)>转载 2021-07-17 08:51:03 · 1292 阅读 · 0 评论 -
GDB调试之nm命令详解
目录常用参数介绍 效果展示简介nm命令主要是用来列出某些文件中的符号常用参数介绍 12345678910111213141516 [root@VM_0_4_centos studyCode]# nm -helpUsage: nm [option(s)] [file(s)] List symbols in [file(s)] (a.out by default). The options are: -a, /转载 2021-07-17 08:49:00 · 1741 阅读 · 0 评论 -
GDB调试之段信息
目录.bss段 .data段 .rodata段 .text段 实例简介为了更好的调试程序,需要对程序编译后产生的库或可执行程序有一定的了解,本文主要介绍一下其中的段信息.bss段BSS段(bss segment)通常是指用来存放程序中未初始化的或者初始化为0的全局变量和局部静态变量的一块内存区域。BSS是英文Block Started by Symbol的简称。BSS段属于静态内存分配。默认初始化为0的全局变量,它不占用程序文件的大小,但是占用程序运行时的内存空间,可自行转载 2021-07-17 08:46:36 · 2361 阅读 · 0 评论 -
GDB调试之信号
目录GDB发送信号 GDB对信号的处理 实例GDB发送信号在GDB调试状态中,可以在命令号输入signal 信号来向程序发送信号GDB处理信号背景:GDB调试时,能够捕获产生的信号并停止,当频繁有信号产生时,很影响调试在GDB中handle指令用于设置GDB对于信号的处理,可以输入help handle来查看 1234567891011121314151617181920 Specifyhowt..转载 2021-07-17 08:41:21 · 1329 阅读 · 0 评论 -
C++11 : Start thread by member function with arguments
In this article we will discuss how to start a thread by a member function of class.Starting thread with non static member functionSuppose we have a class Task, which has non static member functio...转载 2020-04-25 20:56:57 · 1284 阅读 · 0 评论 -
Linux下的C编译环境
概要:在linux环境中我们使用gcc来编译C程序,在面对规模大的C程序时(源文件很多),我们可以书写makefile并使用make命令完成C程序的构建。第一部分 C程序的编译过程首先,在阐明编译方法之前,我们应该先了解一下C程序的编译过程有哪些阶段。1、编译预处理:编译器读取C源程序,对其中的预处理命令(以#开头)和特殊符号进行处理。预处理命令包括主要包括三种,一是宏定义命令,二...转载 2020-03-19 22:33:03 · 766 阅读 · 0 评论 -
vim gdb ddd xxgdb精彩的程序调试
来源: ChinaUnix博客 日期:2008.03.14 19:10 (共有0条评论) 我要评论//------------------------------------------------------------------------------------------------------------------------------------------------图形GD转载 2014-10-12 16:28:29 · 2009 阅读 · 0 评论 -
DDD进行调试 介绍
DDD进行调试 介绍标题:嵌入式开发中使用DDD进行调试2008-01-17 19:57:28 在嵌入式程序开发过程中,程序员要进行大量的调试,以此验证程序的正确性,修改潜在的错误。调试器对于程序员来说是不可或缺的必备工具。在Linux环境 中,有很多调试工具和调试辅助工具,例如GDB、XXGDB、RHIDE、XWPE、GVD和DDD等。其中,DDD是命令行调试器的图形前端,除了一般转载 2014-10-12 16:37:51 · 5045 阅读 · 0 评论 -
gdb常用命令
本文转载自本站gnuhpc的专栏 谢谢原作者的贡献!调用gdb编译需要在cc后面加 -g参数再加-o;[root@redhat home]#gdb 调试文件:启动gdb(gdb) l(list) :(字母l)从第一行开始列出源码(gdb) break n :在第n行处设置断点(gdb) break func:在函数func()的入口处设置断点(gdb) info break: 查看断点信息(gdb转载 2014-10-10 23:45:27 · 1337 阅读 · 0 评论 -
手把手教你玩转GDB
写在最前面:GDB是unix相关操作系统中C/C++程序开发必不可少的工具,它的功能之强大,是其它调试器所不能匹敌的。但是,现实的工作中,有很多开发者因为GDB本身入门门槛比较高,而被拒之门,与如此强大的失之交臂。笔者在近两年的C/C++开发工作中,对GDB本身的有一点研究,在这里总结出一系列《手把手教你玩转GDB》的文章,一方面权当是对自己经验的一个总结,一方面也是真的想能够对刚接触GDB的开发转载 2014-10-11 23:38:14 · 2288 阅读 · 0 评论 -
Example Debugging Session: Segmentation Fault Example
7.2 Example Debugging Session: Segmentation Fault ExampleWe are going to use gdb to figure out why the following program causes a segmentation fault. The program is meant to read in a line of text fro转载 2014-10-12 16:02:40 · 1560 阅读 · 0 评论 -
用DDD调试多进程
1、调试对象 查看当前调试对象:show follow-fork-mode 调试父进程: set follow-fork-mode parent 调试子进程: set follow-fork-mode child 2、调试模式 查看当前调试模式:show detach-on-fork 分离模式:set detach-on-fork on 此模式下,没被调转载 2014-10-12 16:33:08 · 1908 阅读 · 0 评论 -
gdb几个函数
gcc -g 调试 -wall 警告选项gdb tst (gdb) l 1 (gdb) (gdb) break 16 (gdb) break func (gdb) info break (gdb) r gdb) n (gdb) c (gdb) p i (gdb) bt (gdb) finish (gdb) q 在Linux下,你可以敲击两转载 2014-11-16 22:49:10 · 1639 阅读 · 1 评论 -
编译Linux内核
编译Linux内核 下面的实验以 debian7.5 64bit 为例.获取源码获取 debian7.5 本身的源码非常简单:sudo apt-get install linux-sourcehttps://www.kernel.org/ 的git上提供的源码分支非常多, 刚开始学习源码主要关注下面几个分支:linus分支: https://git.kernel.org/cgit/linu转载 2015-04-03 14:51:18 · 1455 阅读 · 0 评论 -
GDB查看运行时数据
在你调试程序时,当程序被停住时,你可以使用print命令(简写命令为p),或是同义命令inspect来查看当前程序的运行数据。print命令的格式是:printprint /是表达式,是你所调试的程序的语言的表达式(GDB可以调试多种编程语言),是输出的格式,比如,如果要把表达式按16进制的格式输出,那么就是/x。一、表达式print和许多GDB的命令一样,可以接受一个表达式,GDB会根据当前转载 2015-04-13 13:35:53 · 4447 阅读 · 0 评论 -
GDB详解
1 简介2 生成调试信息3 启动GDB 的方法4 程序运行上下文 4.1 程序运行参数 4.2 工作目录 4.3 程序的输入输出5 设置断点 5.1 简单断点 5.2 多文件设置断点 5.3 查询所有断点6 观察点7 条件断点8 维护停止点9 为停止点设定运行命令10 调试代码11 查看运行时数据12 程序变量13 自动显示14 历史记录15 改变程序的执行转载 2015-04-13 17:57:54 · 1410 阅读 · 0 评论 -
gdb 调试c/c++的一些小技巧
ptype obj/class/struct查看obj/class/struct的成员,但是会把基类指针指向的派生类识别为基类set print object on这个选项可以看到派生对象的真实类名,虽然ptype也可以打印出对象set print pretty on以树形打印对象的成员,可以清晰展示继承关系,设置为off时对象较大时会显示“一坨”如调试mysql Item类的派生类对象时会这转载 2015-04-13 13:19:04 · 1760 阅读 · 0 评论 -
学会用core dump调试程序错误
前言 最近在项目中遇到大型程序出现SIGSEGV ,一直不知道用core dump工具来调试程序,花了近一周的时间,才定位问题,老大很生气,后果很严重,呵呵,事后仔细学习了这块的知识,了解一点core dump的知识。 在使用半导体作为内存的材料前,人类是利用线圈当作内存的材料(发明者为王安),线圈就叫作core ,用线圈做的内存就叫作“core memory”。(线圈的单词应该是coi转载 2015-04-15 14:17:28 · 1550 阅读 · 0 评论 -
GDB多进程调试
GDB多进程调试(转) GDB 是 linux 系统上常用的 c/c++ 调试工具,功能十分强大。对于较为复杂的系统,比如多进程系统,如何使用 GDB 调试呢?考虑下面这个三进程系统:进程 Proc2 是 Proc1 的子进程,Proc3 又是 Proc2 的子进程。如何使用 GDB 调试 proc2 或者 proc3 呢?实际上,GDB 没有对多进程程序调试提供直接支持。例如,使用GDB调试某个转载 2015-04-15 14:18:42 · 1632 阅读 · 0 评论 -
C++读二进制文件 及 C++设置double精度
C++设置double精度#include cout setiosflags(ios::fixed) setprecision(2) m "%" endl;*******************************************************************************************************************转载 2017-04-20 13:04:29 · 5631 阅读 · 0 评论 -
UNIX系统开发-gcc参数详解
UNIX系统开发-gcc参数详解http://bbs.chinaunix.net/viewthread.php?tid=235728[版本] -0.13 [声明] 这篇文档是我的关于gcc参数的笔记,我很怀念dos年代我用小本子,纪录所有的dos 命令的参数.哈哈,下面的东西可能也不是很全面,我参考了很多的书,和gcc的帮助.不全的原因是,有可能我还没有看到这个参数,另一种原因是,我可能还 不转载 2014-09-20 11:47:39 · 1636 阅读 · 0 评论