Github开源生信云平台 DEMO
你贴的 Makefile 片段里,build_db 目标的编译命令已经包含了 -g(生成调试信息)和 -O0(关闭优化),这是调试的基础。下面我给你详细讲怎么 debug 这个 build_db 程序:
Makefile
build_db
-g
-O0
你当前的编译命令:
g++ -Wall -std=c++11 -g -O0 -fPIC -DLINEAR_PROBING -o build_db $^
-Wall
✅ 这已经是调试友好的编译方式。
make clean make build_db
gdb ./build_db
build_db.cpp
main
break main run
next
step
print var
backtrace
continue
list
quit
可以先开启 core dump:
ulimit -c unlimited ./build_db <args>
如果程序崩溃,会生成 core 文件,然后:
core
gdb ./build_db core
然后用 bt 查看调用栈。
bt