[問題] 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