Cara penyahpepijat berfungsi. Contoh penyahpepijatan program Apa yang kami hasilkan

Mari kita pertimbangkan proses penyahpepijatan atur cara yang menyelesaikan persamaan bentuk AX+B=0 tanpa menyimpan data dalam fail (untuk penyataan masalah, lihat Bab 3). Kami akan menganggap bahawa borang mengandungi hanya elemen yang diletakkan pada tab "Data" (Rajah 3.5) dan mempunyai bentuk (Rajah 8.6). Nama tetingkap teks untuk memasukkan pekali TBA dan TBB, serta nama label untuk memaparkan akar LBX, diletakkan di dalam imej grafik objek yang ditentukan. Nama CB1, CB2 dan CB3 diberikan kepada butang arahan. Nama data A, B, X untuk pekali a, b dan punca X, masing-masing. Data input dan output


MASUK

nasi. 8.7. P-graf program


Jadual 8.1 Simbol bagi Rajah. 8.7 Syarat Tindakan Prosedur InDan() Dilaksanakan oleh objek kawalan bentuk sama sama
Butang tamat program ditekan Butang "Root" CB2 ditekan Butang CB1 "Clear" ditekan Satu aksara telah dimasukkan yang boleh dianggap sah apabila memasukkan nombor Memulakan data (memberikan nilai awal kepada mereka) Menekan butang yang tersedia, mengklik tetikus atau menaip aksara Memilih objek TVA Memilih objek TVV
Jawatan Keluar akar Jelas Simbol nombor dimasukkan Init Memasukkan arahan Pengaktifan TBA pengaktifan TBB
Sambungan meja. 8.1 Melaksanakan prosedur (fungsi) Fungsi MessX dan pengendali tugasan Dilaksanakan oleh objek Kotak Teks ProgEnd Prosedur negeri
Tindakan atau syarat yang berkaitan Pengiraan punca persamaan dan keluaran kepada label LBX Menambah simbol pada TVA.Tech Menambah simbol pada TVV.Tech Menyempurnakan program Program telah bermula, borang kelihatan pada skrin, arahan atau simbol dijangka dimasukkan Borang kelihatan pada skrin, arahan dimasukkan Pekali dan punca dikira, mesej tentang punca dijana Watak sewenang-wenangnya telah dimasukkan ke dalam penimbal papan kekunci
Jawatan LBX.Caption=MessX Simb® TBA.Teks Simb® TBB.Teks kepala prog Pintu masuk, 1

Struktur program



Nama modul, objek, bahagian kandungan
OpDan Perihalan data a,b,x Awam a sebagai tunggal: Awam b sebagai tunggal: Awam x sebagai tunggal
Borang Borang1
Bahagian Am Sub InDan() "Pengamatan data I=MsgBox("Data sedang dimulakan", vbOkOnly,"") End sub Sub NullDan() "Borang dan pembersihan data I=MsgBox("Borang dan penjelasan data", vbOkOnly,"") Tamat sub Fungsi MessX() "Pengiraan akar I=MsgBox("Dikira a=10, b=5, x=-2", vbOkOnly,"") MessX= "-2" End function Sub EndProg() "Tamatkan program I=MsgBox ("Program selesai", vbOkOnly, "") End sub
Borang1 Sub Form1_Load() "Memuatkan borang Panggilan InDan End sub Sub Form1_Unload "Memunggah borang dari memori Call EndProg() End sub
CB1 Sub CB1_Click() "Mengklik butang Kosongkan Panggilan NullDan End sub
CB2 Sub CB1_Click() "Mengklik butang Root LBX.Caption=MessX() End sub
CB3 Sub CB3_Click() "tamat program Panggilan EndProg Tamat Tamat sub

nasi. 8.8. Struktur program

Dengan kod program ini, ujian antara muka. Program ini harus bertindak balas kepada klik butang dengan memaparkan mesej yang sesuai, mengklik pada objek Kotak Teks harus meletakkan kursor di dalam objek, memasukkan aksara harus mengubah kandungan objek Kotak Teks yang aktif. Peta ujian antara muka ditunjukkan dalam jadual. 8.2.

Jadual 8.2

Peta ujian antara muka

Nama ujian Tindakan pengaturcara Reaksi program
Mulakan Memulakan program Borang dan tetingkap dengan mesej "Data sedang dimulakan" muncul pada skrin.
Permulaan TVA Kursor diletakkan dalam TVA
Permulaan TVA Kursor diletakkan di TVB
Memasukkan aksara Tekan kekunci abjad angka Aksara yang anda taip dilampirkan pada kandungan tetingkap teks aktif. Apabila anda menekan kekunci Backspace, aksara yang betul dalam tetingkap dipadamkan
Pembersihan Mesej "Mengosongkan borang" muncul
Pengiraan Mesej "Dikira a=10, b=5, x= -2" muncul
Menyempurnakan program

Pengujian program pada tahap prosedur dan fungsi pengaturcara berlaku apabila kod prosedur dan fungsi ditulis. Untuk ujian sedemikian, anda boleh membuat borang penyahpepijatan khas dengan butang untuk prosedur panggilan dan menjadikannya sebagai bentuk permulaan. Dalam kes ini tidak ada keperluan seperti itu, kerana bentuk asas agak sesuai untuk tujuan ini.

Sub InDan() "Memulakan data OpDan.a=0: OpDan.b=0: OpDan.x=0 TBA.Text="": NBB.Text="" LBX.Caption="" I=MsgBox("Memulakan data "+str(OpDan.a)+" "+str(OpDan.b) +" "+str(OpDan.x), vbOkOnly,"") tamat sub Rajah 8.9. Teks prosedur InDan() semasa nyahpepijat Kita mulakan dengan prosedur InDan. Tujuan prosedur adalah untuk menetapkan semula data dan mengosongkan borang. Teks prosedur semasa tempoh penyahpepijatan ditunjukkan dalam Rajah. 8.9. Hasil daripada ujian prosedur, keputusan berikut harus dicapai: pembolehubah a, b, x modul OpDan hendaklah mengambil nilai sifar, kotak teks dan label LBX hendaklah kosong.
Sub NullDan() "Mengosongkan borang dan data OpDan.a=0: OpDan.b=0: OpDan.x=0 TBA.Text="": NBB.Text="" LBX.Caption="" I=MsgBox(" Mengosongkan borang dan data" +str(OpDan.a)+""+str(OpDan.b)+"" +str(OpDan.x), vbOkOnly,"") Tamat sub Rajah 8.10. Teks NullDan( ) prosedur dalam momen nyahpepijat Seterusnya, kami menyahpepijat prosedur pembersihan borang. Teksnya pada masa penyahpepijatan ditunjukkan dalam Rajah. 8.10. Teks prosedur boleh disalin daripada prosedur InDan, kerana ia mempunyai tujuan yang sama. Dalam kes ini, agak mungkin untuk mempunyai satu daripada dua prosedur. Hasil penyahpepijatan prosedur ialah nilai sifar data yang diterangkan dalam modul OpDan dan tetingkap teks kosong dan label LBX.
Proses penyahpepijatan untuk kedua-dua prosedur adalah sama. Dengan menjalankan program untuk pelaksanaan, anda boleh memantau pelaksanaan prosedur yang betul menggunakan mesej. Jika hasil yang salah muncul, anda boleh bertukar kepada mod langkah demi langkah dan, dengan menuding tetikus pada nama data, mengawal hasil pengiraan. Anda juga boleh menggunakan mod langkah demi langkah dengan kemasukan tetingkap Watches, yang mana anda harus menambah nama pembolehubah yang disenaraikan di atas.
Fungsi MessX() "Pengiraan akar Dim S sebagai Rentetan OpDan.a=val(TBA.Text) OpDan.b=val(TBB.Teks) Jika a<>0 kemudian S=str(-b/a) Elseif ((a=0) dan (b=0)) kemudian S="Akar tidak pasti" Elseif ((a=0) dan (b=0)) kemudian S=" Puncanya tidak wujud" Tamat jika MessX= S TBA.Teks = str(OpDan.a) TBB.Teks = str(OpDan.b) LBX.Kapsyen = str(OpDan.b) I=MsgBox("A, b, x dikira ", vbOkOnly,"") Fungsi akhir Rajah. 8.11. Teks fungsi MessX pada masa penyahpepijatan Penyahpepijatan fungsi MessX (Gamb. 8.10) dilakukan dalam mod langkah demi langkah dengan kursor diletakkan pada pernyataan pertama teks fungsi. Adalah dinasihatkan untuk menghidupkan tetingkap Watches and Locals dan menambah nama pembolehubah daripada modul OpDan kepada yang pertama, dan nilai pembolehubah S akan dipaparkan dalam set kedua Tiga set data digunakan untuk penyahpepijatan: · a= 10.6, b=31.8;

· a=0, b=0; · a=0, b=10. Program ini dilancarkan dengan arahan "Debug/Run to Cursor". Set data dimasukkan melalui tetingkap borang. Pelaksanaan program terganggu pada pernyataan OpDan.a=val(TBA.Text). Seterusnya, menggunakan arahan "Debug/Step Into", kami melaksanakan program langkah demi langkah dan memantau nilai pembolehubah. Set data pertama memulakan pelaksanaan pernyataan S=str(-b/a) , kedua – pengendali S="Akar tidak ditentukan"

, ketiga – pengendali

S="Root tidak wujud"

. Dalam kes pertama, nilai punca ialah (– 3). Nilai pengiraan pekali dan punca boleh diperhatikan pada borang dalam tetingkap teks dan label LBX.

Nama ujian Tindakan pengaturcara Reaksi program
Mulakan Memulakan program Pengujian kod program yang telah lengkap dijalankan mengikut peta ujian program (Jadual 8.3).
Permulaan TVA Jadual 8.3 Kursor diletakkan dalam TVA
Permulaan TVA Peta ujian program Kursor diletakkan di TVB
Memasuki set data Masukkan set data · a=10.6, b=31.8; · a=0, b=0;
Pembersihan a=0, b=10.2 Data yang dimasukkan muncul dalam tetingkap teks aktif (TBA atau TVB). Kekunci "Back2" mestilah aktif
Pengiraan "Klik" tetikus pada butang "Kosongkan". Mesej "Mengosongkan borang" muncul, kemudian kotak teks dan label LBX dikosongkan
"Klik" tetikus pada butang "Root". Mesej "A, b, x telah dikira" muncul, nilai pengiraan pekali dan punca muncul pada borang Kembali
Menyempurnakan program Ulangi ujian Pembersihan, Kemasukan Data dan Pengiraan satu demi satu. Borang dikosongkan, data dimasukkan, punca dikira, pekali dipaparkan (sekali lagi) dan punca

"Klik" dengan tetikus pada butang "Keluar" atau pada butang "X".

Mesej "Program Complete" muncul
Seterusnya, kami mengalih keluar pernyataan yang ditunjukkan dalam fon biasa daripada teks prosedur dan fungsi dan menguji semula program mengikut peta ujian program. Hasilnya mestilah sama, tetapi tidak sepatutnya ada mesej nyahpepijat.

8.2. Mencipta kit pemasangan

alat perisian

Selepas menyelesaikan kerja menyahpepijat perisian, agak mudah untuk mendapatkan kod boleh lakunya. Ia boleh dibina dalam dua bentuk: sebagai kod boleh laku bebas dan sebagai P-cod (kod pseudo), yang memerlukan fail disertakan dengan Visual Basic untuk melaksanakan program. Kod pertama lebih panjang, tetapi boleh berfungsi tanpa sebarang penambahan sistem Visual Basic, kod kedua lebih pendek, tetapi memerlukan kehadiran fail yang ditentukan. Biasanya pilihan pertama lebih disukai. Kaedah penyusunan dinyatakan dalam tetingkap "Projek Properties". Untuk membina kit pemasangan (pengedaran), aplikasi khas dilancarkan (Application SetupWizard untuk Visual Basic 5 dan Package and Deployment Wizard untuk Visual Basic 6). Proses mencipta pengedaran berlaku secara interaktif dalam beberapa langkah. Pandangan umum bagi tetingkap aplikasi Wizard Persediaan Aplikasi ditunjukkan dalam Rajah. 8.12. Tetingkap pertama Wizard Persediaan Aplikasi memaparkan pelbagai mesej, khususnya tentang tujuan program dan tindakan utama yang dilakukannya. Tetingkap ini tidak ditunjukkan di sini.
Selepas menyelesaikan kerja menyahpepijat perisian, agak mudah untuk mendapatkan kod boleh lakunya. Ia boleh dibina dalam dua bentuk: sebagai kod boleh laku bebas dan sebagai P-cod (kod pseudo), yang memerlukan fail disertakan dengan Visual Basic untuk melaksanakan program. Kod pertama lebih panjang, tetapi boleh berfungsi tanpa sebarang penambahan sistem Visual Basic, kod kedua lebih pendek, tetapi memerlukan kehadiran fail yang ditentukan. Biasanya pilihan pertama lebih disukai. Kaedah penyusunan dinyatakan dalam tetingkap "Projek Properties". Langkah seterusnya ialah memilih projek untuk kit pemasangan yang akan dibuat dan mengkonfigurasi aplikasi. Tetingkap "Pemilihan dan tetapan projek" (Gamb. 8.12a) digunakan untuk tujuan ini. Tetingkap ini menetapkan laluan ke fail projek dan pilihan yang membolehkan anda membuka pemasang dengan atau tanpa mencipta fail bergantung, mencipta kit pengedaran untuk pengedaran Internet dan hanya mencipta fail bergantung. Dalam tetingkap seterusnya "Kaedah pengedaran" (Rajah 8.12, b) anda memilih kaedah meletakkan set pada media: pada satu cakera liut, dalam satu direktori pada cakera keras untuk menyalin ke CD-Rom, atau dalam beberapa direktori dengan nama Disk1, Disk2, ... untuk mencipta set cakera liut.

b) Rajah. 8.13. Tetingkap Wizard Persediaan Aplikasi "Direktori destinasi" (a) dan "Fail terhasil" (b)

Dalam tetingkap seterusnya, anda memilih direktori destinasi yang akan mengandungi kit pemasangan yang akan dibuat. Tetingkap ini menentukan cakera dan laluan ke fail kit pemasangan. Pokok folder membolehkan anda memilih laluan yang dikehendaki ke fail yang ditentukan.

Tetingkap wizard seterusnya menentukan pelayan dan komponen ActiveX tempatan. Tetingkap ini tidak ditunjukkan dalam rajah.

Tetingkap kedua dari aplikasi "Fail Akhir" (Gamb. 8.13b) menunjukkan fail yang dilampirkan pada fail projek. Sebagai peraturan, ini adalah perpustakaan *.dll. Wizard Penetapan Aplikasi secara automatik menjana senarai fail yang perlu ditambah pada kit. Anda boleh menambah fail anda sendiri, kecuali yang ditambahkan secara automatik oleh aplikasi.

Dua tetingkap terakhir memaparkan mesej yang menunjukkan bahawa kit telah dipasang dan aplikasi telah selesai. Tingkap ini

tidak ketara dan tidak ditunjukkan dalam manual.

Penyusun (pemasang) dan penyunting pautan.

Kedua-dua kelas program ini harus digabungkan, kerana Mana-mana pengkompil moden termasuk editor pautan.

Pengkompil (penghimpun) menjana kod objek dengan menterjemah program daripada bahasa pengaturcaraan (bahasa himpunan), dan editor menjana fail boleh laku dengan mengumpul fail objek dan perpustakaan serta menyunting rujukan silang.

Format objek, perpustakaan dan fail boleh laku yang disokong;

Wakil: C/C++: Pengkompil Intel C++, Pengkompil Borland C++, Watcom C++, GNU C.

Pascal: Pascal Percuma, GNU Pascal.

Penyunting teks.

Direka untuk memasukkan dan membetulkan teks program. Mereka boleh sama ada umum atau direka untuk menyokong bahasa atau persekitaran tertentu.

Spesifikasi:

Format dan pengekodan fail yang diproses;

Kemungkinan menonjolkan leksem dalam teks;

Keupayaan untuk menyokong pemformatan teks mengikut paradigma bahasa;

Keupayaan untuk memanggil proses penyusunan terus daripada editor;

Keupayaan untuk menjana sebahagian daripada teks program (lebih kerap ia berlaku bukan dengan editor, tetapi dengan persekitaran).

Penyahpepijat.

Direka bentuk untuk mencari ralat dalam program lain, kernel sistem pengendalian, pertanyaan SQL dan jenis kod lain. Penyahpepijat membolehkan anda melakukan pengesanan langkah demi langkah, memantau, menetapkan atau menukar nilai pembolehubah semasa kod berjalan, menetapkan dan mengalih keluar titik putus atau keadaan berhenti, memantau perubahan dalam keadaan pemproses semasa program sedang berjalan, dan sebagainya. .

Terdapat dua jenis penyahpepijat utama:

Penyahpepijat mod pengguna;

Penyahpepijat mod kernel.

Yang pertama hanya boleh memantau operasi program mod pengguna dan tidak dapat memantau panggilan sistem atau memantau operasi kernel. Di samping itu, untuk menggunakan penyahpepijat tersebut, program mesti disediakan (disusun) dengan sewajarnya.

Penyahpepijat mod kernel, sebaliknya, membolehkan anda mengawal sepenuhnya operasi sistem, dan, akibatnya, semua program.

Spesifikasi:

Jenis (mod kernel/pengguna);

Sokongan untuk penyahpepijatan simbolik (keupayaan untuk membaca dan bekerja dengan kod sumber program). Set bahasa yang disokong (persekitaran/dialek);

Set maklumat yang dipaparkan: daftar pemproses, tindanan, memori (mod untuk memaparkan kandungan memori);

Mod penyahpepijatan yang disokong: langkah demi langkah, dengan titik putus, dengan tindak balas kepada peristiwa dalam sistem;

Komposisi acara yang dipantau dalam sistem: gangguan perkakasan, panggilan kepada pemacu (modul kernel lain), panggilan fungsi, dll.

- (biasanya untuk penyahpepijat mod kernel) keperluan untuk sokongan perkakasan, keupayaan untuk bekerja pada sistem "langsung";

Keupayaan untuk menganalisis fail dump.

wakil:

Penyahpepijat mod pengguna: Turbo Debugger (Borland Software Corporation), Cool Debugger (Wei Bao), W32Dasm, AQtime, FlexTracer, GNU Debugger.

Penyahpepijat mod kernel: i386kd/alphakd/ia64kd dan WinDbg (Microsoft Corporation) (untuk berfungsi "secara langsung" mereka memerlukan 2 mesin. Untuk memintas pengehadan ini terdapat LiveKd tambahan (Mark E. Russinovich)), SoftIce (NuMega).

Menyahpepijat program

Penyahpepijatan- peringkat pembangunan program komputer, di mana ralat dikesan, disetempatkan dan dihapuskan. Untuk memahami di mana ralat berlaku, anda perlu:

  • mengetahui nilai semasa pembolehubah;
  • mengetahui cara program itu dilaksanakan.

Terdapat dua teknologi penyahpepijatan pelengkap.

  • Menggunakan penyahpepijat - program yang termasuk antara muka pengguna untuk melaksanakan program langkah demi langkah, pernyataan demi pernyataan, fungsi mengikut fungsi, berhenti pada baris tertentu kod sumber atau apabila keadaan tertentu dicapai.
  • Mengeluarkan keadaan semasa program menggunakan pernyataan output yang terletak di titik kritikal dalam program - ke skrin, pencetak, pembesar suara atau ke fail. Mengeluarkan maklumat penyahpepijatan kepada fail dipanggil pengelogan.

Tempat penyahpepijatan dalam kitaran pembangunan program

Kitaran pembangunan biasa, diulang berkali-kali sepanjang hayat program, kelihatan seperti ini:

  1. Pengaturcaraan - memperkenalkan fungsi baharu ke dalam atur cara, membetulkan ralat pada yang sedia ada.
  2. Pengujian (manual atau automatik; oleh pengaturcara, penguji atau pengguna; "asap", dalam mod kotak hitam atau modular...) - pengesanan ralat.
  3. Menghasilkan semula ralat - mengetahui keadaan di mana ralat itu berlaku. Ini boleh menjadi mencabar apabila memprogramkan proses selari dan dengan beberapa ralat luar biasa yang dikenali sebagai Heisenbugs.
  4. Penyahpepijatan- pengesanan punca ralat.

Alatan

Keupayaan penyahpepijatan pengaturcara berkemungkinan merupakan faktor paling penting dalam menemui punca masalah, tetapi kesukaran penyahpepijatan amat bergantung pada bahasa pengaturcaraan dan alatan yang digunakan, terutamanya penyahpepijat.

Alat nyahpepijat

Penyahpepijat ialah alat perisian yang membolehkan pengaturcara memerhati pelaksanaan program yang sedang dikaji, menghentikan dan memulakannya semula, menjalankannya dalam gerakan perlahan, menukar nilai dalam ingatan, malah, dalam beberapa kes, kembali ke masa lalu.

Berikut juga mungkin alat yang berguna di tangan pengaturcara:

  • Profiler. Mereka akan membolehkan anda menentukan berapa lama bahagian kod tertentu mengambil masa untuk dilaksanakan, dan analisis liputan akan membolehkan anda mengenal pasti bahagian kod yang tidak boleh dilaksanakan.
  • Pembalak API membenarkan pengaturcara menjejak interaksi program dan API Windows dengan merakam mesej Windows dalam log.
  • Pembongkar akan membenarkan pengaturcara melihat kod pemasangan fail boleh laku
  • Sniffers akan membantu pengaturcara memantau trafik rangkaian yang dijana oleh program
  • Penghidu antara muka perkakasan akan membolehkan anda melihat data yang ditukar antara sistem dan peranti.
  • Log sistem.

Alat yang mengurangkan keperluan untuk nyahpepijat

Arahan lain ialah memastikan penyahpepijatan diperlukan sesedikit mungkin. Untuk tujuan ini:

  • Pengaturcaraan kontrak - supaya pengaturcara mengesahkan dengan cara lain bahawa dia memerlukan tingkah laku program ini dengan tepat pada output. Dalam bahasa yang tidak mempunyai pengaturcaraan kontrak, program ini menggunakan semakan sendiri pada perkara utama.
  • Ujian unit menguji kelakuan program dalam bahagian.
  • Analisis kod statik - menyemak kod untuk ralat standard "disebabkan oleh pengawasan".
  • Budaya pengaturcaraan yang tinggi, khususnya, corak reka bentuk, konvensyen penamaan dan kelakuan telus bagi blok kod individu - untuk mengisytiharkan kepada diri sendiri dan orang lain bagaimana fungsi ini atau itu harus berkelakuan.
  • Penggunaan meluas perpustakaan luaran yang terbukti.

Keselamatan Kod dan Nyahpepijat

Kod program mungkin mengandungi apa yang dipanggil tingkah laku tidak didokumenkan - ralat serius yang tidak muncul semasa pelaksanaan program biasa, tetapi sangat berbahaya untuk keselamatan keseluruhan sistem sekiranya serangan yang disasarkan. Selalunya ini adalah hasil daripada ralat pengaturcara. Contoh yang paling terkenal ialah suntikan SQL dan limpahan penimbal. Dalam kes ini, tugas penyahpepijatan ialah:

  • Mengenal pasti tingkah laku sistem tidak berdokumen
  • Menghapuskan kod yang tidak selamat

Kaedah berikut dibezakan:

  • analisis kod statik. Pada fasa ini, atur cara pengimbas mencari urutan dalam teks sumber yang sepadan dengan panggilan fungsi tidak selamat, dsb. Malah, teks sumber program diimbas berdasarkan asas peraturan khas yang mengandungi perihalan sampel kod tidak selamat.
  • kabur. Ini ialah proses memberi data rawak atau salah kepada input program dan menganalisis tindak balas program.
  • Kejuruteraan terbalik. Kes ini berlaku apabila penyelidik bebas mencari kelemahan dan ciri program yang tidak didokumenkan.

kesusasteraan

  • Steve Maguire, "Mencipta Kod Boleh Dipercayai" (Steve Maguire. Menulis Kod Pepejal. Microsoft Press, 1993)
  • Steve McConnell, "Kod Sempurna" (Steve McConnel. Kod Lengkap. Microsoft Press, 1993)

Lihat juga

Pautan

  • Menyahpepijat AMD64 pada tahap kod mesin menggunakan penyahpepijat dbx (Rusia)

Yayasan Wikimedia.

2010.

    Lihat apa "Penyahpepijatan Program" dalam kamus lain: Peringkat pembangunan program komputer, di mana ralat yang jelas dalam program dikesan, disetempatkan dan dihapuskan. Biasanya, penyahpepijatan dilakukan pada kes ujian dengan keputusan yang diketahui. Dalam Bahasa Inggeris: Penyahpepijatan program… …

    Kamus Kewangan penyahpepijatan atur cara

    Kamus Kewangan- kawalan program kawalan program kawalan - [L.G. Sumenko. Kamus Inggeris-Rusia mengenai teknologi maklumat. M.: State Enterprise TsNIIS, 2003.] Topik teknologi maklumat secara umum Sinonim kawalan program... ...

    - penyahpepijatan program; penyahpepijatan Proses mengesan dan membetulkan ralat dalam atur cara, serta menentukan fakta fungsinya yang betul dalam mesin... penyahpepijatan (program) - - [A.S. Goldberg. Kamus tenaga Inggeris-Rusia. 2006] Topik tenaga secara umum EN debugging ...

    Panduan Penterjemah Teknikal Pada komputer, mengesan dan membetulkan ralat dalam program komputer menggunakan mesin itu sendiri. Ia dijalankan dalam 2 peringkat: 1) pemeriksaan autonomi jabatan. kawasan program; 2) pengesahan menyeluruh dengan menyelesaikan beberapa program yang sedang dinyahpepijat. contoh, keputusan...

    Kamus Besar Politeknik Ensiklopedia penyahpepijatan - program; penyahpepijatan Proses mengesan dan membetulkan ralat dalam atur cara, serta menentukan fakta fungsinya yang betul dalam mesin...

    Kamus penerangan istilah politeknik menyahpepijat atur cara mesin - - [A.S. Goldberg. Kamus tenaga Inggeris-Rusia. 2006] Topik tenaga secara umum EN debugging ...

    - - [A.S. Goldberg. Kamus tenaga Inggeris-Rusia. 2006] Topik tenaga dalam pemurnian kod EN am ... MENYAHJUPI - (1) program, proses sistematik mencari dan menghapuskan (lihat) dalam (lihat), dijalankan berdasarkan hasil pengendaliannya pada komputer atau menggunakan program tambahan khas (debugger), menyediakan mod tertentu untuknya. penyahpepijatan dan pengeluaran ... ...

    Ensiklopedia Politeknik Besar

Penyahpepijatan ialah peringkat pembangunan program komputer di mana ralat dikesan, disetempatkan dan dihapuskan. Untuk memahami di mana ralat berlaku, anda perlu: mengetahui nilai semasa pembolehubah; dan ketahui laluan mana program telah dilaksanakan di.... ... Wikipedia

  • Buku Android untuk pengguna. Program dan petua berguna, Denis Nikolaevich Kolisnichenko, Aplikasi Android yang paling menarik, berguna dan paling popular di kalangan pengguna domestik dipertimbangkan. Petua diberikan tentang cara menukar peranti Android anda menjadi alat kawalan jauh... Penerbit:

Satu lagi modul sistem pengaturcaraan, yang fungsinya berkait rapat dengan pelaksanaan program, ialah penyahpepijat.

Penyahpepijat ialah modul perisian yang membolehkan anda melaksanakan tugas asas yang berkaitan dengan memantau proses pelaksanaan program aplikasi yang terhasil.

    Proses ini dipanggil penyahpepijatan dan termasuk ciri utama berikut:

    pelaksanaan langkah demi langkah program yang terhasil berdasarkan langkah mengikut arahan mesin atau oleh pengendali bahasa input;

    pelaksanaan program yang terhasil sehingga ia mencapai salah satu titik putus yang ditentukan (titik putus);

    pelaksanaan program yang terhasil sehingga berlakunya syarat tertentu yang berkaitan dengan data dan alamat yang diproses oleh program ini;

melihat kandungan kawasan memori yang diduduki oleh arahan atau data program yang dihasilkan.

Pada asalnya, penyahpepijat ialah modul perisian berasingan yang boleh memproses atur cara yang terhasil dari segi bahasa arahan mesin.

Keupayaan mereka terutamanya terhad kepada pemodelan pelaksanaan program yang terhasil dalam seni bina sistem komputer yang sepadan.

Pelaksanaan boleh diteruskan secara berterusan atau secara berperingkat.

Perkembangan selanjutnya penyahpepijat dikaitkan dengan perkara asas berikut:

perisian.

Pada masa yang sama, penyahpepijat tidak lagi menjadi modul berasingan dan menjadi bahagian bersepadu sistem pengaturcaraan, kerana mereka kini perlu menyokong kerja dengan jadual pengecam dan melaksanakan tugas songsang untuk mengenal pasti unit leksikal bahasa.

Ini disebabkan oleh fakta bahawa dalam persekitaran sedemikian, penyahpepijatan program berlaku dari segi nama yang diberikan oleh pengguna, dan bukan dari segi nama dalaman yang diberikan oleh pengkompil.< ют... редакторов исходных текстов, входящих в сое urn in. .«mi программирования.

Perubahan yang sepadan juga diperlukan dalam fungsi penyusun dan pemaut, kerana mereka perlu memasukkan jadual nama dalam objek dan fail boleh laku untuk diproses oleh penyahpepijat. .\, Langkah kedua memungkinkan untuk mengembangkan dengan ketara keupayaan persekitaran penyahpepijatan Sekarang mereka tidak memerlukan pemodelan komputer dan seni bina sistem komputer yang sepadan Melaksanakan program yang terhasil dalam mod penyahpepijatan menjadi mungkin dalam persekitaran yang sama seperti dalam mod biasa. Tugas penyahpepijat termasuk fungsi menukar sistem komputer kepada pi h yang sepadan sebelum melancarkan program yang terhasil untuk bendera pemproses pengkomputeran\ """

Penyahpepijat dalam sistem pengaturcaraan moden adalah modul dengan antara muka yang dibangunkan, peluh, y.i.-i.. berfungsi secara langsung dengan teks dan modul program m-one.

Banyak fungsi mereka disepadukan dengan fungsi LF

Mari kita pertimbangkan keupayaan penyahpepijat sistem npoi rammprop.mm.Delphi. (Ini ialah penyahpepijat berkuasa yang dibina ke dalam persekitaran pembangunan bersepadu.) Set disokong - im< ми,.п..., например, щелкнув слева от строки кода. Если ш-ш.- ..м.» < проанализировать поведение программы внутри опред.-тч...,.,

prosedur atau fungsi, cukup dengan hanya menetapkan 1 titik o(mi

oh baris pertama.

Bersyarat titik Delphi.. Anda boleh menentukan tambahan< поим. >butang berhenti, dan kemudian program akan berhenti seketika -..m mencapai baris kod tertentu hanya apabila dilaksanakan

modenKemanusiaanUniversiti

modenfyw

u" mpiin.

Kes penggunaan biasa untuk titik putus sedemikian ialah memecahkan kod di dalam gelung. Delphi. Anda mungkin tidak mahu berhenti dan menjalankan mini program setiap kali gelung berjalan - yang berlaku ratusan, mungkin ribuan kali. Daripada menjalankan semula program secara berterusan, anda boleh menetapkan titik moshnov apabila pembolehubah mencapai nilai tertentu. titik Oleh. rawatan

Kes penggunaan biasa untuk titik putus sedemikian ialah memecahkan kod di dalam gelung. Delphi. Anda mungkin tidak mahu berhenti dan menjalankan mini program setiap kali gelung berjalan - yang berlaku ratusan, mungkin ribuan kali. Kepada. data

Kes penggunaan biasa untuk titik putus sedemikian ialah memecahkan kod di dalam gelung. Delphi. Anda mungkin tidak mahu berhenti dan menjalankan mini program setiap kali gelung berjalan - yang berlaku ratusan, mungkin ribuan kali. Jenis titik putus ini menjeda pelaksanaan program apabila lokasi memori tertentu diubah suai. Ia digunakan untuk peringkat rendah o|, menyusahkan apabila menjejaki ralat dalam memberikan nilai kepada pembolehubah.

Anda juga boleh memasukkan alamat permulaan kawasan memori yang anda mahu kawal, dan saiznya (dalam bait) Dengan menetapkan saiz yang diperlukan, anda boleh mengawal pembolehubah dari sebarang jenis: char (1 bait) dan Integer (4 bait). kepada tatasusunan atau rekod saiz arbitrari Seperti dalam kes titik putus bersyarat, anda boleh memasukkan ungkapan yang akan menjadi kriteria berhenti apabila menukar kawasan memori Ini membolehkan anda mengenal pasti ralat yang muncul hanya selepas kemas kini ke-n nilai pembolehubah. alamat Delphi. mewakili salah satu ciri paling berkuasa dan cekap penyahpepijat bersepadu.

Menggunakan mekanisme kumpulan, mana-mana titik putus boleh diaktifkan atau dinyahaktifkan oleh titik putus lain, yang membolehkan anda membina algoritma yang sangat kompleks untuk berfungsi kumpulan titik putus, direka untuk mengesan ralat yang paling sukar difahami dan khusus.Langkah demi langkahperlaksanaan. program Program ini boleh dilaksanakan secara berurutan, baris demi baris, menggunakan arahan Step Over atau Trace Into (kunci lalai Dan

masing-masing). Perintah Trace Into, apabila melaksanakan program, menyediakan kemasukan ke dalam prosedur dan fungsi yang dipanggil, dan arahan Step Over serta-merta melaksanakannya dan membentangkannya sebagai satu tindakan. Pilihan ini mudah digunakan selepas menghentikan program pada satu ketika dalam teksnya.

Anda juga boleh mengarahkan Delphi untuk menjalankan program sehingga ke lokasi di mana kursor berada pada masa ini menggunakan perintah Run to Cursor (kunci Program ini boleh dilaksanakan secara berurutan, baris demi baris, menggunakan arahan Step Over atau Trace Into (kunci lalai .

).Ciri ini adalah mudahGunakan untuk melangkau gelung berbilang larian supaya anda tidak menekan kekunci secara berterusanPenggunaan (tingkap). pemeriksa

dataTonton (Tetingkap Watch boleh digunakan untuk memantau nilai pembolehubah semasa program berjalan.Program mestilah dalam mod melihat kod program (iaitu, mana-mana titik putus sedang dilaksanakan) - hanya dalam kes ini kandungan tetingkap Tonton akan betul.) Dalam tetingkap ini anda boleh memasukkan beberapa ungkapan Pascal Objek atau tentukan nama yang ditakrifkan dalam program.

).PemeriksapenyahpepijatanNyahpepijatInspektor. adalah sejenis tetingkap pemeriksa data.

Ia lebih berkuasa dan lebih mudah digunakan daripada tetingkap Tonton.titikDalam Inspektor Nyahpepijat, anda boleh melihat kandungan data yang terdiri daripada banyak elemen individu, seperti kelas dan rekod.pasukan (nilaikanDan) membolehkan anda melihat fungsi dan panggilan prosedur bersama-sama dengan parameter yang dihantar kepada mereka, dalam urutan di mana ia telah dilaksanakan sehingga satu titik tertentu dalam pelaksanaan program.

Lihataliran (BenangStatus). Jika aplikasi anda menggunakan berbilang benang, penyahpepijat terbina dalam boleh memberikan maklumat tentang setiap satu daripadanya.

Majalahperistiwa (PeristiwaLog) - Ini adalah tempat di mana penyahpepijat menulis maklumat tentang pelbagai acara.

Jenis peristiwa yang mungkin dilog termasuk permulaan dan penamatan proses, dan pemuatan modul oleh penyahpepijat.Tingkap CPU

mengandungi lima panel maklumat: CPU, Memory Dump, Register, Flags dan Stack.

Dengan bantuannya, pemaju mendapat peluang untuk mengetahui apa sebenarnya yang berlaku di dalam kereta.

modenKemanusiaanSetiap panel membolehkan anda memantau aspek penting fungsi pemproses semasa penyahpepijatan.! 16

modenKemanusiaanPanel CPU memaparkan opcode dan mnemonik untuk kod yang dibongkar yang sedang dilaksanakan.

Anda boleh melihat kod aplikasi di mana-mana alamat dan secara rawak memilih arahan baharu untuk pelaksanaan semasa.Anda boleh melihat kod aplikasi di mana-mana alamat dan secara rawak memilih arahan baharu untuk pelaksanaan semasa.- Ini akan membolehkan anda mengkaji kelakuan kod pemasangan program. . Pembangun yang berpengalaman sedar bahawa banyak ralat ditemui dan dihapuskan semasa menyemak kod pemasangan yang dijana.Menu konteks tetingkap CPU membolehkan anda menyesuaikan penampilan tetingkap, melihat pelbagai alamat, pergi ke arahan yang dilaksanakan dalamUniversitiUniversitimiUniversiti, w"Danvii- mereka-" i. tuntitikn|) iiit

lu

pnyii

csi<м мдср + пммп мм-нч (н.пьпредставлено по-разному: как Byle, Woid, nwnHD. uwnni). :>ll<>OCMOTpy

ORIGINAL

kod dan dalam i ik ir n- i m" * i-* i h.if h mi. m m 11"m.i mengalir di mana akan ada

Penyahpepijat(Penyahpepijat Bahasa Inggeris) - program yang direka untuk menganalisis kelakuan program lain, menyediakan pengesanannya (pemantauan dan pencetakan arahan yang dilaksanakan oleh program, perubahan dalam pembolehubah atau data pada peristiwa lain yang berkaitan dengan pelaksanaan program), berhenti pada yang ditentukan mata atau apabila syarat tertentu dipenuhi, melihat dan menukar sel memori, daftar pemproses dan arahan program.

Penyahpepijat simbolik berfungsi dengan simbol kod sumber (nama pembolehubah dan prosedur), dan bukannya dengan alamat mesin mutlak. Penyahpepijat simbolik memerlukan interaksi antara pengkompil dan pemaut untuk membuat jadual yang mengaitkan simbol dan alamatnya.

Penyahpepijat moden sangat berkuasa dan fleksibel. Walau bagaimanapun, mereka tidak boleh digunakan secara berlebihan di mana perlu untuk berfikir. Selalunya, beberapa hari pengesanan akan melakukan kurang untuk mencari pepijat daripada hanya cuba menerangkan prosedur kepada pengaturcara lain.

Sesetengah masalah sukar diselesaikan walaupun dengan penyahpepijat. Sebagai contoh, struktur data dinamik (senarai dan pepohon) tidak boleh diperiksa secara keseluruhan; sebaliknya, anda perlu melalui setiap pautan secara manual. Terdapat masalah yang lebih serius seperti overwriting memori, yang disebabkan oleh ralat yang terletak jauh dari tempat ia muncul. Dalam situasi ini, penyahpepijat yang menumpukan pada mengenal pasti gejala seperti "pembahagian dengan sifar dalam prosedur p1" tidak banyak digunakan.

Akhir sekali, sesetengah sistem tidak boleh "nyahpepijat" seperti itu: anda tidak boleh sesuka hati mencipta masalah untuk pesakit hanya untuk menyahpepijat perisian monitor jantung; Anda tidak boleh menghantar sekumpulan pengaturcara pada penerbangan angkasa untuk menyahpepijat program kawalan penerbangan. Sistem sedemikian mesti disahkan menggunakan perkakasan dan perisian khusus untuk mensimulasikan data input dan output; Dalam kes sedemikian, perisian tidak pernah diuji atau dinyahpepijat dalam keadaan sebenar! Sistem perisian kritikal kebolehpercayaan merangsang penyelidikan ke dalam binaan bahasa yang meningkatkan kebolehpercayaan program dan menyumbang kepada kaedah pengesahan formal.

Fungsi Penyahpepijat Asas

Menjejak(Bahasa Inggeris) jejak). Pelaksanaan langkah demi langkah program, membolehkan pengaturcara menjejaki arahan dengan tepat mengikut urutan ia dilaksanakan.

Pusat pemeriksaan(Bahasa Inggeris) titik putus). Alat yang direka untuk memaksa atur cara untuk melaksanakan ke baris tertentu dalam atur cara. Jenis titik kawalan khas - titik pemerhatian- menyebabkan atur cara untuk melaksanakan sehingga sel memori tertentu diakses.