我有Win7 Pro(32位)和CodeBlocks IDE。 我想知道有没有办法在C中检测带有分段错误的行。我的代码是PRIME1.c 我发现Stack Overflow上的某个地方可以在终端的linux上实现,但我想在Windows中这样做。 谁能告诉我怎么做? 非常感谢!
换句话说,我想知道如何在Windows 7中使用cmd中的调试器,以及它如何告诉我哪一行有问题。
我刚发现这个链接 Determine the line of C code that causes a segmentation fault? 但是,正如您所看到的,这适用于Linux。 我想知道如何在Windows cmd中执行此操作?
答案 0 :(得分:0)
你可以捕获seg错误。但是,遗憾的是,无论如何都无法处理此事件或获取有关该错误的任何信息(以标准方式,有针对编译器的特定解决方法)。因此,也许可以将printf放在每一行__LINE__宏中,然后等待它失败。
#include <signal.h>
#include <conio.h>
#include <stdio.h>
void listener(int sig) {
printf("listener: access violation");
_getch();
}
void main() {
char a = 10;
char *p = &a;
signal(SIGSEGV, listener);
do {
printf("%d", *p++);
} while (1);
_getch();
}