gpt4 book ai didi

c - C 中的多个信号会导致段错误吗?

转载 作者:行者123 更新时间:2023-11-30 17:21:09 25 4
gpt4 key购买 nike

运行我的代码时,它崩溃并显示“段错误”。

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

是否还有其他信号也“映射”到终端上的一般段错误?

最佳答案

abort() 向调用进程发送 SIGABRT 信号,这就是 SIGABRT 或信号 6 的生成方式。此外,大多数“断言”实现都会在断言失败的情况下使用 SIGABRT。

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

SIGSEGV 或信号 11,正式名称为“段错误”,意味着程序访问了未分配的内存位置。这通常是程序中的错误。因此,如果您正在编写自己的程序,这就是最有可能的原因。否则我没有看到任何其他信号会在程序中创建段错误。

关于c - C 中的多个信号会导致段错误吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28377226/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com