Ubuntu学习

abort();也表示中断程序,使文件转入内核,利用hexdum -bc core | less查看转存,移除rm core


利用shell脚本cg直接运行程序并包括所有的警告,不用先编译,再运行。

cg文件:

  g++ -Wall  -W $1 $2 $3 $4 $5 $6 $7 $8 $ 9

  ./a.out

执行:chmod a+x cg

例如运行该目录下的error.cpp程序只需要

执行:./cg error.cpp


可移植性

g++ -Wtraditional atext,cpp      //可以对非ansi结构的发出警告

g++ -ansi atext.cpp                  //只能通过ansi要求的结构,一般不采用


g++ -o welcome welcome.cpp           //改变编译后生成的a.out可执行文件名为welcome.out

g++ -v                                          //中间编译,显示预处理,编译,汇编期间发生所有文件引用

g++ -v -fsyntax-only                    //单独浏览编译器的警告和错误,没有产生输出

g++ -c                                           //分段编译,没有main()函数的程序生成目标文件.o

g++ -I /include -I/include2 atest.cpp   //在include目录中搜索程序的用引号括起来的头文件,-idirafter搜索当前目录后搜索指定的目录 

g++ -I- -I/myinclude atest.cpp              //同时搜索三角符和引号的头文件

g++ -nostdinc                                          //不让编译器到标准地址寻找标准头

g++ -nostdinc -I ./ -I- -I/myinclude atest.cpp   

          -nostdinc  表示不在标准地址找,-I ./ 表示在当前目录下找带引号的头文件,-I- -I/myinclude atest.cpp 表示在指定的目录myclude下找带引号和三角号的头文件


优化

g++ -O                                  //O后面带数值1234,代表不同级别的优化

调试

g++ -g welcome.cpp         // 编译调试,g后面带数值3表示级别的调试编译


g++ -g -o welcome welcome.cpp //将welcome.cpp 编译为可执行文件命名为welcome

gdb welcome                                   //将程序welcome装入gdb调试器

gdb -quiet(-silent) welcome        //清除gdb的开场白直接进入调试

(gdb)help                                  //显示gdb调试指令

(gdb)help data //显示data指令的详细指令

(gdb)run                                //执行程序

(gdb)list                                 //列出程序的代码即行数

(gdb)break  2                       //在第二行设置断点

(gdb)next                              //运行中停止后一步一的运行

(gdb)continue                       //运行断点后的所有程序

(gdb)quit                                 //退出调试,或Ctrl+d



(gdb)print list                       //list为变量,用print检查变量list的值

(gdb)display list                 //可以在每次暂停的时候自动显示变量的值

(gdb)set rate=0.75           //设置变量rate的值

(gdb)set output - radix 16    //设置输出的进制

(gdb)ptype tax                  //查看变量tax的类型



xxgdb welcome      //进入图形界面编译调试


vi commands

(break 2

run)                         //指定文件commands中多个调试指令

gdb --command=commands welcome    //一起运行

 

gdb --directory=/home/you/source yourprograme     //当源代码和可执行代码不在同一个目录时,可以指定源代码编译

gdb --tty=/dev/ttyp0 welcome                         //在指定的另一个终端上显示输出,利用指令tty可以显示当前终端号

gdb -q --core=core                          //将内核文件装入调试器进行分析


全局变量为0

只有char、short、int和long可以指定带符号或无符号。这些类型缺省(无指定情况下)为带符号。浮点对象总是带符号的


函数atof()是ASNII to float 

函数atol()是ASNII to long


#define NDEBUG

#include <assert.h>             //表示定义符号NDEBUG使assert.h将assert()声明为什么也不干的宏

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值