Debugger

Winpdb debugt zichzelf

Een debugger is een computerprogramma dat gebruikt wordt om andere computerprogramma's te debuggen, oftewel de oorzaak van een bug te achterhalen.

Als het te verbeteren programma op een onverwachte manier wordt afgebroken vanwege een fout, laat de debugger, als het een source-level of symbolische debugger is, de positie in de broncode zien waar de fout optreedt.

Over het algemeen bieden debuggers meer geavanceerde functies zoals:

  • stap voor stap een programma uitvoeren
  • een breekpunt, of breakpoint, zetten zodat de uitvoering van een programma op dat punt wordt onderbroken om daarna weer door te kunnen gaan. Hierdoor kunnen de waarden van variabelen op dat punt worden bekeken.
  • een trace zetten bij het zogenaamde watchen van variabelen
  • de call stack bekijken
  • het tijdens het debuggen opvragen van de waarde van een variabele
  • het tijdens het debuggen wijzigen van de waarde van een variabele
  • het tijdens het debuggen wijzigen van de code
  • een debugger voor een assembleertaal heeft ook vaak de mogelijkheid om de inhoud van processorregisters of geheugenplaatsen op te vragen of te wijzigen

Een debugger maakt het opsporen van fouten in een programma gemakkelijker en de beschikbaarheid van een goede debugger voor een bepaalde programmeertaal en platform kan een belangrijk argument zijn om deze taal te gebruiken. Het gebruiken van een debugger heeft wel gevolgen voor de manier waarop het programma dat gedebugd wordt zich gedraagt. Met name de timing van de uitvoering van bepaalde stappen kan afwijken van de normale uitvoering. Dit maakt het met name lastig om probleemoorzaken te vinden in complexe programma's met meer threads.

Een alternatief voor het gebruiken van een debugger is het plaatsen van logginginstructies in een programma, zodat tijdens de uitvoering van een programma inzichtelijk wordt wat de waarden van bepaalde variabelen zijn. Deze methode is omslachtig en heeft als belangrijk nadeel dat voor elke te volgen variabele een aparte loginstructie moet worden opgenomen, tenzij de gebruikte programmeertaal daar speciale voorzieningen voor heeft, zoals dat bijvoorbeeld voor COBOL geldt.

Lijst van debuggers

Een selectie van debuggers:

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.