-fstack-protector和-fstack-protector-all是保护基于堆的内存分配还是仅保护基于堆栈的内存分配?
前2和-fmudflap有什么区别?
关于哪个更适合调试的任何建议?
(我不确定gcc man page是否足够清楚,或者我根本不理解……)
char foobar[10]; // stack-based
char *foobar = malloc(10); // heap-based
最佳答案
Mudflap用于指针检查.见this pdf.
您需要安装相关的库才能使用这些gcc功能.
我更喜欢valgrind来检测这样的错误,因为不需要重新编译/重新链接并且更容易使用,但这些也很有价值.