背景: 在工作中调试sqlite3相关代码的时候,调用printf()打印sqlite3_exec()的执行日志:因为sqlite3_exec()保存日志的参数传入时为NULL,且没有执行错误,所以再传入printf()时仍然为NULL:如果判断日志不为空时才打印,则无段错误. 分析: Core was generated by `./hello.cgi'. Program terminated with signal SIGSEGV, Segmentation fault. # strlen…
在Linux中调试段错误(core dumped) 在作比赛的时候经常遇到段错误, 但是一般都采用的是printf打印信息这种笨方法,而且定位bug比较慢,今天尝试利用gdb工具调试段错误. 段错误(core dumped)一般都是数组索引位置不对,或者是数组越界等问题造成,在Linux环境下编程应该很容易就会遇到. GDB调试的具体流程 查阅资料发现几个讲Core dump的具体方法: How to get a core dump for a segfault on Linux. How to…