[问题] GCC -fstack-protector-all 印出位置?

楼主: joe4guest (hello)   2015-05-21 21:06:11
开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
Linux GCC
问题(Question):
最近想用 gcc -fstack-protector-all 的功能,来侦测 stack
被覆蓋。程式码如文末所附,gcc -fstack-protector-all -g a.c
所编出的档案,可以成功侦测到覆蓋,但没有显示出现问题的
function或位置。
*** stack smashing detected ***: <unknown> terminated
如果用 gdb 来加载 coredump 档,是可以回推到其发生问题的
地方,但是觉得这样有些不方便。
理论上印出位址应该是可行才对,不知是否有前辈知道是否办
的到?
程式码(Code):(请善用置底文网页, 记得排版)
#include <stdio.h>
void hello()
{
int i;
char buf[128];
for(i=0;i<1000;i++)
buf[i] = 0;
}
int main()
{
hello();
}
作者: Feis (永远睡不着 @@)   2015-05-21 21:50:00
用 -fsanitize=address ?
作者: Bencrie   2015-05-21 22:45:00
直接跑 valgrind 如何?它应该会直接跟你说存取越界试了一下 valgrind 好像对这种问题无反应 orz用一楼的开关吧,资讯超丰富(还彩色的
楼主: joe4guest (hello)   2015-05-21 23:34:00
抱歉忘了提,我是arm的gcc,这功能太新还没有,不过也谢谢 Feis 的建议,以前都不知道有这功能.

Links booklink

Contact Us: admin [ a t ] ucptt.com