这是一个mad-hack,但我试图在执行的特定点故意造成段错误,所以 valgrind 会给我一个堆栈跟踪。
如果有更好的方法可以做到这一点,请告诉我,但我仍然很想知道如何故意造成段错误,以及为什么我的尝试没有奏效。
这是我失败的尝试:
long* ptr = (long *)0xF0000000;
ptr = 10;
我认为 valgrind 至少应该将其视为无效写入,即使它不是分段违规。Valgrind 对此只字未提。
任何想法为什么?
编辑
答案被接受,但我仍然有一些建议,以获得更理智的方式来获取堆栈跟踪......