来自libstdc ++的std :: string :: assign()方法中的奇怪的SIGSEGV分段错误.so.6

时间:2011-08-12 09:26:24

标签: linux string segmentation-fault sigsegv assign

2 个答案:

答案 0 :(得分:2)

我想FormatTimeStamp函数内部可能存在一些问题,但如果没有源代码,则很难说出来。尝试在Valgrind下检查你的程序。通常这有助于修复此类错误。

答案 1 :(得分:2)

有两种可能的可能性:

  • 第798行之前的某些代码损坏了本地tmpTimeStamp 对象
  • 来自FormatTimeStamp()的返回值有些不好。

_GLIBCXX_FULLY_DYNAMIC_STRING很可能是红鲱鱼,与问题无关。

如果您为debuginfo安装libstdc++包(我不知道它在CentOS上的名称),您将能够“看到”该代码,并且可能能够分辨出来是否左侧(LHS)或赋值运算符的RHS是否导致了问题。

如果不可能,则必须在程序集级别对其进行调试。进入框架#2并执行x/4x $ebp应该会为您提供之前的ebp,来电地址(0x081402fc),LHS(应与&tmpTimeStamp框架#3匹配和)和RHS。从那里开始,祝你好运!