Ano ang Pag-debug: Mga Uri at Diskarte sa Mga naka-embed na Sistema

Subukan Ang Aming Instrumento Para Sa Pagtanggal Ng Mga Problema





Ang bawat programmer sa kanilang buhay ay may pagkakataon na maranasan ang mga bug o error sa kanilang code habang nagkakaroon ng operating system o aplikasyon o anumang iba pang programa. Sa mga ganitong kaso, gumagamit ang mga developer ng pag-debug at mga tool upang makahanap ng mga bug sa isang code at gawing libre ang code o programa. Mayroong isang pagkakataon upang makilala ang bug at hanapin kung saan ito naganap sa buong programa. Sa teknolohiya ng software, Ito ay isang mahalagang proseso upang makahanap ng mga bug sa anumang bagong programa o anumang proseso ng aplikasyon. Ang mga error tulad ng nakamamatay at lohikal na mga error ay maaaring matagpuan at matanggal upang makuha ang nais na output. Halimbawa, ang GDB, Visual studio, at LLDB ay ang karaniwang mga debugger para sa iba't ibang mga operating system.

Ano ang Debugging?

Kahulugan: Ang mahalagang pamamaraan upang hanapin at alisin ang bilang ng mga pagkakamali o mga bug o depekto sa isang programa ay tinatawag na Debugging. Ito ay isang multistep na proseso sa pag-unlad ng software. Nagsasangkot ito ng pagkilala sa bug, paghahanap ng mapagkukunan ng bug at pagwawasto ng problema upang gawing walang error ang programa. Sa pag-unlad ng software, mahahanap ng developer ang error sa code sa programa at alisin ito gamit ang prosesong ito. Samakatuwid, ito ay gumaganap ng isang mahalagang papel sa buong lifecycle ng pag-unlad ng software.




Pagde-debug

Pagde-debug

Mga uri ng Pag-debug

Nakasalalay sa uri ng error sa code, mayroong iba't ibang mga uri ng plugin ng mga tool. Kinakailangan na maunawaan kung ano ang nangyayari at kung anong uri ng tool ang ginagamit para sa pag-debug. Mayroong dalawang uri ng pag-debug upang malutas ang anumang pangkalahatang isyu ng plugin ng toolet at nagbibigay ng impormasyong panteknikal.



  • Sa PHP, maaaring ma-debug ang PHP code upang maglakip ng isang debugger client gamit ang alinman sa mga tool na ito. Ang mga kagamitan sa pag-debug tulad ng Xdebug at Zendbugger ay ginagamit upang gumana sa PHPstorm. Ginagamit ang Kint bilang isang tool ng pag-debug para sa pag-debug ng PHP.

Halimbawa, upang paganahin ang pag-debug ng PHP sa WordPress, i-edit ang file wp-config.php at idagdag ang kinakailangang code. Ang isang error file (error_log.txt) ay ginawa sa salitang root dictionary na maaaring malikha at maisulat gamit ang isang sever web. Iba pa gumamit ng isang FTP na programa upang lumikha at magsulat. Samakatuwid ang lahat ng mga error na naganap sa front-end at back-end ay maaaring naka-log in sa file ng error.

  • Ang pag-debug ng Javascript ay gumagamit ng tool ng debugger ng browser at javascript console. Ang anumang error sa javascript ay maaaring maganap at ihihinto ang pagpapatupad at paggana ng mga pagpapatakbo sa WordPress. Kapag ang javascript console ay bukas, ang lahat ng mga mensahe ng error ay malilinis. Gayunpaman, lumitaw ang ilang mga babala sa console ay maaaring lumikha ng isang mensahe ng error na dapat ayusin.

Mayroong iba't ibang mga uri ng pag-debug para sa iba't ibang mga operating system. Sila ay,

  • Para sa mga operating system ng Linux at Unix, ang GDB ay ginagamit bilang isang karaniwang debugger.
  • Para sa Windows OS, ang visual studio ay isang malakas na editor at debugger.
  • Para sa Mac OS, ang LLDB ay isang mataas na antas na debugger.
  • Ang Intel parallel inspector ay ginagamit bilang isang mapagkukunan ng pag-debug para sa mga error sa memorya sa mga pagpapatakbo ng C / C ++.

Proseso ng Pag-debug

Ang proseso ng paghanap ng mga bug o error at pag-aayos ng mga ito sa anumang aplikasyon o software ay tinatawag na debugging. Upang gawing walang bug ang mga programa ng software o mga produkto, dapat gawin ang prosesong ito bago ilabas ang mga ito sa merkado. Ang mga hakbang na kasangkot sa prosesong ito ay,


  • Kinikilala ang error - Makatipid ng oras at maiiwasan ang mga pagkakamali sa site ng gumagamit. Ang pagtukoy ng mga error sa isang naunang yugto ay tumutulong upang mabawasan ang bilang ng mga error at pag-aaksaya ng oras.
  • Kinikilala ang lokasyon ng error - Ang eksaktong lokasyon ng error ay dapat na matagpuan upang ayusin ang bug nang mas mabilis at ipatupad ang code.
  • Sinusuri ang error - Upang maunawaan ang uri ng bug o error at bawasan ang bilang ng mga error na kailangan namin upang pag-aralan ang error. Ang paglutas ng isang bug ay maaaring humantong sa isa pang bug na humihinto sa proseso ng aplikasyon.
  • Patunayan ang pagsusuri - Kapag nasuri ang error, kailangan nating patunayan ang pagsusuri. Gumagamit ito ng proseso ng pagsubok na awtomatiko upang isulat ang mga kaso ng pagsubok sa pamamagitan ng balangkas ng pagsubok.
  • Takpan ang pinsala sa pag-ilid - Ang mga bug ay maaaring malutas sa pamamagitan ng paggawa ng mga naaangkop na pagbabago at lumipat sa susunod na mga yugto ng code o mga programa upang ayusin ang iba pang mga error.
  • Ayusin at Patunayan - Ito ang pangwakas na yugto upang suriin ang lahat ng mga bagong error, mga pagbabago sa software o programa at isinasagawa ang application.

Pag-debug ng Software

Ang software na ito ay may mahalagang papel sa proseso ng pag-unlad ng software. Ginagamit ito ng mga developer ng software upang hanapin ang mga bug, pag-aralan ang mga bug at pagbutihin ang kalidad at pagganap ng software. Ang proseso ng paglutas ng mga bug gamit ang manu-manong pag-debug ay napakahirap at gugugol ng oras. Kailangan nating maunawaan ang programa, gumagana ito, at ang mga sanhi ng mga pagkakamali sa pamamagitan ng paglikha ng mga breakpoint.

Kaagad na nakasulat ang code, ang code ay pinagsama sa iba pang mga yugto ng pagprograma upang makabuo ng isang bagong produkto ng software. Maraming mga diskarte tulad ng mga pagsubok sa yunit, mga pagsusuri sa code, at pag-program ng pares ang ginagamit upang i-debug ang malaking programa (naglalaman ng libu-libong mga linya ng code). Ang karaniwang tool sa pag-debugger o mode ng pag-debug ng Integral Development Environment (IDE) ay tumutulong na matukoy ang pag-log at mga mensahe ng error ng code.

Ang mga hakbang na kasangkot sa pag-debug ng software ay,

  • Ang bug ay nakilala sa isang system at ang ulat ng depekto ay nilikha. Tinutulungan ng ulat na ito ang developer na pag-aralan ang error at hanapin ang mga solusyon.
  • Ang tool sa pag-debug ay ginagamit upang malaman ang sanhi ng bug at pag-aralan ito sa pamamagitan ng sunud-sunod na proseso ng pagpapatupad.
  • Matapos kilalanin ang bug, kailangan naming gumawa ng mga naaangkop na pagbabago upang maayos ang mga isyu.
  • Sinubukan muli ang software upang matiyak na walang natira na error at susuriin ang lahat ng mga bagong error sa software sa panahon ng proseso ng pag-debug ng software.
  • Ang isang pamamaraan na batay sa pagkakasunud-sunod na ginamit sa proseso ng software na ito ay gumawa ng mas madali at mas maginhawa para sa developer na hanapin ang mga bug at ayusin ang mga ito gamit ang mga pagkakasunud-sunod ng code.

Mga Diskarte sa Pag-debug

Upang maisagawa ang proseso ng pag-debug nang madali at mahusay, kinakailangan na sundin ang ilang mga diskarte. Ang pinakakaraniwang ginagamit na mga diskarte sa pag-debug ay,

  • Pag-debug sa pamamagitan ng mabangis na puwersa
  • Diskarte sa induction
  • Diskarte sa pagbawas
  • Diskarte sa backtracking at
  • Pag-debug sa pamamagitan ng pagsubok.

Ang pag-debug ng mabangis na puwersa ay ang karaniwang ginagamit na pamamaraan. Ginagawa ito sa pamamagitan ng pagkuha ng mga memory dumps ng programa na naglalaman ng isang malaking halaga ng impormasyon na may mga katangiang halaga at pinag-aaralan ang mga ito, ngunit ang pagsusuri ng impormasyon at paghahanap ng mga bug ay humahantong sa pag-aaksaya ng oras at pagsisikap.

Kasama sa diskarte sa induction ang Lokasyon ng nauugnay na data, ang Organisasyon ng data, ang Devising hipotesis (nagbibigay ng mga posibleng sanhi ng mga pagkakamali), at ang Nagpapatunay na teorya.

Kasama sa diskarte sa pagbawas ang Pagkakakilanlan ng mga posibleng sanhi ng mga bug o teorya Pag-aalis ng mga posibleng sanhi gamit ang impormasyon Pagpapino ng teorya (pag-aaral nang isa-isa)

Ang diskarte sa backtracking ay ginagamit upang mahanap ang mga error sa maliliit na programa. Kapag nangyari ang isang error, ang programa ay nasusundan isang hakbang paatras sa panahon ng pagsusuri ng mga halaga upang mahanap ang sanhi ng bug o error.

Ang pag-debug sa pamamagitan ng pagsubok ay ang kasabay ng pag-debug ng induction at pag-debug ng diskarte sa pagbawas. Ang mga kaso ng pagsubok na ginamit sa pag-debug ay iba sa mga kaso ng pagsubok na ginamit sa proseso ng pagsubok.

Mga Diskarte sa Pag-debug sa Mga Embedded System

Ang mga diskarteng ito ay nagbabawas ng bilang ng error at nagdaragdag ng kalidad at pag-andar ng code. Ang pag-debug ng mga naka-embed na system ay nakasalalay sa mga pisikal na address ng memorya at virtual memory.

Mayroong 6 na mga diskarte sa pag-debug sa isang naka-embed na system.

  • Pasimplehin ang kumplikadong data
  • Hatiin at lupigin
  • Bagalan ang proseso
  • Baguhin lamang ang isang variable sa bawat oras
  • Lumilikha ng mga off-line na modelo
  • magsimula sa isang kilalang-mabuting estado.

Iba't ibang mga diskarte sa pag-debug ang ginagamit sa iba't ibang mga kaso. Ang isang kumbinasyon ng isa o higit pang mga diskarte ay maaaring maging sanhi ng mga pagkakamali. Kasama sa prosesong ito

  • Reproduce ang bug o problema
  • Ipaliwanag ang bug gamit ang input mula sa gumagamit
  • Subukang makuha ang lahat ng mga variable na halaga at estado ng programa kapag lumitaw ang bug
  • Pag-aralan ang bug at hanapin ang sanhi ng bug
  • Ayusin ang bug at suriin ang lahat ng mga sanhi ng mga bagong bug.

Mga Tool sa Pag-debug

Ang isang tool ng software o programa na ginamit upang subukan at i-debug ang iba pang mga programa ay tinatawag na isang debugger o isang tool sa pag-debug. Nakatutulong ito upang makilala ang mga error ng code sa iba't ibang mga yugto ng proseso ng pag-unlad ng software. Sinusuri ng mga tool na ito ang pagsubok na pagsubok at hanapin ang mga linya ng mga code na hindi naisakatuparan. Pinapayagan ng mga simulator sa iba pang mga tool sa pag-debug na malaman ng gumagamit ang tungkol sa pagpapakita at pag-uugali ng operating system o anumang iba pang aparato sa pag-compute. Karamihan sa mga tool ng open-source at wika ng pag-script ay hindi nagpapatakbo ng isang IDE at kinakailangan nila ang manu-manong proseso.

Karamihan ginagamit Mga Tool sa Pag-debug ay ang GDB, DDD, at Eclipse.

  • GDB Tool: Ang ganitong uri ng tool ay ginagamit sa Unix program. Ang GDB ay paunang naka-install sa lahat ng mga system ng Linux kung hindi, kinakailangan upang i-download ang GCC compiler package.
  • DDD Tool: Ang DDD ay nangangahulugang Data Display Debugger, na ginagamit upang magpatakbo ng isang Graphic User Interface (GUI) sa mga system ng Unix.
  • Eclipse: Ang isang tool na IDE ay ang pagsasama ng isang editor, build tool, debugger at iba pang mga tool sa pag-unlad. Ang IDE ay ang pinakatanyag na tool sa Eclipse. Gumagawa ito ng mas mahusay kung ihinahambing sa DDD, GDB at iba pang mga tool.

Ang listahan ng mga tool sa pag-debug ay nakalista sa ibaba.

  • Ginagamit ang AppPuncher Debugger para sa pag-debug ng Mga Rich Internet Application
  • Debugger ng AQtime
  • Ang CA / EZ TEST ay isang interactive na pagsubok / debug na pakete ng software ng CICS
  • Ang CharmDebug ay isang Debugger para sa Charm ++
  • CodeView debugger
  • Ang DBG ay isang PHP Debugger at Profiler
  • dbx debugger
  • Ibinahaging Debugging Tool (Allinea DDT)
  • DDTLite - Ihanay ang DDTLite para sa Visual Studio 2008
  • Ang DEBUG ay ang built-in na debugger ng DOS at Microsoft Windows
  • Debugger para sa MySQL
  • Opera Dragonfly
  • Ang diskarteng dinamikong pag-debug (DDT)
  • Ang Embedded System Debug Plug-in ay ginagamit para sa Eclipse
  • FusionDebug
  • Debugger OpenGL, OpenGL ES, at OpenCL Debugger at Profiler. Para sa Windows, Linux, Mac OS X, at iPhone
  • GNU Debugger (GDB), GNU Binutils
  • Intel Debugger (IDB)
  • Ang system ay ginagamit bilang circuit debugger para sa Mga naka-embed na Sistema
  • Interactive Disassembler (IDA Pro)
  • Pinagmulan ng Java Platform Debugger Architecture Java debugger
  • LLDB
  • MacsBug
  • Rational Purify ng IBM
  • TRACE32 ay circuit debugger para sa Mga naka-embed na Sistema
  • VB Watch Debugger - debugger para sa Visual Basic 6.0
  • Microsoft Visual Studio Debugger
  • WinDbg
  • Xdebug - PHP debugger at profileer

Sa gayon, ito ay tungkol sa proseso ng pag-debug, mga tool nito, at diskarte sa mga naka-embed na system Mga proseso sa pag-unlad ng software. Ang layunin ng ito ay upang mahanap at alisin ang mga bug sa anumang code. Narito ang isang katanungan para sa iyo, ano ang mga hindi magandang pag-debug?