检查未定义行为
在 g++
中添加 -fsantize=address,leak,undefined -g
参数可以检查运行时错误,如各种越界、栈溢出、除 \(0\) 错误,有符号整型溢出;
添加 -O2 -Wall
可以在编译时最大程度的检查代码漏洞;
添加这两个参数是调试时首先应该做的。
如果发生栈溢出,注意是否是栈空间限制太小引起的。在 bash
内执行 ulimit -s 524288
可以设置调用栈限制为 512MB
。
在 g++
中添加 -fsantize=address,leak,undefined -g
参数可以检查运行时错误,如各种越界、栈溢出、除 \(0\) 错误,有符号整型溢出;
添加 -O2 -Wall
可以在编译时最大程度的检查代码漏洞;
添加这两个参数是调试时首先应该做的。
如果发生栈溢出,注意是否是栈空间限制太小引起的。在 bash
内执行 ulimit -s 524288
可以设置调用栈限制为 512MB
。