Tématické skupiny v rámci předmětu PB173 Tematicky zaměřený vývoj aplikací v jazyce C/C++

Téma 8: Ladění funkčnosti

Teoretická část

  • Ladění funkčnosti
    • gdb, valgrind, analýza coredumpů, strace, ltrace

Praktický úkol pro cvičení

  • Nástroje k ladění

Domácí úkol

  • Napište program, který bude mít:
    • Dva výpisy puts
    • A mezi nimi jednu int3 instrukci
  • Napište jednoduchý "debugger"
    • Za pomocí ptrace, fork a exec spusťte program shora
    • Počkejte si v rodiči na vykonání int3 instrukce
    • Změňte ji na nop (hexa 0x90, lze opakovat)
      • Ověřte pozici int3 pomocí ptrace a PEEKTEXT
      • Zapište nop pomocí ptrace a POKETEXT
    • Dekrementujte RIP, aby se instrukce nop opravdu vykonala
      • Můžete ověřit pomocí instrukce ret (0xc3)
    • Pokračujte s vykonáváním potomka