GNU/Linux >> Linux の 問題 >  >> Linux

libstdc++.so.6 の std::string::assign() メソッドでの奇妙な SIGSEGV セグメンテーション違反

FormatTimeStamp 内に問題がある可能性があると思います 機能ですが、ソース コードがなければ何とも言えません。 Valgrind でプログラムをチェックしてみてください。通常、これはこの種のバグを修正するのに役立ちます。


考えられる可能性は 2 つあります:

  • 798 行目より前のコードで、ローカルの tmpTimeStamp が壊れています。 オブジェクト
  • FormatTimeStamp() からの戻り値 なんとなく悪かった

_GLIBCXX_FULLY_DYNAMIC_STRING これはおかしなことである可能性が高く、問題とは何の関係もありません。

debuginfo をインストールすると libstdc++ のパッケージ (CentOSで何と呼ばれているのかわかりません)、そのコードを「見る」ことができ、代入演算子の左側(LHS)またはRHSのどちらが原因であるかを判断できる場合があります問題。

それが不可能な場合は、アセンブリ レベルでこれをデバッグする必要があります。フレーム #2 に入る x/4x $ebp を実行しています 以前の ebp を返す必要があります 、発信者アドレス (0x081402fc )、LHS (&tmpTimeStamp に一致する必要があります) フレーム内 #3 )、および RHS。頑張ってください!


Linux
  1. Apache2 configtestが失敗しました:セグメンテーション違反(コアダンプ)[解決済み]

  2. 「難解な」(奇妙な)が、標準に準拠したCコンパイラまたはランタイムはありますか?

  3. Yumアップデートのダウンロードによる帯域幅消費を削減しますか?

  1. コマンドラインから.pdf画像をフラット化する方法は?

  2. UTF8 から ISO-8859-1 に変換する方法はありますか?

  3. セグメンテーション違反を見つける最も簡単な方法

  1. Qt QApplication が new で作成されたときのセグメンテーション違反

  2. C++ Linux でクリップボードから文字列を取得する

  3. Linux で DD のパーセンテージを取得する方法はありますか?