SIGSEGV错误(gdb)

时间:2013-02-22 01:29:52

标签: gdb line sigsegv

我目前正在运行一个c ++文件,该文件在运行时会编译但崩溃。

我打开调试器并在运行程序时获得以下行:

  

编程接收信号SIGSEGV,分段故障。   来自/lib/libc.so.1的strcat()中的0xff0ab210

我不知道那条线是什么意思。

你能解释一下吗?

编辑:

我已经得到回复告诉我如何在程序中使用strcat。 我用它的所有内容都与atoi方法相同,以便将字符串转换为十六进制数。

EDIT2: 我在使用strcat库的代码上看到了一些东西,它是.append函数。这会是问题的原因吗?

2 个答案:

答案 0 :(得分:0)

这是一个分段错误。通常,这意味着您正在尝试访问尚未分配的内存。因为你正在使用strcat我猜测目标字符串尚未分配或者没有分配足够的内存。

答案 1 :(得分:0)

如果seg故障来自strcat,则可能发生以下情况之一:

  1. 您的源是非空终止的C字符串(格式错误的字符串)。
  2. 目标字符串中分配的内存量不足以存储源和目标+ 1(末尾为空)。
  3. 检查两个案例是否都被覆盖,希望你不会再看到SIGSEGV。