GNU/Linux >> Linux Esercitazione >  >> Linux

Strano errore di segmentazione SIGSEGV nel metodo std::string::assign() da libstdc++.so.6

Immagino che potrebbe esserci qualche problema all'interno di FormatTimeStamp funzione, ma senza codice sorgente è difficile dire qualcosa. Prova a controllare il tuo programma sotto Valgrind. Di solito questo aiuta a correggere questo tipo di bug.


Ci sono due probabili possibilità:

  • un po' di codice prima della riga 798 ha corrotto il tmpTimeStamp locale oggetto
  • il valore restituito da FormatTimeStamp() era in qualche modo brutto.

Il _GLIBCXX_FULLY_DYNAMIC_STRING è molto probabilmente una falsa pista e non ha nulla a che fare con il problema.

Se installi debuginfo pacchetto per libstdc++ (Non so come si chiama su CentOS), sarai in grado di "vedere" quel codice e potresti essere in grado di dire se il lato sinistro (LHS) o il RHS dell'operatore di assegnazione ha causato il problema.

Se ciò non è possibile, dovrai eseguire il debug a livello di assembly. Entrando nel frame #2 e facendo x/4x $ebp dovrebbe darti il ​​precedente ebp , indirizzo del chiamante (0x081402fc ), LHS (dovrebbe corrispondere a &tmpTimeStamp nel frame #3 ), e RHS. Vai da lì e buona fortuna!


Linux
  1. Scripting Bash:passaggio dall'operatore backtick a $ parentesi

  2. Ridurre il consumo di larghezza di banda scaricando gli aggiornamenti Yum?

  3. Escape caratteri sconosciuti dalla stringa per -exec?

  4. Manipola {} Restituisce la stringa da Find -exec?

  5. Linux:c'è una lettura o una ricezione dal socket con timeout?

Linux:possiamo ottenere informazioni sul compilatore da un binario elfo?

Modo per appiattire un'immagine .pdf dalla riga di comando?

C'è un modo per convertire da UTF8 a ISO-8859-1?

Il modo più semplice per individuare un errore di segmentazione

Errore di segmentazione quando Qt QApplication è stata creata con new

C++ Ottieni una stringa dagli Appunti su Linux