编译器和 gdb

发布时间 2023-07-14 21:51:05作者: OIer_SIXIANG
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