Penyahpepijat sistem. Penyahpepijatan yang mudah bagi perkhidmatan Windows. Definisi pengaturcaraan. Peringkat membuat program

Suite Alat Penyahpepijatan Windows termasuk alat penyahpepijatan lanjutan yang membolehkan anda meneroka dalaman Peranti Windows. Pada masa yang sangat versi terkini Kit pembangunan disertakan sebagai sebahagian perisian - Perisian Windows Kit Pembangunan (SDK).

Alat dalam set ini boleh digunakan untuk menyahpepijat kedua-dua proses mod pengguna dan mod kernel.

CATATAN. Alat Penyahpepijatan untuk Windows dikemas kini dan dikeluarkan agak kerap tanpa mengira versi operasi sistem Windows, jadi semak kembali selalu untuk versi baharu.

Alat penyahpepijatan juga boleh digunakan untuk melampirkan mod pengguna pada proses dan untuk memeriksa dan/atau menukar keadaan memori proses tersebut. Apabila menyambung kepada proses, terdapat dua pilihan:

  • Invasif. Jika semasa menyambung ke proses berjalan tiada arahan khas diberikan; fungsi Windows DebugActiveProcess digunakan untuk menyambungkan penyahpepijat kepada kod yang sedang dinyahpepijat. Ini mewujudkan keadaan untuk memeriksa dan (atau) menukar memori proses, menetapkan titik putus dan melaksanakan fungsi penyahpepijatan yang lain. Windows membenarkan anda menghentikan penyahpepijatan tanpa mengganggu proses sasaran jika penyahpepijat dimatikan tanpa mengganggu operasinya.
  • Tidak mengganggu (Noninvasive). Dengan pilihan ini, penyahpepijat hanya membuka proses menggunakan fungsi OpenProcess. Proses ini tidak melekat pada proses lain sebagai penyahpepijat. Ini membolehkan anda menyiasat dan/atau mengubah suai memori proses sasaran, tetapi anda tidak boleh menetapkan titik kawalan.

Anda juga boleh membuka fail pembuangan proses mod pengguna dengan alat nyahpepijat.

Untuk nyahpepijat kernel, dua penyahpepijat boleh digunakan: satu yang berjalan dalam tetingkap baris arahan (Kd.exe) dan satu yang mempunyai antara muka pengguna grafik (GUI) (Windbg.exe). Kedua-dua penyahpepijat menyediakan set arahan yang sama, jadi pilihan sepenuhnya adalah pilihan peribadi. Alat ini membolehkan anda melakukan tiga jenis penyahpepijatan kernel:

  • Buka fail pembuangan ranap, dibuat akibat daripada ranap sistem.
  • Sambung ke sistem yang sedang berjalan dan periksa keadaan sistem (atau tetapkan titik putus jika anda menyahpepijat kod pemacu peranti). Operasi ini memerlukan dua komputer - sasaran dan tuan. Komputer sasaran mengandungi sistem yang sedang dinyahpepijat, dan komputer induk mengandungi sistem yang digunakan penyahpepijat. Sistem sasaran boleh disambungkan ke sistem induk melalui kabel modem null, IEEE 1394 atau kabel pembangunan wayar USB 2.0. Sistem sasaran mesti dibut dalam mod nyahpepijat (sama ada dengan menekan F8 semasa but dan memilih Mod Nyahpepijat, atau dengan mengkonfigurasi sistem untuk bermula dalam mod nyahpepijat menggunakan Bcdedit atau Msconfig.exe). Anda juga boleh menyambung melalui paip bernama, yang digunakan semasa menyahpepijat melalui mesin maya (dicipta oleh alatan seperti Hyper-V, Virtual PC atau VMWare), dengan mendedahkan sistem pengendalian tetamu kepada port bersiri sebagai peranti saluran bernama.
  • Sistem Windows juga membolehkan anda menyambung ke sistem tempatan dan menyiasat keadaannya. Ini dipanggil "penyahpepijatan kernel tempatan". Untuk memulakan penyahpepijatan kernel secara setempat menggunakan penyahpepijat WinDbg, buka menu Fail, pilih Nyahpepijat Kernel, klik tab Setempat, dan kemudian klik OK. Sistem sasaran mesti dibut dalam mod nyahpepijat. Contoh skrin yang muncul dalam kes ini ditunjukkan dalam Rajah. 1.6. Sesetengah arahan penyahpepijat kernel tidak berfungsi dalam mod penyahpepijatan kernel tempatan (contohnya, arahan .dump, direka bentuk untuk mencipta dump memori, walaupun dump sedemikian boleh dibuat menggunakan alat LiveKd yang dibincangkan di bawah).

Penyahpepijatan kernel tempatan

Untuk memaparkan kandungan struktur dalaman data, termasuk maklumat tentang benang, proses, paket permintaan I/O dan maklumat pengurusan memori, selepas menyambung ke mod nyahpepijat kernel, anda boleh menggunakan salah satu daripada banyak arahan sambungan penyahpepijat (arahan yang bermula dengan aksara “!”).

Alat bantu yang sangat baik bahan rujukan Fail Debugger.chm, yang terkandung dalam folder pemasangan penyahpepijat WinDbg, boleh digunakan. Ia menyediakan dokumentasi untuk semua kefungsian dan sambungan debugger kernel. Selain itu, perintah dt (jenis paparan) boleh memformat lebih 1000 struktur kernel kerana fail simbol kernel Windows mengandungi maklumat jenis yang boleh digunakan oleh penyahpepijat untuk memformat struktur.

Eksperimen: Memaparkan maklumat jenis untuk struktur kernel.

Untuk menyenaraikan struktur kernel yang maklumat jenisnya disertakan dalam simbol kernel, taip dt nt!_* dalam debugger kernel. Output sampel separa kelihatan seperti ini:

lkd> dt nt!_*

nt!_IMAGE_NT_HEADERS

nt!_IMAGE_FILE_HEADER

nt!_IMAGE_OPTIONAL_HEADER

nt!_IMAGE_NT_HEADERS

nt!_LARGE_INTEGER

Anda juga boleh menggunakan arahan dt untuk mencari struktur tertentu, menggunakan keupayaan kad bebas arahan itu. Sebagai contoh, jika anda sedang mencari nama struktur untuk objek gangguan, anda perlu menaip perintah dt nt!_*interrupt*:

lkd> dt nt!_*menyampuk*

nt!_MOD_KERAP

nt!_KINTERRUPT_POLARITI

nt!_UNEXPECTED_INTERRUPT

Kemudian, seperti yang ditunjukkan dalam contoh berikut, arahan dt boleh digunakan untuk memformat struktur tertentu:

lkd> dt nt!_kinterrupt

0x000 Jenis: Int2B

0x002 Saiz: Int2B

0x018 ServiceRoutine: Ptr64 unsigned char

0x020 MessageServiceRoutine: Ptr64 unsigned char

0x028 MessageIndex: Uint4B

0x030 Konteks Perkhidmatan: Ptr64 Void

0x038 SpinLock: Uint8B

0x040 TickCount: Uint4B

0x048 ActualLock: Ptr64 Uint8B

0x050 DispatchAddress: Ptr64 batal

0x058 Vektor: Uint4B

0x05c Irql: UChar

0x05d SynchronizeIrql: UChar

0x05e FloatingSave: UChar

0x05f Disambungkan: UChar

Nombor 0x060: Uint4B

0x064 ShareVector: UChar

0x065 Pad: Char

Mod 0x068: _KINTERRUPT_MODE

Kekutuban 0x06c: _KINTERRUPT_POLARITI

0x070 ServiceCount: Uint4B

0x074 DispatchCount: Uint4B

0x078 Rsvd1: Uint8B

0x080 TrapFrame: Ptr64_KTRAP_FRAME

0x088 Terpelihara: Ptr64 Void

0x090 Kod Penghantaran: Uint4B

Perlu diingatkan bahawa apabila melaksanakan perintah dt, substruktur (struktur dalam struktur) tidak ditunjukkan secara lalai. Untuk melakukan pengulangan substruktur, anda perlu menggunakan suis –r. Sebagai contoh, gunakan kekunci ini untuk memaparkan objek gangguan kernel, menunjukkan format struktur _LIST_ENTRY yang disimpan dalam medan InterruptListEntry:

lkd> dt nt!_kinterrupt -r

0x000 Jenis: Int2B

0x002 Saiz: Int2B

0x008 InterruptListEntry: _LIST_ENTRY

0x000 Flink: Ptr64 _LIST_ENTRY

0x008 Kelip: Ptr64 _LIST_ENTRY

0x000 Flink: Ptr64 _LIST_ENTRY

0x008 Kelip: Ptr64 _LIST_ENTRY

Fail bantuan Alat Nyahpepijat untuk Windows juga menerangkan cara mengkonfigurasi dan menggunakan penyahpepijat kernel. Butiran tambahan tentang menggunakan penyahpepijat kernel yang ditujukan terus kepada penulis pemacu peranti boleh didapati dalam dokumentasi untuk Set tetingkap Kit Pemandu.

Selepas modul perisian telah berjaya diterjemahkan, diletakkan di alamat tertentu dan disambungkan, anda boleh menggunakan mana-mana kaedah berikut untuk nyahpepijat atur cara:

  • emulator dalam litar
  • penyahpepijat perisian terbina dalam
  • penyahpepijat perisian luaran
  • peranti sedang dinyahpepijat dengan atur cara yang direkodkan dalam ingatan kod binari program

Emulator dalam litar dengan paparan pembolehubah bahasa pengaturcaraan pada paparan komputer memberikan bantuan penting dalam menyahpepijat atur cara terus pada peralatan yang sedang dibangunkan. Kaedah penyahpepijatan ini menyediakan persekitaran yang paling mudah apabila anda boleh menghentikan program secara langsung dalam peranti yang sedang dinyahpepijat, mengawal pelaksanaan program secara langsung daripada teks sumber program, keadaan port luaran dan pembolehubah dalaman, kedua-duanya termasuk dalam cip dan diisytiharkan semasa penulisan teks sumber program. Ambil perhatian bahawa apabila menyahpepijat atur cara menggunakan emulator dalam litar, anda mesti menyertakan modul objek maklumat simbolik. Peralatan yang diperlukan untuk program nyahpepijat ditunjukkan dalam Rajah 1.


Rajah 1. Contoh sistem penyahpepijatan perisian untuk mikropengawal

Sehingga baru-baru ini, emulator dalam litar ialah peranti berasingan yang disambungkan ke papan yang sedang dibangunkan dan bukannya mikropengawal. Mikropengawal moden selalunya termasuk emulator litar terbina dalam. Pada masa yang sama, antara muka yang paling mudah untuk komunikasi dengan komputer ialah antara muka JTAG, walaupun sesetengah pengeluar cip menawarkan antara muka mereka sendiri.

Apabila menggunakan persekitaran pengaturcaraan bersepadu, ia disediakan antara muka mesra pengguna, membolehkan anda menyahpepijat program yang sedang dibangunkan dengan mudah. Pada masa ini, antara muka yang serupa dengan cangkerang Visual C telah menjadi standard de facto. Contoh penampilan Cangkang perisian sedemikian ditunjukkan dalam Rajah 2.



Rajah 2. Contoh penampilan penyahpepijat sistem penyahpepijatan perisian bersepadu

Penyahpepijat perisian terbina dalam, yang merupakan sebahagian daripada persekitaran pengaturcaraan bersepadu, tidak membenarkan anda mengawal operasi peralatan yang disambungkan ke kaki luar mikropengawal, tetapi ia mengurangkan dengan ketara kos kompleks penyahpepijatan yang diperlukan untuk menulis program untuk mikropengawal. Isyarat bahawa peralatan harus menghantar kepada mikropengawal ditetapkan oleh pengaturcara sendiri (yang bermaksud bahawa sudah pada peringkat ini ralat mungkin berlaku disebabkan oleh pemahaman yang betul pengendalian peralatan). Memasukkan isyarat ini secara manual melambatkan proses penyahpepijatan perisian dengan ketara.

Penyahpepijat perisian luaran. Dalam sesetengah kes, bukan persekitaran pengaturcaraan bersepadu digunakan, tetapi penterjemah yang berasingan daripada bahasa pengaturcaraan yang dipilih. Dalam kes ini, anda boleh menggunakan mana-mana program yang meniru jenis mikropengawal yang dipilih. Memandangkan format objek pelbagai penterjemah agak berbeza antara satu sama lain, modul beban dalam format binari atau perenambelasan digunakan sebagai fail input. Dalam format ini, maklumat penyahpepijatan tidak hadir sepenuhnya, jadi penyahpepijatan dalam program sedemikian hanya boleh dilakukan menggunakan pembongkar terbina dalam dan penyenaraian atur cara yang dicetak (atau dibuka dalam tetingkap lain). Sememangnya, ini adalah kaedah penyahpepijatan yang lebih menyusahkan berbanding menggunakan persekitaran pengaturcaraan bersepadu dan emulator dalam litar.

Pengaturcaraan litar mikro. Apabila menggunakan mana-mana kaedah penyahpepijatan atur cara, modul beban siap ditulis kepada ingatan dalaman atur cara mikropengawal menggunakan pengaturcara (yang termasuk dalam banyak cip mikropengawal moden). Selepas ini, peranti yang dibangunkan diuji dengan teliti untuk mengesan ralat dalam litar dan program peranti ini. Hanya selepas berjaya melepasi ujian ini barulah program dianggap ditulis sepenuhnya dan dinyahpepijat.

Cukup bila menulis program mudah kadangkala hanya yang ini digunakan untuk menyahpepijat atur cara peringkat akhir ujian. Walau bagaimanapun, mengesan, mencari dan menghapuskan ralat hanya menggunakan kaedah ini adalah sangat intensif buruh! Ini adalah sama seperti cuba menyediakan peralatan tanpa menggunakan instrumen!

Dokumentasi ini telah diarkibkan dan tidak lagi diselenggara.

WinPE: Penyahpepijatan Aplikasi

Untuk nyahpepijat aplikasi serta kernel dalam Windows PE, anda boleh menggunakan penyahpepijat Windows seperti Ntsd.exe, Cdb.exe, Windbg.exe dan alatan sokongan. Alat penyahpepijatan disertakan dalam Windows 10 SDK. Untuk menyediakan alat penyahpepijatan pada komputer yang menjalankan Windows PE, anda mesti menyalinnya ke cakera tempatan atau berkongsi.

Untuk nyahpepijat Windows PE dari jauh, anda mungkin perlu melumpuhkan tembok api terbina dalam pada komputer anda:

wpeutil disablefirewall

Penyahpepijatan dalam mod pengguna

Untuk melaksanakan penyahpepijatan mod pengguna, cara paling mudah ialah memulakan pelayan dalam proses pada komputer yang menjalankan Windows PE dan menyambungkannya menggunakan penyahpepijat pada komputer lain. Pelayan Proses disertakan dalam Alat Penyahpepijatan dalam Windows 10 SDK.

Menjalankan pelayan dalam proses dalam mod pengguna

    Salin Alat Pelayan Proses Nyahpepijat Windows dbgsrv.exe daripada folder alat penyahpepijatan SDK Windows 10 (contohnya, C \Windows Kits\10.0\Debuggers\x64 files \Program (x86) kepada komputer yang menjalankan Windows PE.

    DALAM baris arahan Windows PE melumpuhkan firewall.

    wpeutil disablefirewall

    Mulakan pelayan penyahpepijatan dalam proses Windows, nyatakan kaedah sambungan ke komputer, contohnya port TCP:

    dbgsrv.exe –t tcp:port=1234

    Mengaktifkan pelayan proses (penyahpepijat Windows).

    hidup komputer jauh Gunakan pelayan dalam proses untuk menyambung atau menjalankan proses dalam Windows PE pada komputer destinasi:

    windbg -premote tcp:server=Server, port=1234

    Untuk maklumat lanjut, lihat Mengaktifkan Pelanggan Pintar (Windows Debuggers).

Anda juga boleh menjalankan penyahpepijat terus pada komputer yang menjalankan Windows PE. Walau bagaimanapun, ini memerlukan anda untuk mengkonfigurasi simbol dan laluan sumber setiap kali anda but semula komputer Windows PE ini. Kami mengesyorkan penyahpepijatan daripada komputer yang sedang berjalan penuh versi Windows seperti yang diterangkan dalam prosedur ini.

Prosedur ini boleh digunakan jika anda ingin memintas startnet.cmd atau setup.exe dan pergi terus ke penyahpepijatan daripada baris arahan. Ini sepenuhnya menghapuskan permulaan, termasuk pemasangan, dan tidak melaksanakan arahan seperti Wpeinit.exe. Prosedur mesti dilakukan dalam talian pada sistem pengendalian yang bersambung.

Dayakan penyahpepijatan mod pengguna sebelum permulaan

    Padam fail winpeshl.ini jika ada. Jika fail winpeshl.ini tidak wujud, penyahpepijatan mod pengguna tersedia secara lalai.

    Semasa memuatkan, tahan Kekunci CTRL sehingga command prompt muncul. Baris arahan muncul pada skrin.

    Mulakan nyahpepijat.

Penyahpepijatan dalam Mod Kernel

Untuk melakukan penyahpepijatan mod kernel, ia mesti didayakan sebelum sistem but. Fail konfigurasi but mempunyai pilihan penyahpepijatan mod kernel yang boleh didayakan dengan menggunakan alat baris arahan bcdedit.exe untuk menukar stor data konfigurasi but. Penyahpepijatan mod kernel hanya boleh dilakukan menggunakan bcdedit.exe. Bcdedit.exe terletak bahagian Windows dalam direktori \Windows\System32.

Pilihan penyahpepijat lalai kelihatan seperti ini:

Pengecam (dbgsettings) debugtype Serial debugport 1 baudrate 115200

Sebelum mencipta imej ISO untuk mesin maya, dayakan kernel dengan entri data konfigurasi but.

Untuk maklumat tentang menukar stor data konfigurasi but lalai (default.bcd), lihat Cara Menukar Stor Data Konfigurasi But Menggunakan Bcdedit.

Dayakan penyahpepijatan mod kernel

    Cari stor data konfigurasi but, yang terletak dalam fail bernama bcd. Fail ini terletak dalam direktori but pada akar media yang mengandungi imej Windows PE.

    Pada gesaan arahan, masukkan perintah bcdedit berikut untuk menetapkan bendera nyahpepijat stor data konfigurasi but yang digunakan untuk but imej untuk dinyahpepijat.


Pengenalan 2

Definisi pengaturcaraan. Peringkat membuat program 3

Menyahpepijat atur cara 6

Masalah 2 dan 3 9

Masalah 4 dan 5 12

Kesimpulan 14

Senarai literatur terpakai 15

pengenalan

Peralatan komputer dan teknologi komputer telah sebati dengan kehidupan manusia. Pembangunan kemajuan saintifik dan teknologi adalah mustahil tanpa automasi proses pengkomputeran. Ia adalah keperluan untuk mengautomasikan proses pengkomputeran yang menjadi dorongan awal untuk pembangunan pengaturcaraan.

Teknologi pengaturcaraan tradisional telah dibentuk pada waktu subuh Teknologi komputer, apabila pengguna mempunyai sumber komputer yang terhad pada pelupusan mereka, dan pembangun program pada masa yang sama adalah pengguna utamanya. Di bawah keadaan ini, perhatian utama diberikan untuk mendapatkan program yang berkesan dalam erti kata penggunaan sumber komputer secara optimum.

Pada masa kini, apabila skop aplikasi komputer telah berkembang dengan pesat, pembangunan dan pengendalian program dijalankan, sebagai peraturan, oleh orang yang berbeza. Oleh itu, bersama-sama dengan kecekapan, ciri-ciri penting lain program seperti kebolehfahaman, dokumentasi yang baik, kebolehpercayaan, fleksibiliti, kemudahan penyelenggaraan, dan lain-lain menjadi perhatian. Masalah membangunkan program dengan kualiti sedemikian dijelaskan oleh kerumitan proses pengaturcaraan.

Untuk mencipta program, ia menjadi perlu untuk mematuhi prinsip tertentu dan teknologi pengaturcaraan baharu.

Pada masa kini, disebabkan kemajuan berterusan teknologi komputer, pengaturcaraan dimainkan peranan penting dalam kehidupan manusia.

Definisi pengaturcaraan. Peringkat membuat program

Untuk membolehkan komputer menyelesaikan masalah, ia perlu menerima arahan daripada seseorang tentang cara menyelesaikannya; satu set arahan sedemikian untuk komputer yang bertujuan untuk menyelesaikan masalah dipanggil program.

Pengaturcaraan ialah proses mencipta program atau perisian komputer menggunakan bahasa pengaturcaraan. Pengaturcaraan menggabungkan unsur-unsur sains asas seperti matematik, matematik tinggi dan kejuruteraan.

Bahasa pengaturcaraan ialah sistem tanda formal yang direka untuk menulis atur cara. Sejak penciptaan mesin boleh atur cara pertama, manusia telah menghasilkan lebih daripada lapan setengah ribu bahasa pengaturcaraan. Setiap tahun bilangan mereka diisi semula dengan yang baru. Hanya tahu menggunakan beberapa bahasa bilangan kecil pemaju mereka sendiri, yang lain dikenali oleh berjuta-juta orang. Pengaturcara profesional kadangkala menggunakan lebih daripada sedozen bahasa pengaturcaraan yang berbeza dalam kerja mereka.

Dalam proses mencipta sebarang program, urutan peringkat berikut boleh dibezakan:

Peringkat 1. Pernyataan masalah: pada peringkat ini, seseorang yang mempunyai pemahaman yang baik tentang bidang subjek masalah terlibat. Dia mesti menentukan dengan jelas matlamat, objektif, memberikan penerangan lisan tentang kandungan masalah dan mencadangkan pendekatan umum untuk penyelesaiannya, menganalisis sifat dan intipati semua kuantiti yang digunakan dalam masalah, dan menentukan keadaan di mana ia diselesaikan. , dengan kata lain, pada peringkat ini keadaan masalah terbentuk . Peringkat ini sangat penting, kerana kejayaan pelaksanaan program yang dibuat terutamanya bergantung pada pemahaman yang betul tentang matlamat dan keperluan.

Peringkat 2. Analisis dan pemodelan masalah: Matlamat peringkat ini ialah model matematik atau rumusan matematik. Pada peringkat ini perkara-perkara berikut dilakukan

1) Data sumber dan jenisnya ditentukan.

2) Penyelesaian kepada masalah diterangkan dalam bentuk kebergantungan analitikal (persamaan, fungsi).

3) Data akhir dan jenisnya ditentukan.

Dengan cara ini, model matematik dibentuk dengan ketepatan, andaian dan batasan tertentu. Dalam kes ini, bergantung kepada spesifik masalah yang diselesaikan, pelbagai bahagian matematik dan disiplin lain boleh digunakan.

Peringkat 3. Algoritma masalah dan merangka gambar rajah blok: dilakukan berdasarkan penerangan matematik program. hidup di fasa ini algoritma untuk menyelesaikan masalah disusun mengikut tindakan yang ditentukan oleh kaedah penyelesaian yang dipilih. Proses pemprosesan data dibahagikan kepada blok berasingan, agak bebas, dan urutan pelaksanaan blok ditetapkan. Gambar rajah blok algoritma sedang dibangunkan.

Peringkat 4. Pengaturcaraan: Pada peringkat ini, algoritma untuk menyelesaikan masalah diterjemahkan ke dalam bahasa pengaturcaraan tertentu. Bahasa peringkat tinggi biasanya digunakan untuk pengaturcaraan, jadi program yang disusun memerlukan terjemahan ke dalam bahasa mesin. Selepas terjemahan sedemikian, program mesin yang sepadan dilaksanakan.

Peringkat 5. Menyahpepijat dan menguji atur cara: terdiri daripada mencari dan menghapuskan ralat sintaksis dan logik dalam atur cara.

Semasa kawalan sintaksis program, penterjemah mengenal pasti binaan dan gabungan simbol yang tidak boleh diterima dari sudut pandangan peraturan pembinaan atau penulisannya yang diterima pakai dalam bahasa tertentu. Komputer mengeluarkan mesej ralat kepada pengaturcara, dan jenis serta bentuk mesej tersebut bergantung pada jenis bahasa dan versi penterjemah yang digunakan. Selepas menghapuskan ralat sintaks, logik program disemak semasa pelaksanaannya dengan data sumber tertentu.

Peringkat 6. Pelaksanaan program nyahpepijat dan analisis keputusan: selepas penyahpepijatan program, ia boleh digunakan untuk menyelesaikan masalah aplikasi. Dalam kes ini, masalah biasanya diselesaikan beberapa kali pada komputer untuk set data awal yang berbeza. Keputusan yang diperolehi ditafsir dan dianalisis oleh pakar atau pengguna yang menetapkan tugas.

Menyahpepijat program

Walaupun fakta bahawa penciptaan program berlaku dalam beberapa peringkat, yang paling penting dan memakan masa adalah peringkat debugging dan menguji program. Pada peringkat ini semua ralat logik dan sintetik dalam program yang dibuat dihapuskan.

Penyahpepijatan ialah aktiviti yang bertujuan untuk mengesan dan membetulkan ralat dalam atur cara.

Pengujian ialah proses melaksanakan program pada set data tertentu yang hasil aplikasinya diketahui terlebih dahulu atau peraturan tingkah laku program ini diketahui. Oleh itu, penyahpepijatan boleh diwakili sebagai pengulangan berulang tiga proses: ujian, akibatnya kehadiran ralat dapat ditentukan, mencari lokasi ralat dalam program, dan mengedit program dan dokumentasi untuk menghapuskan ralat yang dikesan. Oleh itu, semua perkara di atas boleh diwakili oleh formula:

Nyahpepijat = Menguji + Mencari ralat + Mengedit.

Kejayaan penyahpepijatan sebahagian besarnya ditentukan oleh organisasi ujian yang rasional. Semasa nyahpepijat, ralat ditemui dan dihapuskan, terutamanya, kehadirannya ditubuhkan semasa ujian. Seperti yang telah dinyatakan, ujian tidak dapat membuktikan ketepatan program; paling baik, ia boleh menunjukkan kehadiran ralat di dalamnya. Oleh itu, dua masalah timbul. Pertama: sediakan set ujian sedemikian untuk mengesan, jika boleh, bilangan yang lebih besar kesilapan. Walau bagaimanapun, semakin lama proses ujian berterusan, semakin tinggi kos program tersebut. Oleh itu tugas kedua: untuk menentukan penghujung penyahpepijatan. Tanda bahawa penyahpepijatan boleh diselesaikan ialah liputan lengkap ujian yang dilalui melalui atur cara, dan kejadian ralat yang agak jarang berlaku dalam atur cara yang diuji pada peringkat terakhir proses ujian.

Terdapat pelbagai pendekatan dan cara penyahpepijatan; alat utama ialah penyahpepijat perisian terbina dalam, yang termasuk antara muka pengguna untuk pelaksanaan langkah demi langkah program: pernyataan demi pernyataan, fungsi mengikut fungsi, dengan hentian pada beberapa baris kod sumber atau apabila keadaan tertentu dicapai.

Selain menggunakan penyahpepijat perisian terbina dalam, terdapat kaedah lain untuk menyahpepijat atur cara: menggunakan emulator dalam litar, nyahpepijat menggunakan penyahpepijat perisian luaran dan peranti nyahpepijat dengan kod perduaan atur cara yang direkodkan dalam memori program.

Emulator dalam litar dengan pembolehubah bahasa pengaturcaraan dipaparkan pada paparan komputer memberikan bantuan penting dalam menyahpepijat atur cara terus pada peralatan yang dibangunkan. Kaedah penyahpepijatan ini menyediakan persekitaran yang paling mudah apabila anda boleh menghentikan program secara langsung dalam peranti yang sedang dinyahpepijat, mengawal pelaksanaan program secara langsung daripada teks sumber program, keadaan port luaran dan pembolehubah dalaman, kedua-duanya termasuk dalam cip dan diisytiharkan semasa menulis teks sumber program. Sehingga baru-baru ini, emulator dalam litar ialah peranti berasingan yang disambungkan ke papan yang sedang dibangunkan.

Penyahpepijat perisian terbina dalam, yang merupakan sebahagian daripada persekitaran pengaturcaraan bersepadu, sangat memudahkan proses penyahpepijatan atur cara. Tetapi pada masa yang sama ia perlahan dengan ketara.

Penyahpepijat perisian luaran. Dalam sesetengah kes, bukan persekitaran pengaturcaraan bersepadu digunakan, tetapi penterjemah yang berasingan daripada bahasa pengaturcaraan yang dipilih. Oleh kerana format objek penterjemah yang berbeza agak berbeza antara satu sama lain, modul beban dalam format binari digunakan sebagai fail input.

Program penyahpepijatan terdiri daripada menyemak operasi program dan perkakasan yang betul. Program yang tidak mengandungi ralat sintaks mungkin, walau bagaimanapun, mengandungi ralat logik yang menghalang atur cara daripada melaksanakan fungsi yang dimaksudkan. Ralat logik mungkin dikaitkan dengan algoritma program atau dengan salah faham tentang pengendalian peralatan yang disambungkan ke port mikropengawal.

Penyahpepijat terbina dalam persekitaran pengaturcaraan bersepadu membolehkan anda menyahpepijat bahagian-bahagian kod program yang tidak bergantung pada pengendalian peralatan yang bukan sebahagian daripada cip mikropengawal. Ia biasanya merujuk kepada penilaian ungkapan matematik atau penukaran format perwakilan data. Pengaturcaraan ialah " penyahpepijatan" program, iaitu pengesanan dan pembetulan ralat yang dibuat apabila Pengaturcaraan Perkara utama penyahpepijatan ...

  • Pascal Penyahpepijatan program

    Abstrak >> Sains Komputer

    Pengendali logik dan pengendali gelung. Penyahpepijatan program. Bentuk pendek bagi pernyataan if ialah... if. Persekitaran bermaksud pengaturcaraan Untuk penyahpepijatan program Persekitaran Borland Pascal... beberapa terbina dalam alatan penyahpepijatan program. Dengan sebahagian daripada mereka...

  • Program untuk pengiraan gaji dan cukai untuk pekerja syarikat

    Abstrak >> Ekonomi

    Perisian: kajian pernyataan masalah; pengaturcaraan Dan penyahpepijatan program; penerangan kes ujian; bersama-sama dengan... masa komputer di penyahpepijatan program ditentukan dengan mendarab masa sebenar penyahpepijatan program untuk harga...

  • Pelaksanaan dan penyahpepijatan program dalam persekitaran bersepadu pengaturcaraan Turbo Pascal (MS-Dos)

    Kerja makmal >> Sains komputer, pengaturcaraan

    Penggunaan praktikal persekitaran bersepadu pengaturcaraan bagi tujuan memenuhi dan penyahpepijatan program dalam bahasa Pascal. TEORI... MAKLUMAT Komponen asas sistem pengaturcaraan Turbo...

  • 2. Alat penyahpepijatan aktif

    2.1. Seni bina alat penyahpepijatan aktif

    Secara umum, penyahpepijat silang terdiri daripada 2 modul utama: pengurus pada platform alat dan ejen penyahpepijatan pada bahagian sasaran. Pengurus berfungsi untuk memastikan antaramuka pengguna, iaitu, untuk menerima arahan, memprosesnya dan menghantarnya ke bahagian sasaran, serta untuk menerima, memproses dan mengeluarkan maklumat daripada ejen yang bekerja secara langsung dengan sistem yang dinyahpepijat. Keupayaan ejen penyahpepijatan bergantung pada ciri-ciri seni bina sistem, iaitu:

    Adakah sistem mempunyai alat penyahpepijatan terbina dalam (dalam kes ini, ejen hanya perlu memanggil fungsi yang sesuai dan menghantar hasilnya kepada pengurus);

    Apakah peluang yang disediakan untuk mewujudkan pengendali (untuk mengawal peristiwa yang berlaku, ejen mungkin memerlukan pengendalinya sendiri);

    Apakah panggilan fungsi yang dibenarkan untuk dibuat oleh ejen?

    Di samping itu, ejen nyahpepijat mesti menyokong keupayaan untuk menerima dan menghantar maklumat daripada ejen pseudo yang dibina ke dalam kod program yang sedang dinyahpepijat. Ejen penyahpepijatan boleh terdiri daripada beberapa modul, contohnya, satu mengumpul data, satu lagi melakukan penapisan, dan yang ketiga menghantar data kepada pengurus.

    Struktur umum penyahpepijat silang aktif ditunjukkan dalam Rajah. 2.

    nasi. 2. Penyahpepijat silang aktif

    Mari kita lihat protokol ejen pengurus menggunakan penyahpepijat VxGDB (Sistem Sungai Angin, sistem sasaran- VxWorks). Protokol ini adalah berdasarkan RPC (Remote Procedure Call). Permintaan pengurus boleh dikelaskan seperti berikut:

    Ini termasuk permintaan untuk memuatkan modul, permintaan untuk mendapatkan maklumat tentang fail but dan permintaan untuk mendapatkan maklumat tentang simbol tersebut.

    Ini adalah permintaan untuk memulakan, menghentikan dan memadam tugas, untuk dilampirkan dan ditanggalkan menjalankan tugas, untuk menetapkan dan mengalih keluar titik putus, untuk terus melaksanakan tugas yang dihentikan.

    3. ptrace permintaan

    Ejen nyahpepijat meniru fungsi ptrace dan menghantar permintaan baca dan tulis yang sesuai kepadanya.

    Daripada buku Menyahpepijat Sistem Masa Nyata [Semakan] pengarang Kostyukhin K A

    2.1. Seni bina alat penyahpepijat aktif Secara amnya, penyahpepijat silang terdiri daripada 2 modul utama: pengurus pada platform alat dan ejen penyahpepijat pada bahagian sasaran. Pengurus berfungsi untuk menyediakan antara muka pengguna, iaitu, untuk menerima arahan, mereka

    Daripada buku Sains Komputer dan Teknologi maklumat: Nota kuliah pengarang Tsvetkova A V

    4. Menyahpepijat daftar Ini sangat kumpulan yang menarik daftar yang dimaksudkan untuk penyahpepijatan perkakasan. Alat penyahpepijatan perkakasan pertama kali muncul dalam mikropemproses i486. Dalam perkakasan, mikropemproses mengandungi lapan daftar nyahpepijat, tetapi dalam realiti sahaja

    Daripada buku Sains Komputer dan Teknologi Maklumat pengarang Tsvetkova A V

    46. ​​Daftar Nyahpepijat Ini adalah kumpulan daftar yang sangat menarik yang direka untuk penyahpepijatan perkakasan. Alat penyahpepijatan perkakasan pertama kali muncul dalam mikropemproses i486. Dalam perkakasan, mikropemproses mengandungi lapan daftar nyahpepijat, tetapi dalam realiti sahaja

    Daripada buku Office 2007. Kursus Multimedia pengarang Medinov Oleg

    Memformat sel aktif Anda boleh menyesuaikan pembentangan data dalam mana-mana sel atau julat mengikut budi bicara anda, iaitu memformatkan sel aktif atau julat yang dipilih. Untuk pergi ke mod ini, jalankan arahan menu konteks Format Sel

    Daripada buku Windows Script Host untuk Windows 2000/XP pengarang Popov Andrey Vladimirovich

    Lampiran 3 Alat untuk membangunkan dan menyahpepijat skrip Pada dasarnya, anda boleh mencipta skrip dalam Windows Notepad atau dalam penyunting teks cangkerang fail seperti Pengurus Jauh, dan nyahpepijatnya dengan memaparkan nilai pembolehubah pada skrin di tempat yang betul dalam skrip (kaedah objek Echo

    Daripada buku Pembangunan Aplikasi dalam Persekitaran Linux. Edisi kedua pengarang Johnson Michael K.

    Bab 7 Alat Penyahpepijatan Memori Walaupun C sudah pasti bahasa standard pengaturcaraan dalam sistem Linux, ia mempunyai beberapa ciri yang menghalang pengaturcara daripada menulis kod yang tidak mengandungi ralat halus, yang kemudiannya sangat

    Daripada buku VBA for Dummies oleh Steve Cummings

    Kombinasi kekunci untuk penyahpepijatan Dalam jadual. Jadual 9.1 menyenaraikan kombinasi kekunci yang digunakan semasa menyahpepijat. Saya akan mempertimbangkan setiap daripada mereka secara terperinci kemudian dalam bab ini. Pelaksanaan kod baris demi baris (langkah demi langkah) Pelaksanaan kod baris demi baris tanpa pelaksanaan baris demi baris

    Daripada buku Pengaturcaraan PDA dan Telefon Pintar pada Rangka Kerja Padat .NET pengarang Klimov Alexander P.

    Program untuk aplikasi nyahpepijat Bab ini akan membincangkan utiliti yang diperlukan untuk berjaya memprogramkan aplikasi peranti mudah alih. Mungkin yang paling penting daripada utiliti ini ialah emulator perisian Device Emulator. Di samping itu, komposisi Studio Visual 2005 termasuk

    Dari buku Linux: Panduan Lengkap pengarang Kolisnichenko Denis Nikolaevich

    21.1.7. Pilihan Penyahpepijatan Jika anda ingin menggunakan penyahpepijat seperti gdb untuk menyahpepijat atur cara anda, nyatakan pilihan -g apabila menggunakan pengkompil. Pilihan ini diletakkan dalam fail yang disusun maklumat penyahpepijatan, akibatnya saiz fail meningkat dengan ketara. sebab tu

    Daripada buku Pengaturcaraan Linux dengan Contoh pengarang Robbins Arnold

    15.2. Menyusun untuk Penyahpepijatan Untuk menggunakan penyahpepijat kod sumber, penyahpepijat fail boleh laku mesti disusun dengan pilihan pengkompil -g. Pilihan ini menyebabkan pengkompil membenamkan pengecam penyahpepijatan tambahan ke dalam kod objek; itu dia

    Daripada buku Pengaturcaraan untuk Linux. Pendekatan profesional oleh Mitchell Mark

    15.4. Pengaturcaraan untuk Penyahpepijatan Terdapat banyak teknik yang tersedia untuk menjadikan kod sumber penyahpepijatan lebih mudah, daripada mudah kepada kompleks. Dalam bahagian ini kita akan melihat beberapa

    Daripada buku UNIX: Development aplikasi rangkaian pengarang Stephens William Richard

    15.7. Peraturan Penyahpepijatan Penyahpepijatan bukanlah ilmu hitam. Prinsip dan tekniknya boleh dipelajari dan diterapkan secara konsisten oleh sesiapa sahaja. Untuk tujuan ini, kami mengesyorkan buku Penyahpepijatan oleh David J. Agans (ISBN: 0-8144-7168-4). Buku ini mempunyai laman web yang meringkaskan peraturan dan

    Dari buku Perihalan bahasa PascalABC.NET pengarang Pasukan RuBoard

    A.2.6. Memilih Alat Penyahpepijatan Kami melihat empat alat yang berbeza dan saling tidak serasi untuk mendiagnosis kes penggunaan yang salah. ingatan dinamik. Tiada alat yang dijamin untuk mencari semua ralat, tetapi ia lebih baik daripada ketiadaan sepenuhnya

    Daripada buku The Ideal Programmer. Bagaimana untuk menjadi profesional pembangunan perisian pengarang Martin Robert S.

    Lampiran B Teknik Nyahpepijat Lampiran ini mengandungi beberapa garis panduan dan teknik untuk menyahpepijat aplikasi rangkaian. Tiada kaedah di atas adalah ubat mujarab untuk semua masalah yang mungkin, walau bagaimanapun, terdapat banyak alat yang digunakan

    Dari buku pengarang

    Bahagian penyahpepijatan Dalam versi 4.9 Buku Tugas Pengaturcaraan, alat telah muncul yang membolehkan anda memaparkan maklumat penyahpepijatan terus dalam tetingkap buku tugas (dalam bahagian khas penyahpepijatan). Keperluan untuk sedemikian dana tambahan timbul terutamanya apabila bekerja dengan

    Dari buku pengarang

    Masa Penyahpepijatan Atas sebab yang tidak diketahui, pembangun tidak menganggap penyahpepijatan sebagai bahagian semula jadi dalam proses pembangunan. Nampaknya mereka bahawa penyahpepijatan adalah serupa dengan keperluan fisiologi: mereka melakukannya semata-mata kerana ia tidak dapat dielakkan. Walau bagaimanapun, masa penyahpepijatan membebankan syarikat dengan tepat