C中的多个信号是否会导致分段错误?

C中的多个信号是否会导致分段错误?,c,segmentation-fault,signals,C,Segmentation Fault,Signals,当运行我的代码时,它崩溃并显示分段错误 然而,当我在gdb中运行它时,它崩溃是由于SIGABRT错误而不是SIGSEGV 是否有其他信号也映射到终端上的一般分段故障错误?abort向呼叫过程发送SIGABRT信号,这就是SIGABRT或信号6的生成方式。此外,大多数断言实现在断言失败的情况下使用SIGABRT 中止通常由检测内部错误或某些严重破坏的约束的库函数调用。例如,如果其内部结构被堆溢出损坏,malloc将调用abort SIGSEGV或信号11,官方称为分段故障,意味着程序访问了未分配的

当运行我的代码时,它崩溃并显示分段错误

然而,当我在gdb中运行它时,它崩溃是由于SIGABRT错误而不是SIGSEGV


是否有其他信号也映射到终端上的一般分段故障错误?

abort向呼叫过程发送SIGABRT信号,这就是SIGABRT或信号6的生成方式。此外,大多数断言实现在断言失败的情况下使用SIGABRT

中止通常由检测内部错误或某些严重破坏的约束的库函数调用。例如,如果其内部结构被堆溢出损坏,malloc将调用abort


SIGSEGV或信号11,官方称为分段故障,意味着程序访问了未分配的内存位置。这通常是程序中的一个bug。因此,如果您正在编写自己的程序,这是最有可能的原因。否则,我看不到任何其他信号会在程序中产生分段错误。

调试环境可能与非调试环境略有不同,因此错误可能是未初始化的指针以不同的方式表现出来,导致不同的崩溃。但是你的问题的直接答案是SIGSEGV导致了分割错误。