Zum Inhalt springen
L

Das Video kommt von YouTube: erst beim Abspielen verbindet sich die Seite mit YouTube (Google).

Einführung ins Debugging

My Coding Place23:36 30 Aufrufe veröffentlicht Auf YouTube

Das Wichtigste aus dem Video

Tipp auf eine Zeit – das Video springt genau dorthin.

Transkriptautomatisch erstellt · 133 Zeilen
Herunterladen
  1. [Musik] hallo zusammen und herzlich willkommen zu diesem neuen Video heute soll es mal um das Thema Debugging gehen eine kleine
  2. Einführung wozu ja warum mache ich die bugging oder wann die backe ich ein Programm [Musik]
  3. und ja was also was ist der Zweck davon wie mache ich das und das will ich heute kurz erklären dazu habe ich mir mal wieder meine
  4. id.i peitscham geschnappt und habe hier ein Programm ja geöffnet was ich mal ja vor einiger
  5. Zeit im Rahmen von einem Kurs den ich mir selber angeguckt habe auch geschrieben habe und ja hier ist das ist so eine ja eine ganz niedliche Sache
  6. eigentlich das ist eine Kaffeemaschine wo man eben einen Kaffee bestellen kann und ja da
  7. gibt man dann hier durch das ist ein reines Konsolenprogramm das heißt wenn wir das hier ausführen starten dann haben wir unten in der Konsole den
  8. Output und können natürlich dann auch unsere Eingaben machen die das Programm von uns erwartet ja kurz zur Begriffsklärung von die bugging was
  9. steckt da drin ne da drin steckt der Begriff Bug äh ja kann man übersetzen mit Käfer und [Musik]
  10. der Hintergrund ist einfach der dass vor ja vor vielen Jahren als die Computer noch nicht so klein und handlich waren wie sie es heute sind gab es ja da gab
  11. es riesengroße ja Computer und Rechner mit vielen Verbindungen und Röhren und ja alle alle möglichen riesengroß
  12. aufgebaut hat Technik und das Problem war natürlich dann wenn sagen wir mal man hat den Rechner in ja in einem Gebäude stehen oder einem Keller stehen
  13. und da kommen wir dann auch vielleicht mehr Insekten rein die vom Licht an gelockt werden die kriechen dann in diese Röhren oder in diese Verbindung
  14. rein und weil wir natürlich da Strom drauf haben kriegen die in elektrischen Schlag so und dann gibt es einen Kurzschluss und der
  15. Computer hört erstmal auf zu arbeiten und es gibt auch so einen so ein Bild von dem ersten back der gefunden also mutmaßlich gefunden wurde der wurde dann
  16. das Insekt was den Fehler im Computer verursacht wurde auf so ein ja Stück Papier geklebt quasi als Dokumentation aber seine dadurch hat sich dieser
  17. Begriff Bug eben ja etabliert was ist eigentlich ein Bug ist ein Problem im Programm und es ist
  18. nicht notwendigerweise so dass ein Bug immer direkt ein Fehler verursacht der offensichtlich ist Beispiel
  19. ich habe hier zu ich habe hier so eine ja Berechnung des Wechselgeldes zu meinem Kaffeeautomaten und ähm hier habe ich eine Konvertierung drin von String
  20. ja also von der Zahl nach String weil ich die natürlich hier auch drucken möchte ne und ähm wenn ich das zum Beispiel hier raus
  21. nehme dann ja kriege ich einen Fehler weil ja das hier nicht richtig mehr mit dem Text verbinden kann so das sind so das sind
  22. so offensichtliche Fehler oder wenn ich jetzt hier im Programm sagen wir mal ich schreibe eine Funktion nicht richtig das wird direkt
  23. unterstrichen ich kann es direkt identifizieren und natürlich auch beheben aber es gibt ja jetzt auch Sachen die
  24. sind nicht so direkt nicht so offensichtlich und die zeigen sich erst einem späteren Verlauf bedeutet ich habe ja hier mein
  25. Programm schon gestartet ich gebe jetzt mal ein [Musik] hier Latte und dann sage ich hier soll
  26. ich dann angeht wie viel Viertel Dollar ich in den Automaten eingeben will ich bin es mal etwas großzügiger sage ich mal acht
  27. diams sind glaube ich 10 Cent und hier sage ich jetzt mal Null das nimmt er auch und hau mir die Nickels so wenn ich jetzt hier nichts eingebe und Enter
  28. drücke dann laufe ich hier in einen Fehler rein und mein Programm stürzt ab so [Musik]
  29. das ist natürlich was klar man könnte jetzt hingehen und das ganze identifizieren und er sagt jetzt hier in Zeile 51
  30. [Musik] dass er hier irgendwas nicht konvertieren kann und naja ich habe einfach Enter gedrückt kann man schon
  31. mal überlegen woran liegt das jetzt also was ist hier der Fehler es sieht doch eigentlich alles gut aus hier in meiner Funktion nicht berechne das ganze und
  32. ähm ja je mehr ich hier an Münzen eingeben wird hier die Summe berechnet und am Ende habe ich dann alles an Kleingeld was ich so in ein Automaten
  33. reingegeben habe aber wo ist jetzt eigentlich das Problem so und um jetzt zu verstehen wie was in meinem Programm passiert und
  34. vor allem welchen Wert diese Variablen habe ich sehe hier zwar das Summe die berechnet sich
  35. und ja das sieht doch erstmal alles eigentlich ganz gut aus und ich weiß aber jetzt nicht wie im Verlauf des
  36. Programmes wie zum Beispiel zwischendurch diese Summe aussieht wenn ähm wenn ich da an dem Punkt ankomme so und dabei hilft mir der
  37. äh die Bagger das bedeutet einmal hilft mir der die Bagger natürlich [Musik] ja ich habe
  38. ich habe jetzt hier einen offensichtliches Problem was [Musik] ja was ich jetzt hier über einen Fehler
  39. zeigt und was das Programm zum Absturz bringt aber ich könnte jetzt zum Beispiel auch sein dass ich hingehe und sage
  40. ich bestell mal wieder eine Latte und dann sage ich jetzt mal machen wir mal zehn quarters und bei dem anderen sage ich jetzt überall 0 0
  41. so der hat immer noch nicht ihn auf money dann machen wir das Ganze machen wir das ganze nochmal machen wir wieder Latte und jetzt sage ich hier mal
  42. 20 waters das müsst ihr eigentlich ausrechnen so und hier auch wieder 0 0 so
  43. [Musik] jetzt warte hier den Kaffee und so weiter und wenn wir in die Daten reingucken hier
  44. von dem Programm dann sehen wir der kostet ja der kostet zwei Dollar 50 und wir haben jetzt hier 20 quarters
  45. reingeworfen das bedeutet [Musik] wir haben lass mich kurz rechnen
  46. müssten eigentlich zweimal 25 50 also fünf ja fünf Dollar müssten wir eingeworfen
  47. haben -2,50 eigentlich müssten wir 250 zurückkriegen wir haben ja aber nur ein Dollar 7 hmm was ist hier passiert so
  48. das ist doch so eine weitere Frage da ist das Programm arbeite zwar fehlerlos so so gesehen das heißt ich habe hier nichts rot es ist alles gut aber
  49. trotzdem arbeitet mein Programm auch nicht richtig so und das ist so der zweite Fall wo man mal die Backen sollte um sich das Ganze anzugucken so die
  50. Backen wie mache ich das ich habe ja hier schon ein paar mal auch das Programm gestartet so ich mache das hier mal mit hier oben drücke ich drauf
  51. dann stoppt das ganze und wie mache ich das jetzt habe ich hier diese schöne Käfer Symbol und hier kann ich den dibagger dann
  52. einschalten so jetzt will ich aber natürlich der soll ja nicht einfach so durchlaufen sondern ich habe die Möglichkeit hier
  53. beim Debugging bei bestimmten Stellen im Programm anzuhalten um mir die dann anzugucken heißt ich kann jetzt hier das ist bei
  54. den meisten idis so man kann hier neben der Zeilennummer dann hinklicken dann bekommt man hier so einen roten Punkt hingesetzt
  55. so dann kann ich hier mehrere rote Punkte setzen und das sind meine sogenannten Breakpoints das sind Haltepunkte im Programm und dort wird
  56. der Debuggern dann anhalten so dass ich mir das ganze dann auch angucken kann und ich kann aber dann
  57. entsprechend auch weiter navigieren sozusagen das zeige ich euch auch gleich wie das geht [Musik]
  58. gut da wir ja erstmal nur hier diese Breakpoints brauchen setze ich die ähm haben wir hier noch irgendwas was uns interessiert bisher nicht okay heißt
  59. wenn ich hier rein geklickt habe ich habe diese Breakpoints hier erstellt klicke ich dann auf die backen
  60. so jetzt gibt er uns hier noch so ja Warnungen aus und ja der ist
  61. irgendetwas hier in der anderen Datei das hat aber jetzt nichts direkt mit unserem Programm zu tun unser Programm ist jetzt hier ja gestartet und wir
  62. können jetzt hier ne der fragt uns hier wieder was wir möchten jetzt gebe ich mal hier Latte ein und drücke Enter das heißt während des Debugging Prozesses
  63. kann ich auch mein Programm nutzen und wenn ich jetzt aber Enter drücke dann läuft er nicht direkt
  64. da läuft er nicht direkt durch sondern erhält jetzt an meinem ersten Breakpoint an dem er vorbeikommt hält er jetzt hier an
  65. so und jetzt habe ich verschiedene Möglichkeiten wie es weitergeht jetzt kann ich hier unten habe ich hat sich
  66. der Bildschirm verändert das heißt ich sehe jetzt hier die Variablen die aktuell ja angezeigt werden und die habe ich
  67. coffee choice das heißt das was ich jetzt hier einen Kaffee ausgewählt habe ist Latte das ist schon mal richtig das heißt ich
  68. kann jetzt hier einmal kontrollieren welchen Wert die Variablen aktuell haben so und jetzt habe ich zwei Möglichkeiten ich kann jetzt mit
  69. F9 wenn ich F9 auf der Tastatur drücke so ich habe jetzt gerade noch mal nachgeguckt ich hatte es gerade ein bisschen gewundert warum der da an den
  70. Breakpoints komplett vorbei gesprungen ist aber jetzt habe ich noch mal neu gestartet und ich habe hier noch einen
  71. zusätzlichen Breakpoint reingesetzt ne man kann immer mehrere Breakpoints setzen man sollte das vielleicht auch ein bisschen so begrenzen weil zu viele
  72. das wird dann auch irgendwann übersichtlich unübersichtlich so mit F9 kann man kann man immer von Breakpoints zu
  73. Breakpoint springen und jetzt haben wir hier jetzt ist er hier aus irgendeinem Grund [Musik]
  74. ja aus dem Programm rausgesprungen weil wir hier nichts [Musik] ja weil er das hier nicht richtig
  75. eingelesen hat starte das noch mal und gebe jetzt hier auch wieder Latte ein und er springt wieder zu dem
  76. Breakpoint also man hat zwei Möglichkeiten jetzt man kann mit F9 von Breakpoint zu Breakpoint springen das heißt wenn ich
  77. hier F9 drücke dann springt er hier zum nächsten Breakpoint ich kann aber auch mit F8 wenn ich das jetzt drücke
  78. schrittweise durchgehen um dann das Programm mir anzugucken und ja hier springt er immer wieder raus
  79. so und ich habe mir das ganze mal angeschaut es scheint tatsächlich ein Problem mit der ID zu sein dass man hier also während des Diba gegens kein
  80. Benutzer Input eingelesen werden kann ja ich kann mich nicht erinnern dass dass ich das Problem so schon mal vorher hatte
  81. ein bisschen komisch und ich habe auch noch mal geupdatet aber naja das hat auch nichts gebracht was machen wir jetzt ich habe jetzt die
  82. Breakpoints mal so gesetzt dass die hier nicht auf dem Input sind und dann sollte das funktionieren denn wir wollen uns ja
  83. angucken was hier an unserer Stelle mit ja mit der Eingabe funktioniert ich starte noch mal wieder im Debug Modus
  84. und bestell mir wieder was und jetzt sagt er hier how many quarters gebe ich ein so und wir haben ja gesehen zum Beispiel
  85. wenn ich jetzt Null ein gebe hier bei den diams [Musik] ich kann mir jetzt hier ne der hält
  86. jetzt hier auch an was super ist und ich kann mir jetzt alles angucken was wir aktuell haben wir sehen auch jetzt unser Kaffee coffeekost der ist kostet zwei ja
  87. zwei Dollar 50 2 €, wie auch immer so in dem Fall sind doller und [Musik] momentan ist jetzt die Summe bei
  88. ja bei 8,4 und wir haben 40 quarters so jetzt kann ich [Musik] ja wenn ich jetzt hier weitergehe dann
  89. springt er leider wieder raus ja mit execode -1 das bedeutet dass er hier irgendein Problem mit dem Debugging hat so ähm ist aber jetzt erstmal kein
  90. Problem was wir uns auch angucken wollen ich starte noch mal wieder neu und jetzt stelle ich mal den Pfeil nachdem wir vorhin hatten ich gebe einen Latte und
  91. 40 waters und hau mir die dimes lasse ich jetzt mal Lea so
  92. und jetzt gucken wir uns das ganze mal an was er hier machen möchte ich habe ja jetzt für deins habe ich jetzt nichts eingegeben das heißt ich habe einfach
  93. Enter gedrückt und bisher sehe ich jetzt auch nichts wirklich was jetzt verdächtig aussieht es gibt aber hier einen Diba gegen Modus
  94. ne noch eine andere Funktion die ich ja in vielen idis noch nutzen kann zumindest hier auch bei Peitsche nämlich ich kann mir hier
  95. zum Beispiel das hier weil es gibt ja hinterher immer ein Problem nachdem wir vergessen haben oder die dimes nicht eingegeben haben hatten wir immer ein
  96. Problem und das passierte immer an dieser Stelle so ich kann jetzt etwas machen ich habe jetzt hier mal diesen Teil markiert im Code weil hier
  97. berechnet der ja und soll eigentlich die Summe erhöhen macht er aber dann in dem Fall nicht wenn ich hier nichts eingegeben habe sondern es gibt einen
  98. Fehler ich gehe Wache hier mal Rechtsklick und das heißt evaluation da geht dann hier so ein anderes zusätzliches Fenster auf und hier kann
  99. ich jetzt ein ja x-böschen einen Ausdruck kann ich jetzt ausführen ich mache das mal so und hier sagt er jetzt value error
  100. could not convert string to float so ähm [Musik] das heißt er versucht ja hier ein float
  101. und das dann zu berechnen aber das macht er das macht er scheinbar mit unserer leeren Zahl nicht wenn ich das noch mal
  102. stoppe und noch mal starte und jetzt gebe ich wieder eine fast alles genauso ein aber bei den dimes
  103. gebe ich jetzt eine Null ein jetzt hat er hier eine Null und wenn ich das jetzt hier auch noch mal wieder nein das nicht so nur diese Zeile hier
  104. so führe ich aus und hier ist er jetzt in der Lage wirklich zu konvertieren ich habe eine Zahl eingegebene Null diese Null wird ne kann als Zahl interpretiert
  105. werden nur wenn ich nichts eingebe hat er einfach einen leeren String und außerdem lernst Ring ähm kann er eben nichts machen was bedeutet
  106. das jetzt müssen wir uns überlegen wie können wir jetzt aufgrund dessen was wir hier im Debugging rausgefunden haben [Musik]
  107. ja das ganze entsprechend anpassen so jetzt haben wir hier natürlich auch
  108. ne die Summe wir sehen hier das ist sehr praktisch immer wir sehen hier auch am Rand den Wert den die Variablen jetzt aktuell haben wo wir durch das Programm
  109. durchlaufen und das hilft einem eben sehr [Musik] in dem Debugging Prozess das ganze auch
  110. nachvollziehen zu können und ja wie ich vorher schon gesagt hatte man könnte jetzt mit damit F9 zum nächsten Breakpoint
  111. springen oder eben mit F8 schrittweise durchgehen also das heißt wenn ich jetzt hier ich gebe hier noch mal ein 50
  112. und dann Null so jetzt ist er wieder hier drin und hier springt er immer wieder raus aber
  113. ich kann mir zumindest hier diese [Musik] ja diese Stelle genau angucken die bei
  114. der ich ein Problem habe und was natürlich auch wichtig ist wenn ich das Programm erstmal überhaupt ja so ein bisschen verstehen möchte das
  115. heißt die meisten Programme sollte man auch direkt verstehen können weil sie idealerweise gut geschrieben sind und übersichtlich sind
  116. [Musik] aber es kann natürlich sein dass man trotzdem vermutet dass im dass das Programm nicht das tut wofür es
  117. eigentlich gedacht ist und da hilft einem dass die buggen dann schon erheblich weiter so wenn ich noch mal zusammenfassen
  118. ja zusammenfasse was ist die Backen die Backen kann man nutzen um Fehler im Programm zu finden und zu identifizieren und natürlich auch
  119. die Stelle im Programm zu finden wo ne was quasi die Wut kostet also das Grundproblem was zu dem Fehler führt und es hilft mir auch im Programmablauf zu
  120. verstehen welche Variablen welche Werte an bestimmten Stellen dann gesetzt sind ich starte das Debuggen hier zumindest in peitscharm indem ich hier nicht auf
  121. diesen Pfeil auf dieses Dreieck diesen play button da klicke sondern auf den Käfer zum Debuggen und dann startet das Programm aber im
  122. Debug Modus so zum Debuggen um mir da ein bisschen mit zu helfen kann ich diese Breakpoints hier setzen und dort hält das Programm dann an wenn ich mir
  123. einzelne Programmteile angucken möchte oder einzelne ja Berechnungen oder Ausdrücke in meinem Programm mir einzeln angucken möchte kann ich das machen über
  124. über Rechtsklick und evaluate expression das hat er jetzt [Musik] gerade noch nicht zur Verfügung
  125. er ist jetzt hier [Musik] ja erst noch in dem ich habe doch hier gerade was eingegeben so
  126. wenn er jetzt hier dort angekommen ist kann ich auch die Variable müssen zur Verfügung stellen hier kann ich jetzt sagen
  127. und damit kann ich mir dann auch den Wert von meinen ja das Ergebnis von bestimmten Programmteilen angucken und dann noch natürlich zu überprüfen ob die
  128. richtig funktionieren und ja in dem Zuge würde mir zum Beispiel hier auch auffallen dass ein
  129. quarter ja 25 Cent sein müssen gut ja das war es zu dieser kleinen Einführung ist die bugging und
  130. ja schreibt mir gerne in die Kommentare die backt ihr oder was habt ihr schon mal die backt an Programm
  131. [Musik] und ja was war so Frage auch noch mal so am Rande was war so der hartnäckigste Fehler den ihr jemals in dem Programm
  132. hattet was euch richtig lange ja richtig viel Zeit gekostet hat um das herauszufinden okay ähm ja vielen Dank fürs zuschauen
  133. und ja macht's gut tschüss bis zum nächsten Video [Musik]

Zum Nachlesen