1. Bug

Ang mga programmer ay may sariling slang, kahit na itinuturing ng marami na ito ay teknikal na jargon. Sa anumang kaso, hindi mo maiiwasang makilala ito. Kailangan mong sumisid sa detalye. Kaya sumabak tayo.

Isa sa mga unang salita na makikilala mo ay " bug ", ibig sabihin, isang insekto . Sa konteksto ng software development, ang salitang ito ay nangangahulugang isang error sa isang program, isang halimbawa ng program na gumagawa ng mali o hindi masyadong tama. O sadyang gumagawa ng kakaiba.

Ngunit kung ang isang programmer ay nag-iisip na ang programa, sa kabila ng kakaibang pag-uugali nito, ay ginagawa nang eksakto kung ano ang nararapat, kung gayon siya ay karaniwang nagdedeklara ng isang bagay tulad ng "ito ay hindi isang bug, ito ay isang tampok". Na nagbunga ng isang grupo ng mga meme sa internet.

Sa pangkalahatan, maaaring mayroong anumang bilang ng mga dahilan para sa isang depekto ng software: anuman mula sa mga error sa logic ng program, typo, at maling arkitektura ng programa, hanggang sa mga problema sa compiler. Sa anumang kaso, kailangang ayusin ng mga programmer ang parehong tunay na mga bug at anumang iba pang "pagkukulang" sa kanilang mga programa.

Ang kasaysayan ng salitang "bug"

Ang pinakakaraniwang bersyon ng pinagmulan ng salitang "bug" ay isang alamat.

Noong Setyembre 1945, sinubukan ng mga siyentipiko sa Harvard University ang isa sa mga unang computer, ang Mark II. Ang computer ay hindi gumagana nang maayos, at sa proseso ng pagsuri sa lahat ng mga board, nakita nila ang isang gamu-gamo na natigil sa pagitan ng mga contact ng isang electromechanical relay.

Ang nakuhang insekto ay na-tape sa isang teknikal na log, na sinamahan ng inskripsiyong ito: "Unang aktwal na kaso ng bug na natagpuan."

Ang nakakatawang kuwentong ito ay pinaniniwalaan na simula ng paggamit ng salitang " bug " upang nangangahulugang isang error, at ang salitang " debug " ay naging kasingkahulugan ng pag-aalis ng mga bug.


2. Pag-debug sa programa

Upang ayusin ang mga bug sa kanilang mga program, gumagamit ang mga programmer ng mga espesyal na program na tinatawag na mga debugger . Alam pa nga ng ilan sa mga program na ito kung paano i-debug ang machine code.

Gumagamit ang mga Java programmer ng mga IDE para sa pag-debug ng kanilang mga programa. Gaya ng IntelliJ IDEA, Eclipse, at NetBeans. Ang IntelliJ IDEA ay sa ngayon ang pinakamakapangyarihang IDE, kaya tatalakayin natin ang proseso ng pag-debug gamit ito bilang isang halimbawa.

Maaaring patakbuhin ng IntelliJ IDEA ang iyong programa sa dalawang mode:

Mga mode ng pagpapatupad Icon ng toolbar Mga hotkey
Normal na pagpapatupad Shift+F10
Magsimula sa debug mode Shift+F9

Pamilyar ka na sa normal na pagpapatupad: magsisimula, tatakbo, at lalabas ang programa. Ngunit ang debug mode ay may maraming sorpresa na nakalaan para sa iyo.

Debug mode

Hinahayaan ka ng debug mode na maglakad nang hakbang-hakbang sa iyong buong programa. O mas tumpak, hinahayaan ka nitong ilipat ang bawat linya . Higit pa rito, maaari mong obserbahan ang mga halaga ng mga variable sa bawat hakbang ng programa (pagkatapos isagawa ang bawat linya ng code). At maaari mo ring baguhin ang kanilang mga halaga!

Upang makakuha ng kahit kaunting kaalaman sa pag-debug ng isang programa, kailangan mong matutunan ang tatlong bagay:

  • Mga breakpoint
  • Hakbang-hakbang na pagpapatupad
  • Sinusuri ang halaga ng mga variable

3. Breakpoints

Hinahayaan ka ng IDE na maglagay ng mga espesyal na marker na tinatawag na mga breakpoint sa iyong code. Sa bawat oras na ang isang program na tumatakbo sa debug mode ay umabot sa isang linya na may markang breakpoint , ipo-pause ang execution.

Para maglagay ng breakpoint sa isang partikular na linya, kailangan mo lang mag-click sa kaliwa ng linya sa IDEA. Halimbawa:

Mga Breakpoint IntelliJ IDEA

Ang linya ay mamarkahan ng isang breakpoint, at ang IntelliJ IDEA ay iha-highlight ito sa pula:

minarkahan ng breakpoint

Ang pangalawang pag-click ng mouse sa pane sa kaliwa ng code ay mag-aalis ng breakpoint .

Ang isang breakpoint ay maaari ding ilagay sa kasalukuyang linya sa pamamagitan lamang ng paggamit ng kumbinasyon ng hotkey Ctrl+ F8. Ang pagpindot muli sa Ctrl+ F8sa isang linya na mayroon nang breakpoint ay magtatanggal nito.


4. Simulan ang program sa debug mode

Kung mayroon kang kahit isang breakpoint sa iyong program, maaari mong patakbuhin ang program sa debug mode sa pamamagitan ng pagpindot sa Shift+ F9o pag-click sa "icon ng bug".

Pagkatapos magsimula sa debug mode, ang program ay tumatakbo gaya ng dati. Ngunit sa sandaling maabot nito ang isang linya ng code na may markang breakpoint , ito ay magpo-pause. Halimbawa:

Simulan ang program sa debug mode

Sa itaas na kalahati ng screenshot, makikita mo ang program code na may dalawang breakpoint. Ang pagpapatupad ng programa ay tumigil sa linya 5, na minarkahan ng isang asul na linya. Ang Linya 5 ay hindi pa naisakatuparan: wala pang nailalabas sa console.

Sa ibabang bahagi ng screen, makikita mo ang mga debug pane: ang Debugger pane, ang Console  pane, at isang set ng mga button para sa debug mode.

Maaari mong i-unpause ang iyong program (ibig sabihin, ipagpatuloy ang pagpapatupad) sa pamamagitan ng pagpindot sa button na Ipagpatuloy ang Programa sa ibabang kaliwang pane (o pindutin ang F9).

Simulan ang program sa debug mode 3

Kung pinindot mo ang button na ito (o F9), ang program ay patuloy na tatakbo hanggang sa makatagpo ito ng susunod na breakpoint o matapos. Narito ang nakikita natin pagkatapos i-click ang pindutan:

Simulan ang program sa debug mode 4

Huminto ang programa sa pangalawang breakpoint, at ang mga salita Helloat andmakikita sa console. Ito ay isang senyales na nagsagawa lamang kami ng dalawa sa tatlong linya na nagpapakita ng output sa screen.


5. Hakbang-hakbang na pagpapatupad

Kung ang iyong program ay tumatakbo sa debug mode, maaari mo ring hakbangin ito: isang hakbang ay isang linya . Mayroong dalawang hotkey para sa sunud-sunod na pagpapatupad: F7at F8: ang bawat isa ay nagiging sanhi ng kasalukuyang linya ng code upang maisakatuparan. Ngunit una, kailangan mo pa ring ihinto ang iyong programa sa isang breakpoint .

Kung gusto mong i-execute ang iyong program line by line, kailangan mong ilagay ang breakpoint sa simula ng main()method at patakbuhin ito sa debug mode.

Kapag huminto ang programa, maaari mong simulan ang pagpapatupad nito linya sa linya. Ang isang pagpindot sa F8key ay nagsasagawa ng isang linya.

Ito ang hitsura ng aming programa pagkatapos itong huminto at pinindot namin ang F8key nang isang beses:

Simulan ang program sa debug mode.  Hakbang-hakbang na pagpapatupad

Ang unang linya ng pangunahing pamamaraan ay naisakatuparan na, at ang kasalukuyang linya ay ang pangalawang linya. Maaari mo ring makita sa ibaba ng screenshot na ang salita Helloay ipinapakita na sa screen.


6. Hakbang-hakbang na pagpapatupad sa hakbang sa mga pamamaraan

Kung naisulat mo ang iyong sariling mga pamamaraan sa programa at gusto mong makapasok ang execution sa iyong mga pamamaraan sa debug mode, ibig sabihin, gusto mong "pumunta sa pamamaraan", pagkatapos ay kailangan mong pindutin sa halip F7na F8.

Sabihin nating dumaan ka sa programa at ngayon ay huminto sa linya 4. Kung pinindot mo ang F8, isasagawa lang ng IDEA ang ikaapat na linya at magpapatuloy sa ikalima.

Hakbang-hakbang na pagpapatupad sa hakbang sa mga pamamaraan 2

Ngunit kung pinindot mo ang F7, papasok ang IDEA sa main2()pamamaraan:

Hakbang-hakbang na pagpapatupad sa hakbang sa mga pamamaraan 3

Ito ay napaka-simple. Kung wala kang pakialam kung ano ang mangyayari sa loob ng isang paraan o kung paano, pagkatapos ay pindutin mo ang F8. Kung ito ay mahalaga, pagkatapos ay pindutin F7at hakbang sa lahat ng code nito.