programming cpp gdb debug

Breakpoint nel codice sorgente con gdb

In fase di debugging, spesso mi capita di dover interrompere il programma in momenti particolari, non descrivibili con semplici breakpoint. Ad esempio, se devo analizzare lo stato del programma solo se si verifica un caso particolare.

Il modo per farlo solo con comandi gdb esiste, ma di solito risulta abbastanza complicato. Invece c'è un trucco che funziona molti bene, cioè inserire l'istruzione di breakpoint direttamente nel codice sorgente.

In ambiente x86 è una cosa del genere:

asm volatile ("int3;");

Questo approccio ha alcuni problemi:

  • non sono dei veri breakpoint gdb, quindi non si possono disabilitare o contare quante volte vengono incontrati
  • se il programma viene eseguito senza gdb, allora quando incontra quell'istruzione il programma crasha

Ma si tratta comunque di un trucco veloce ed efficace. Possiamo creare una macro e chiamarla quando ci pare.

Ti è piaciuto l'articolo? Condividilo! Commentalo!

comments powered by Disqus