在Windows上,VC编译器将在函数调用结束时生成带有_chkesp隐式函数的调试版本代码,并在堆栈上分配一些0xCCCCCCCC缓冲区以检查并防止堆栈损坏。
gcc / clang是否具有通过某些命令行选项提供额外堆栈检查/预防的能力?额外的堆栈空间或堆栈检查?
感谢!
答案 0 :(得分:1)
GCC支持-fstack-protector
和-fstack-protector-all
options。请注意,两者都面向安全加固而不是调试。相反,考虑使用
GCC / CLANG address sanitizer(ASAN)选项(minimal example)或Valgrind(minimal example)。