Дибаг хийх exe 64 бит програмыг татаж аваарай. Windows-д зориулсан дибаг хийх хэрэгслийг суулгаж байна. Элсэлтийн асуултууд

Дибаг хийх Хэрэгслүүд Windows- Үйлдлийн код дибаг хийх хэрэгслүүд Windows системүүд. Эдгээр нь хэрэглэгчийн горим болон цөмийн горимын кодыг дибаг хийхэд зориулагдсан Microsoft-оос чөлөөтэй тараагдсан програмуудын багц юм: програмууд, драйверууд, үйлчилгээнүүд, цөмийн модулиуд. Хэрэгслийн хэрэгсэлд консол болон GUI горимын дибаггер, тэмдэгтүүдтэй ажиллах хэрэгслүүд, файлууд, процессууд, алсаас дибаг хийх хэрэгслүүд орно. Хэрэгслийн хэрэгсэл нь янз бүрийн системийн бүрэлдэхүүн хэсгүүдийн эвдрэлийн шалтгааныг олоход ашиглаж болох хэрэгслүүдийг агуулдаг. Windows-д зориулсан дибаг хийх хэрэгслүүдтодорхой цэгээс эхлэн бие даасан түгээлтийн хэлбэрээр татаж авах боломжгүй бөгөөд Windows SDK (Windows Software Development Kit)-ийн нэг хэсэг юм. Багаж хэрэгслийн багц Windows хэрэгслүүд SDK нь эргээд MSDN захиалгын хөтөлбөрийн нэг хэсэг болох эсвэл msdn.microsoft.com сайтаас тусдаа түгээлт болгон үнэгүй татаж авах боломжтой. Хөгжүүлэгчдийн үзэж байгаагаар хамгийн сүүлийн үеийн, хамгийн их одоогийн хувилбар Windows-д зориулсан дибаг хийх хэрэгслүүд нь Windows SDK-д тусгайлан агуулагддаг.

Windows-д зориулсан дибаг хийх хэрэгслийг байнга шинэчилж, олон нийтэд нээлттэй болгодог бөгөөд энэ үйл явц нь үйлдлийн системүүдийн хувилбараас огт хамаардаггүй. Тиймээс шинэ хувилбаруудыг үе үе шалгаж байгаарай.

Одоо, ялангуяа дибаг хийх хэрэгслүүд юунд зориулагдсан болохыг харцгаая Microsoft Windows:

  • Орон нутгийн програмууд, үйлчилгээнүүд, драйверууд болон цөмийн дибаг хийх;
  • Сүлжээгээр дибаг хийх алсын програмууд, үйлчилгээ (үйлчилгээ), драйвер, цөм;
  • Ажиллаж байгаа програмуудыг бодит цаг хугацаанд дибаг хийх;
  • Програмын санах ойн дамп файлууд, цөм болон системийг бүхэлд нь шинжлэх;
  • x86/x64/Itanium архитектурт суурилсан системүүдтэй ажиллах;
  • Хэрэглэгчийн горим болон цөмийн горимын програмуудыг дибаг хийх;

Windows-д зориулсан дибаг хийх хэрэгслийн дараах хувилбарууд байдаг: 32 битийн x86, Intel Itanium, 64 битийн x64. Бидэнд хоёр нь хэрэгтэй болно: x86 эсвэл x64.

Windows-д зориулсан дибаг хийх хэрэгслийг суулгах хэд хэдэн арга байдаг бөгөөд энэ нийтлэлд бид зөвхөн гол зүйлийг авч үзэх болно.

  • Вэб суулгагчаар суулгана.
  • Windows SDK ISO дүрсээс Windows-д зориулсан дибаг хийх хэрэгслийг суулгаж байна.
  • Windows-д зориулсан дибаг хийх хэрэгслийг dbg_amd64.msi / dbg_x86.msi багцаас шууд суулгаж байна.

Ямар үед би дибаг хийх хэрэгслийг компьютер дээрээ суулгах ёстой нь тодорхойгүй хэвээр байна. Ихэнхдээ та ажлын орчинд хөндлөнгөөс оролцох нь туйлын хүсээгүй нөхцөл байдалтай тулгардаг! Үүнээс гадна шинэ бүтээгдэхүүн суулгах, өөрөөр хэлбэл бүртгэлийн / системийн файлд өөрчлөлт оруулах нь огт хүлээн зөвшөөрөгдөхгүй байж магадгүй юм. Жишээ нь даалгаварт чухал серверүүд орно. Яагаад хөгжүүлэгчид суулгах шаардлагагүй зөөврийн хувилбаруудын сонголтыг авч үзэхгүй байна вэ?
Windows-д зориулсан дибаг хийх хэрэгслүүдийн суулгалтын процесс нь хувилбараас хувилбар хүртэл зарим өөрчлөлтөд ордог. Одоо шууд суулгах процесс руу шилжиж, багаж хэрэгслийг суулгах арга замуудыг харцгаая.

Вэб суулгагч ашиглан Windows-д зориулсан дибаг хийх хэрэгслийг суулгаж байна

Windows SDK архивын хуудас руу очоод Windows 10 гэсэн хэсгийг олоод "Windows 10 SDK (10586) ба Windows 10 Mobile (Microsoft) (хувилбар 10586.11)" гэсэн хэсгийг олоорой.

Тухайн зүйл дээр дарна уу SDK СУУЛГАХ. Дарсны дараа Windows SDK-г онлайн суулгах процессыг эхлүүлдэг sdksetup.exe файлыг татаж аваад ажиллуулна уу. Асаалттай эхний шатСуулгагч нь .NET Framework багцыг систем дээр суулгасан эсэхийг шалгах болно Хамгийн сүүлийн үеийн хувилбарЭнэ мөчэнэ нь 4.5). Хэрэв багц байхгүй бол суулгацыг санал болгож, дууссаны дараа станц дахин ачаалах болно. Дахин ачаалсны дараа хэрэглэгчийн зөвшөөрлийн шатанд Windows SDK-г суулгах процесс өөрөө эхэлдэг.

Ихэнхдээ багцын бүх бүрэлдэхүүн хэсгүүдийг сонгохдоо суулгах явцад алдаа гардаг. Энэ тохиолдолд бүрэлдэхүүн хэсгүүдийг сонгохдоо шаардлагатай хамгийн бага багцыг суулгахыг зөвлөж байна.

Дибаг хийх хэрэгслийг суулгасны дараа Windows байршилфайлуудыг хэзээ дибаг хийх энэ аргаБидний суурилуулалт дараах байдалтай байна.

  • 64 битийн хувилбарууд: C:\Program Files (x86)\Windows Kits\x.x\Debuggers\x64
  • 32 битийн хувилбарууд: C:\Program Files (x86)\Windows Kits\x.x\Debuggers\x86

* энд x.x нь хөгжүүлэлтийн багцын тодорхой хувилбар юм;
8 ба түүнээс дээш хувилбаруудын суулгацын замууд нь хүн бүрт зориулсан сонгодог хувилбаруудаас эрс ялгаатай болохыг бид анзаарсан өмнөх хувилбаруудДибаг хийх хэрэгсэл?

Маш том нэмэлт энэ арга Windows-д зориулсан дибаг хийх хэрэгслийг суулгах нь бүх архитектурт зориулсан дибаг хийх хэрэгслийн хувилбаруудыг нэг дор суулгах явдал юм.

Windows SDK ISO-аас Windows-д зориулсан дибаг хийх хэрэгслийг суулгаж байна

Энэ арга нь Windows SDK (Програм хангамж хөгжүүлэгчдийн багц) суулгацын дүрсийг ашиглан Windows-д зориулсан дибаг хийх хэрэгслийг суулгахад оршино. Тодорхой цаг хүртэл татаж аваарай ISO дүрсхаргалзах системийн хувьд энэ нь Windows SDK архивын хуудсан дээр боломжтой байсан. Гэсэн хэдий ч одоогоор та sdksetup.exe вэб суулгагчийг ажиллуулж, SDK-ийн ISO дүрсийг авах боломжтой. Windows програм хангамж хөгжүүлэх багцыг татаж авна уусуулгагч эхлэх цонхонд:

Бидний олж мэдсэнээр вэб суулгагч ашиглан өмнөх суулгах арга нь нэлээд дур булаам бөгөөд ихэвчлэн алдаагаар төгсдөг. Цэвэр систем дээр энэ нь ямар ч асуудалгүйгээр суулгадаг боловч хангалттай ачаалалтай систем дээр олон асуудал гардаг. Хэрэв энэ нь таны хэрэг бол энэ аргыг хэрэглээрэй.

Үүний дагуу, хуудсан дээр та шаардлагатай түгээлтийг сонгох хэрэгтэй, миний хувьд (мөн олон хүмүүсийн хувьд) яг одоо " Windows багц Windows 7 болон .NET Framework 4-д зориулсан SDK" болон доороос "DVD-н ISO дүрсийг авах" холбоос дээр дарна уу.

msdn.microsoft.com сайттай ажиллахдаа би ашиглахыг зөвлөж байна Интернет хөтөчӨрсөлдөгч бүтээгдэхүүнүүд ажиллахгүй гэж мэдэгдсэн тул Explorer!

Үүний дагуу зөвхөн хэрэгцээ шаардлагад нийцүүлэн сонгох шаардлагатай. Ерөнхийдөө Windows-д зориулсан дибаг хийх хэрэгслийн бит нь системийн биттэй таарч байдаг. Миний системүүд ихэвчлэн 64 бит байдаг тул ихэнх тохиолдолд би GRMSDKX_EN_DVD.iso 64 битийн системийн зургийг татаж авдаг.
Дараа нь зургийг татаж авсны дараа бид одоо байгаа ISO дүрстэй ямар нэгэн байдлаар ажиллах хэрэгтэй. Мэдээжийн хэрэг, уламжлалт арга бол CD бичих боловч энэ нь нэлээд урт бөгөөд заримдаа үнэтэй арга юм. Би танд ашиглахыг санал болгож байна үнэгүй хэрэгслүүдсистемд виртуал дискний төхөөрөмжүүдийг бий болгох талаар. Би хувьдаа энэ зорилгоор DEAMON Tools Lite ашиглахыг илүүд үздэг. Хэн нэгэн нь тэдний хэлснээр амт, өнгө зэргээс хамааран өөр сонголттой, илүү шууд эсвэл хөнгөн жинтэй хэрэгсэлтэй байж болно.. Суулгасны дараа DAEMON хэрэгслүүд Lite, би зүгээр л GRMSDKX_EN_DVD.iso зургийн файл дээр давхар товшиход миний системд шинэ виртуал CD гарч ирнэ:

Зөвхөн дараа нь хоёр даржБи автомат ачааллыг идэвхжүүлж, Windows SDK суулгацыг эхлүүлнэ:

Жагсаалтаас суулгах бүрэлдэхүүн хэсгүүдийг сонгох цаг болоход бид дэлгэцийн агшинд тэмдэглэснээс бусад бүх сонголтыг идэвхгүй болгодог. Энэ нь бидэнд одоо шаардлагагүй алдаанаас зайлсхийхэд тусална.


Бүх зүйл яг адилхан, дэлгэцийн зураг дээр "Windows Performance Toolkit" ба "Windows-д зориулсан дибаг хийх хэрэгсэл" гэсэн хоёр сонголт байна. Windows Performance Toolkit нь таны ажилд хэрэг болох нь дамжиггүй. Дараа нь "Дараах" товчийг дарсны дараа суулгац ердийнхөөрөө үргэлжилнэ. Төгсгөлд нь та "Суулгалт дууссан" гэсэн бичээсийг харах болно.
Суулгац дууссаны дараа Windows-д зориулсан дибаг хийх хэрэгслийн ажлын лавлахууд дараах байдалтай байна.

  • x86 хувилбарын хувьд:
  • x64 хувилбарын хувьд:

Энэ үед Windows-д зориулсан дибаг хийх хэрэгслийг суулгаж дууссан гэж үзэж болно.

Windows-д зориулсан дибаг хийх хэрэгслийг .msi файлаар суулгаж байна

Хэрэв та Windows-д зориулсан дибаг хийх хэрэгслийг хоёртой суулгахад асуудалтай тулгарвал өмнөх аргууд, Бид нэгээс олон удаа аврахаар ирсэн хамгийн найдвартай, цаг хугацаагаар шалгагдсан нөөцтэй хэвээр байна. Нэгэн цагт Windows SDK-д нэгтгэхээс өмнө Windows-д зориулсан дибаг хийх хэрэгслүүд нь тусдаа installer.msi хэлбэрээр байдаг байсан бөгөөд үүнийг одоо ч олж болно, гэхдээ гүнд нь. Windows түгээлт SDK. Учир нь бидний гарт аль хэдийн байгаа Windows ISO дүрс SDK, дараа нь бид үүнийг системд холбож чадахгүй, гэхдээ зүгээр л аль хэдийн танил болсон ашиглан нээнэ үү WinRAR архивлагч, эсвэл ISO дискний агуулгатай ажилладаг бусад бүтээгдэхүүн.

Зургийг нээсний дараа бид үндсэн хэсэгт байрлах "Тохиргоо" директор руу очиж, сангуудын аль нэгийг сонгох хэрэгтэй.

  • 64 битийн хувилбарыг суулгахын тулд: \Setup\WinSDKDebuggingTools_amd64мөн dbg_amd64.msi файлыг энэ директороос задлаарай.
  • 32 битийн хувилбарыг суулгахын тулд: \Setup\WinSDKDebuggingTools болон энэ директороос dbg_x86.msi файлыг задлаарай.

Суулгац дууссаны дараа Windows-д зориулсан дибаг хийх хэрэгслийн ажлын лавлахууд дараах байдалтай байна.

  • x86 хувилбарын хувьд: C:\Program Files (x86)\Windows-д зориулсан дибаг хийх хэрэгслүүд (x86)
  • x64 хувилбарын хувьд: Windows-д зориулсан C: \ Program Files \ Debugging Tools (x64)

Энэ үед Windows-д зориулсан дибаг хийх хэрэгслийг суулгаж дууссан гэж үзэж болно.

нэмэлт мэдээлэл

Энэ нь юутай холбоотой болохыг би мэдэхгүй байна, магадгүй миний хайхрамжгүй байдлаас болж магадгүй, гэхдээ Windows-д зориулсан дибаг хийх хэрэгслийг суулгасны дараа суулгагч нь Path системийн замын хувьсагч дахь дибаглагчтай лавлах руу очих замыг тохируулаагүй байна. Энэ нь янз бүрийн дибаг хийх ажлыг консолоос шууд эхлүүлэхэд тодорхой хязгаарлалт тавьдаг. Тиймээс, хэрэв зам байхгүй бол би цонхон дээр бие даан бичдэг Хүрээлэн буй орчны хувьсагчиддибаг хийх хэрэгсэлд хүрэх зам:

  • C:\Program Files (x86)\Windows Kits\10\Debuggers\x86
  • C:\Program Files (x86)\Windows Kits\10\Debuggers\x64

* Таны хувьд өөр битийн хэмжээтэй үйлдлийн систем ашигласнаас болоод замууд нь ялгаатай байж болно. SDK ашигланөөр хувилбар.

Windows-д зориулсан дибаг хийх хэрэгслүүд нь зөөврийн програмууд шиг ажиллах боломжтой ажлын системкаталог Microsoft Windows Performance Toolkitмөн үйлдвэрлэлийн сервер дээр зөөврийн хувилбар болгон ашиглах. Гэхдээ системийн хүчин чадлыг анхаарч үзэхээ бүү мартаарай! Хэрэв та чухал систем дээр багцыг бүрэн суулгаж дууссан ч суулгасны дараа шууд ажиллаж эхлэх боломжтой, дахин ачаалах шаардлагагүй.

Windows-д зориулсан дибаг хийх хэрэгслийн найрлага

Эцэст нь Windows-д зориулсан дибаг хийх хэрэгслийн бүрэлдэхүүнийг энд оруулав.

Файл Зорилго
adplus.doc ADPlus хэрэгслийн баримт бичиг.
adplus.exe Нэг буюу хэд хэдэн процессын хогийн цэг болон бүртгэлийн файл үүсгэхийн тулд cdb дибаглагчийн ажлыг автоматжуулдаг консол програм.
agestore.exe Символ сервер эсвэл эх серверийн ашигладаг хадгалалтаас хуучирсан файлуудыг устгах хэрэгсэл.
breakin.exe CTRL+C товчлуурыг дарахтай адил үйл явц руу захиалгат завсарлагааны хослол илгээх боломжийг олгодог хэрэгсэл.
cdb.exe Хэрэглэгчийн горимын консол дибаглагч.
convertstore.exe Тэмдэгтүүдийг 2 шатлалаас 3 шатлал руу хөрвүүлэх хэрэгсэл.
dbengprx.exe Алсын зайнаас дибаг хийх давтагч (прокси сервер).
dbgrpc.exe RPC дуудлагын төлөвийн мэдээллийг харуулах хэрэгсэл.
dbgsrv.exe Алсын зайнаас дибаг хийхэд ашигладаг серверийн процесс.
dbh.exe Тэмдэгт файлын агуулгын талаарх мэдээллийг харуулах хэрэгсэл.
dumpchk.exe Дамп шалгах хэрэгсэл. Туслах хэрэгсэл хурдан шалгаххогийн файл.
dumpexam.exe Санах ойн хаягдлыг шинжлэх хэрэгсэл. Үр дүн нь %SystemRoot%\MEMORY.TXT руу гарна.
gflags.exe Дэлхийн системийн тугуудын редактор. Уг хэрэгсэл нь бүртгэлийн түлхүүр болон бусад тохиргоог удирддаг.
i386kd.exe kd-д зориулсан боодол. Нэгэн цагт kd-г систем дээр гэж нэрлэдэг байсан Windows дээр суурилсан x86 машинд зориулсан NT/2000? Тохиромжтой байдлын үүднээс орхисон байх.
ia64kd.exe kd-д зориулсан боодол. Нэгэн цагт ia64 машинд зориулсан Windows NT/2000 дээр суурилсан системүүдийн хувьд үүнийг kd гэж нэрлэдэг байсан уу? Тохиромжтой байдлын үүднээс орхисон байх.
kd.exe Цөмийн горимын консол дибаглагч.
kdbgctrl.exe Цөмд дибаг хийх удирдлагын хэрэгсэл. Цөмийн дибаг хийх холболтыг удирдах, тохируулах хэрэгсэл.
kdsrv.exe KD-д зориулсан холболтын сервер. Уг хэрэгсэл нь алсын холболтыг ажиллуулж, хүлээдэг жижиг програм юм. kd нь клиент дээр ажилладаг бөгөөд алсаас дибаг хийх зорилгоор энэ серверт холбогддог. Сервер болон үйлчлүүлэгч хоёулаа нэг дибаг хийх хэрэгслийн угсралтаас байх ёстой.
kill.exe Процессыг дуусгах хэрэгсэл.
list.exe Файлын агуулгыг дэлгэцэн дээр харуулах хэрэгсэл. Энэхүү бяцхан хэрэгсэл нь том хэмжээний текст эсвэл лог файлуудыг үзэх зорилготой нэг зорилготой юм. Энэ нь текстийг хэсэг хэсгээр нь ачаалдаг тул санах ойд бага зай эзэлнэ.
logger.exe Зөвхөн нэг процесстой ажиллах боломжтой бяцхан дибаглагч. Уг хэрэгсэл нь logexts.dll файлыг процессын орон зайд оруулдаг бөгөөд энэ нь судалж буй програмын бүх функцын дуудлага болон бусад үйлдлийг бүртгэдэг.
logviewer.exe Logger.exe дибаг хийгчийн бичсэн бүртгэлийг үзэх хэрэгсэл.
ntsd.exe Microsoft NT Symbolic Debugger (NTSD). Дибаггер нь cdb-тэй адилхан бөгөөд зөвхөн эхлүүлэх үед текст цонх үүсгэдэг. cdb-ийн нэгэн адил ntsd нь консол програмууд болон график програмуудыг хоёуланг нь дибаг хийх чадвартай.
pdbcopy.exe Тэмдгийн файлаас хувийн тэмдэгтүүдийг устгах, тэмдэгт файлд орсон нийтийн тэмдэгтүүдийг удирдах хэрэгсэл.
remote.exe Алсын зайнаас дибаг хийх хэрэгсэл болон алсын удирдлагаямар ч консол дибаглагч KD, CDB болон NTSD. Эдгээр бүх консол дибагуудыг алсаас ажиллуулах боломжийг танд олгоно.
rtlist.exe Алсын даалгавар харагч. Уг хэрэгсэл нь жагсаалтыг харуулахад ашиглагддаг ажиллаж байгаа процессууд DbgSrv серверийн процессоор дамжуулан.
symchk.exe Майкрософт тэмдэгтийн серверээс тэмдэгтүүдийг татаж авах, локал симболын кэш үүсгэх хэрэгсэл.
symstore.exe Сүлжээ үүсгэх хэрэгсэл эсвэл орон нутгийн хадгалалттэмдэгтүүд (2-шатлалт/3-шатлалт). Тэмдгийн хадгалалт нь тусгай бүтцийн дагуу бүтээгдсэн, тэмдэгт агуулсан диск дээрх тусгай лавлах юм. Бүрэлдэхүүн хэсгүүдийн нэртэй ижил нэртэй дэд хавтаснуудын бүтцийг тэмдэгтүүдийн үндсэн директорт үүсгэсэн. Хариуд нь эдгээр дэд хавтас бүр нь хэш хийх замаар олж авсан тусгай нэртэй үүрлэсэн дэд хавтаснуудыг агуулдаг хоёртын файлууд. Symstore хэрэгсэл нь бүрэлдэхүүн хэсгүүдийн хавтсыг сканнердаж, шинэ бүрэлдэхүүн хэсгүүдийг тэмдэгтийн санд нэмдэг бөгөөд ямар ч үйлчлүүлэгч тэдгээрийг татаж авах боломжтой. Symstore нь 0 шатлалт хадгалалтаас тэмдэг хүлээн авч 2 шатлалт/3 шатлалт хадгалалтанд оруулахад ашиглагддаг гэж ярьдаг.
tlist.exe Даалгавар харагч. Бүх ажиллаж байгаа процессуудын жагсаалтыг харуулах хэрэгсэл.
umdh.exe Хэрэглэгчийн горимын дамп овоолгын хэрэгсэл. Сонгосон процессын бөөгнөрөлд дүн шинжилгээ хийх хэрэгсэл. Энэ нь овоолгын янз бүрийн параметрүүдийг харуулах боломжийг танд олгоно.
usbview.exe USB Viewer. Үзэгчийн хэрэгсэл USB төхөөрөмжүүдкомпьютерт холбогдсон.
vmdemux.exe Демултиплексер виртуал машин. Нэг COM холболтод зориулж хэд хэдэн нэртэй хоолой үүсгэдэг. Сувгууд нь янз бүрийн виртуал машины бүрэлдэхүүн хэсгүүдийг дибаг хийхэд ашиглагддаг
windbg.exe GUI бүхий хэрэглэгчийн горим ба цөмийн горимын дибаглагч.

Debug.exe- гүйцэтгэх боломжтой файлуудыг шалгах, дибаг хийхэд ашигладаг дибаг хийх програм.

Үйлдлийн системд ашигладаг MS-DOS . Үйлдлийн системийн дараагийн хувилбаруудын хувьд

эмулятороор ажилладаг MS-DOS мөн байна хязгаарлагдмал боломж. Командын мөрөөр дуудсан

DEBUG [[драйв:][маршрут]файлын нэр [сонголт]].

Жишээ нь: DEBUG C:\...\My.com

Энэ програмнь консол програм бөгөөд файлын кодыг үүсгэх эсвэл өөрчлөхөд зориулагдсан. Үүний тусламжтайгаар та үүсгэж болно энгийн програмдоор MS-DOSмөн тэдний гүйцэтгэлийг хянах. Энэ дибаглагч нь хөрвүүлэгчдийн хамгийн доод түвшинд байна угсрагч. Гэхдээ энэ нь санах ойг харах, өөрчлөх, бүртгэлийн төлөвийг авах гэх мэт нэлээд сайн чадвартай.

Debug.exe командууд

Debug.exe командын багц дүрэм:

· Debug.exe нь жижиг жижиг том үсгийн мэдрэмжгүй.

· Командын зайг зөвхөн параметрүүдийг салгахад ашиглана.

· Оруулсан тоонууд нь аравтын тооллын системд байх ёстой бөгөөд арын h үсэггүй байх ёстой.

· Сегмент болон офсетийг сегмент:офсет форматаар хоёр цэг ашиглан бичнэ, жишээлбэл CS:3C1 (кодын сегментэд 3С1 цаг офсет) эсвэл 40:17 (эхлэх хаяг нь 40 цаг байгаа сегментэд 17 цаг офсет).

Дибаглагчийг ачаалсны дараа дэлгэцэн дээр зураас шиг харагдах сануулга гарч ирнэ. Бүртгэл C.S., Д.С., ES, SSОдоогийн байдлаар програмын сегментийн 256 байт угтварын хаягаар эхлүүлсэн бөгөөд санах ой дахь ажлын талбар нь энэ угтвар + 100h хаягаар эхэлнэ. Багууд debug.exeурилга ирсний дараа курсороор тэмдэглэгдсэн газарт шууд оруулна. Команд бүр нь танигч ба параметрүүдээс бүрдэх ба танигч нь нэг үсгээс бүрдэнэ.

Хүснэгт 1. Бүх debug.exe командын хураангуй

Баг Тодорхойлолт Формат
A (Угсралт) Ассемблерийн командуудыг машины код руу хөрвүүлэх; өгөгдмөл хаяг нь CS:0100h. А[<адрес_начала_кода>]
C (Харьцуулах) Хоёр санах ойн талбайн агуулгыг харьцуулах; анхдагч нь DS. Энэ тушаал нь хэсгүүдийн урт эсвэл хаягийн мужийг зааж өгдөг. C<начальный_адрес_1>Л<длина> <начальный_адрес_2>C<начальный_адрес_1> <конечный_адрес_1> <начальный_адрес_2>
D (Дэлгэц/Дамп) Санах ойн хэсгийн агуулгыг арван зургаат тоот болон ASCII форматаар гаргана. Өгөгдмөл нь DS; та урт эсвэл мужийг зааж өгч болно. D [<начальный_адрес>] D [эхлэх_хаяг төгсгөлийн_хаяг]
E (Оруулах) Өгөгдөл эсвэл машины кодын зааврыг санах ойд оруулах; анхдагч нь DS. E [<адрес> [<инструкции/данные>]]
F (бөглөх) Жагсаалтын мэдээллээр санах ойн хэсгийг дүүргэх; анхдагч нь DS. Та урт ба мужийг хоёуланг нь ашиглаж болно. Ф<начальный_адрес_1>Л<длина> "<данные>"Ф<начальный_адрес> <конечный_адрес> "<данные>"
G (Явах) Дибаг хийсэн машины хэлний програмыг заасан таслах цэг хүртэл гүйцэтгэдэг; анхдагч нь CS юм. IP нь зөв хаягийг агуулж байгаа эсэхийг шалгаарай. G[=<начальный_адрес>] <адрес_останова> [<адрес_останова> ...]
H (Арван арвант) Хоёр арван арван арван утгын нийлбэр ба зөрүүг тооцоол. Х<величина_1> <величина_2>
Би (Оролт) Портоос нэг байт уншиж, гаргана. I<адрес_порта>
L (Ачаалал) Дискний салбараас файл эсвэл өгөгдлийг санах ойд ачаалах; анхдагч нь CS:100h. Файлыг N тушаал эсвэл debug.exe-г ажиллуулах үед аргумент ашиглан зааж өгч болно. L [<адрес_в_памяти_для_загрузки>] L [<адрес_в_памяти_для_загрузки> [<номер_диска> <начальный_сектор> <количество_секторов>]]
М (Хөдөлгөөн) Санах ойн эсийн агуулгыг хуулах; анхдагч нь DS. Та урт болон мужийг хоёуланг нь зааж өгч болно. М<начальный_адрес>Л<длина> <адрес_назначения>М<начальный_адрес> <конечный_адрес> <адрес_назначения>
N (Нэр) L ба W командын файлын нэрийг зааж өгч байна. Н<имя_файла>
O(Гаралт) Порт руу байт илгээж байна. О<адрес_порта> <байт>
P (Үргэлжлэл) REPnn угтвар бүхий CALL, LOOP, INT эсвэл давтагдах мөрт командыг гүйцэтгэж дараагийн заавар руу шилжинэ. P[=<адрес_начала>] [<количество_инструкций>]
Q (Охих) Debug.exe-г унтрааж байна. Q
R (Бүртгүүлэх) Бүртгэлийн агуулга болон дараагийн зааварчилгааг хэвлэнэ. Р<имя_регистра>
S (Хайлт) Жагсаалтаас тэмдэгтүүдийг санах ойд хайх; анхдагч нь DS. Та урт болон мужийг хоёуланг нь зааж өгч болно. С<начальный_адрес>Л<длина> "<данные>"С<начальный_адрес> <конечный_адрес> "<данные>"
T (Мөр) Програмыг алхам алхмаар гүйцэтгэх. P тушаалын нэгэн адил анхдагч хос нь CS:IP байна. Тасалдал хийхийн тулд P командыг ашиглах нь дээр гэдгийг анхаарна уу. T [=<адрес_начала>] [<количество_выполняемых_команд>]
U (Усгараагүй) Машины задлах код; өгөгдмөл нь CS:IP хос юм. Харамсалтай нь, debug.exe нь 80286+ процессоруудад зориулсан тусгай командуудыг зөв задалж чаддаггүй ч тэдгээр нь зөв ажиллаж байна. U [<начальный_адрес>] Та [<начальный_адрес конечный_адрес>]
W (бичих) debug.exe-ээс файл бичих; Хэрэв файл ачаалагдаагүй бол N командын тусламжтайгаар нэрийг зааж өгөх шаардлагатай. Мөн программуудыг зөвхөн .COM файл хэлбэрээр бүртгэдэг! W [<адрес> [<номер_диска> <начальный_сектор> <количество_секторов>]]


Санах ойн хэсгүүдийг харах

Багийн ажлыг нарийвчлан авч үзье Д, энэ нь танд санах ойн хэсгүүдийн агуулгыг үзэх боломжийг олгодог. Энэ жишээнд командыг ашигладаг Д 0159:0240-аас эхлэн санах ойн хэсгийг үзэхийн тулд:

Энд санах ойн хэсгийг үзэх хүсэлтийн хариуд бид сонгосон санах ойн хэсгийн агуулгыг харуулсан найман мөрийг хүлээн авсан. Мөр бүр гурван хэсгээс бүрдэнэ.

· Форматаар зүүн талд харуулсан эхний байтын хаяг сегмент:офсет.

· Мөрийн эхэнд заасан байтаас эхлэн догол мөрийн арван зургаан тоот дүрслэл (16 байт).

· ASCII форматтай ижил догол мөрийн тэмдэгтүүд.

Мөрт заасан хаяг нь зөвхөн догол мөр дэх эхний байтад хамаарах бөгөөд дараагийн байтуудын хаягийг бие даан тооцоолох ёстой. Арван аравтын тоон дүрслэл нь байт бүрт хоёр тэмдэгт агуулдаг бөгөөд уншихад хялбар болгох үүднээс байтууд нь өөрөө хоосон зайгаар тусгаарлагдсан байдаг. Нэмж дурдахад найм, ес дэх байтыг зураасаар тусгаарлаж, догол мөрийг хоёр хэсэгт хувааж, догол мөрөнд байгаа байтын хаягийг тооцоолоход хялбар болгож байгааг тэмдэглэх нь зүйтэй.

D-багийн ашигтай заль мэх

Зэрэгцээ болон цуваа портуудыг шалгаж байна

BIOS-ийн өгөгдлийн бүсийн эхний 16 байт нь зэрэгцээ болон цуваа портуудын хаягуудыг агуулна. Тиймээс дараах тушаалыг ашиглан эдгээр портуудыг шалгаж болно.

Хэвлэсэн эхний найман байт нь цуваа портын хаягуудыг заана COM1-COM4. Дараагийн 8 байт нь зэрэгцээ портуудын хаягийг заана LPT1-LPT4. Жишээлбэл, хэрэв таны компьютер нэг зэрэгцээ порттой бол эхний хоёр байт нь хамгийн их магадлалтай: 7803. Портын хаяг нь урвуу дарааллаар бичигдсэн, жишээлбэл. 0378.

Тоног төхөөрөмжийн шалгалт

BIOS-д 410h хаягаар байрлах эхний хоёр байт нь системд суулгасан техник хангамжийн талаарх мэдээллийг агуулна. Бид эдгээр байтуудыг дараах тушаалаар олдог.

Эхний хоёр байт нь 23 44 гэж бодъё. Эдгээр байтуудын кодыг тайлж, тухай мэдээлэл авъя. суулгасан төхөөрөмжүүд. Үүнийг хийхийн тулд эдгээр байтуудыг (44 23) эргүүлж, дараа нь хөрвүүлье хоёртын системТооцоолол. Бид авах:

Битийн утга
Битийн байрлал

Эдгээр битүүд юу гэсэн үг вэ? Шифрийг үргэлжлүүлэн тайлцгаая:

Гарны бүртгэлийн статусыг шалгаж байна

Өгөгдлийн хэсэгт BIOSхаягаар 417 цагЭхний байт нь гарын регистрийн төлөвийг хадгалдаг. Хаах Num Lock Тэгээд Caps Lock , дараа нь тушаалыг бичнэ үү:

Эхний байт нь 00 байх болно. Асаснаар Num LockТэгээд Caps Lock, тушаалыг дахин гүйцэтгэнэ. Одоо эхний байт нь 60-тай тэнцүү байх ёстой. Идэвхжүүлсэн үед энэ нь туршилтаар тогтоогдсон Num Lockэхний байт нь 20, хэзээ Caps Lock - 40.

Видео системийн статусыг шалгаж байна

Хаягаар нь 449 цагВ BIOSнь анхны видео мэдээллийн талбар юм. Шалгахын тулд бид бичнэ үү:

Эхний байт нь одоогийн видео горимыг харуулдаг (жишээлбэл, 03 - өнгө), хоёр дахь нь - баганын тоог (жишээлбэл, 50 - 80 баганын горим). Мөрийн тоог эндээс харж болно 484 цаг (40:84).

BIOS-ийн зохиогчийн эрх болон серийн дугаарыг шалгаж байна

Зохиогчийн эрхийн мэдээлэл BIOSдотор нь барьсан ROM BIOSхаягаар FE00:0. Зохиогчийн эрхийн шугамыг ASCII дарааллаар хялбархан олж болно, мөн серийн дугаар- арван зургаатын тоогоор. Гэсэн хэдий ч, зохиогчийн эрхийн шугам урт байж болох бөгөөд хуваарилагдсан санах ойн хэсэгт багтахгүй байж болно. Энэ тохиолдолд та зүгээр л дахин оруулах хэрэгтэй Д.

BIOS-ийн үйлдвэрлэсэн огноог шалгаж байна

Энэ огноо нь мөн тэмдэглэгдсэн байдаг ROM BIOSхаягаас эхэлнэ FFFF: 5. Харгалзах командыг гүйцэтгэсний дараа ASCII дараалал нь форматаар бичигдсэн энэ огноог агуулна мм/дд/ж.

Debug.exe ашиглан програмыг санах ойд шууд оруулах

debug.exeпрограммыг машины санах ойд шууд оруулах, дараа нь түүний гүйцэтгэлийг хянах, хянах боломжийг олгодог. Бид програмыг командыг ашиглан машины кодоор оруулна Э. Гэсэн хэдий ч болгоомжтой байгаарай - Буруу хаягаар буруу өгөгдөл оруулах нь урьдчилан таамаглах аргагүй үр дагаварт хүргэж болзошгүй юм!Хэдийгээр энэ нь системд ноцтой асуудал үүсгэх магадлал багатай ч оруулсан бүх өгөгдлийг алдах болно debug.exe, та амархан чадна. Оруулах шаардлагатай програм нь зааврын үндсэн хэсэгт шууд агуулагдах өгөгдлийг ашигладаг. Дараах нь Ассемблей хэл дээрх програмын жагсаалт бөгөөд тайлбар нь машины код дахь хэлний командын аналогийг, түүнчлэн команд бүрийн тайлбарыг зааж өгсөн болно. Тоонууд дотор ямар ч тэмдэг байхгүй гэдгийг анхаарна уу h, учир нь дээр дурдсанчлан, debug.exe 16-тын систем дэх зөвхөн тоог ойлгодог.

MOV AX, 0123; код B82301: AX-д 0123h утгыг оруулна уу

AX, 0025 НЭМЭХ; код 052500: AX утгад 0225h нэмнэ

MOV BX, AX ; код 8BD8: BX-д AX-ийн утгыг оруулна уу

BX, AX НЭМЭХ; код 03D8: BX-д AX-ийн утгыг нэмнэ

MOV CX, BX; код 8BCB: BX-ийн утгыг CX руу оруулна

SUB CX, AX ; код 2BC8: CX-ээс AX-ийн утгыг хас

SUB AX, AX ; код 2BC0: AX-г арилга

JMP 100; EBEE код: програмын эхэнд очно уу

Таны харж байгаагаар машины заавар бүр 1-3 байт урттай байдаг. Эхний байт нь үйлдлийг, дараагийн байт нь түүний операндуудыг заана. Програмын гүйцэтгэл нь эхний зааварчилгааны дагуу эхэлж, бүх зааврыг дараалан дамжуулдаг. Одоо та програмыг санах ойд оруулах боломжтой. Машины кодыг зургаан байтаар гурван хэсэгт хувааж тус бүрийг командыг ашиглан оруулъя Эмөн хаягаас эхэлнэ CS: 100.

Програмыг санах ойд оруулсны дараа түүний гүйцэтгэлийг хянахыг хичээцгээе. Эхлээд шалгацгаая Одоогийн байдалбүртгэл, тугуудыг хийхийн тулд командыг оруулна уу Р. Дибаглагч нь регистрүүдийн агуулгыг арван арван тоот хэлбэрээр гаргана; Бүртгэлийн агуулга өөр өөр машин дээр өөр байж болно.

Тиймээс, таны харж байгаагаар debug.exeэхлүүлсэн сегментүүд Д.С., ES, SS, C.S.ижил хаяг. Бүртгүүлэх IPагуулсан 0100 , зааврыг офсетээс гүйцэтгэж байгааг харуулж байна 100 цагхарьцангуй C.S.(мөн бид санах ойд зааврыг оруулаад энэ хаягийг зааж өгсөн).

Халих, чиглэл, тасалдал, тэмдэг, тэг, нэмэлт зөөвөрлөх, парите, зөөвөрлөх тугуудын утгыг энд зааж өгсөн болно.

Бүртгэл болон тугийн төлөвийн дараа debug.exe нь гүйцэтгэх эхний зааварын талаарх мэдээллийг харуулна:

· Зааварчилгааны хаяг, манай тохиолдолд 0В12:0100, 0В12 нь кодын сегментийн хаяг юм.

· Энэхүү зааварт тохирох машины код (B82301).

· Ассемблер дээр бичигдсэн бодит заавар (MOV AX,0123).

Одоо регистр болон тугуудын агуулгыг шинжилсний дараа програмыг гүйцэтгэх ажил руу шилжье. Бид командыг ашиглан програмыг алхам алхмаар гүйцэтгэх болно Т. Командыг анх удаа ашиглаж байна Т, бид зааврыг дагаж байна MOV. Зааврын операндын машины код энд байна - 2301 . Үйл ажиллагаа явуулах газрууд 23 В AL(залуу хагас AX), А 01 - В А.Х.(хуучин). Үүний дараа debug.exeбүртгэлийн мэдээллийг дахин хэвлэнэ:

Одоо AXагуулсан 0123 цаг, IP0103 цаг(иймээс гүйцэтгэсэн зааврын урт: 0103 цаг - 0100 цаг = 3 байт), дараагийн заавар нь үйлдлийг зааж өгнө НЭМЭХ. Тиймээс, тушаалыг дахин дахин гүйцэтгэж байна Т, бид сүүлчийн зааварт хүрэх болно JMP 100. Тэр бүртгэлийг тохируулах болно IPВ 100 цаг, Мөн debug.exeхөтөлбөрийн эхэнд буцаж ирнэ. Хөтөлбөрийн эхэнд буцаж ирэхэд үүнийг тэмдэглэх нь зүйтэй Д.С., ES, SSТэгээд C.S.ижил хаягийг агуулна. Бодит байдал ийм л байна debug.exeоруулсан програмуудыг зөвхөн програм гэж үздэг .COM. Мөн хөтөлбөрүүдэд .COM, ялгаатай .EXE,стек, код, өгөгдөл нь нэг сегментэд хадгалагддаг.

Угсрах, задлах

Өмнөх жишээн дээр бид програмыг машины кодоор оруулсан боловч debug.exeассемблер хэлээр бичсэн зааврыг бүрэн ойлгох чадвартай. Ийм программуудтай ажиллахын тулд debug.exeтушаалуудыг ашигладаг АТэгээд У.

Баг Аассемблер хэл дээрх зааврыг хүсэх ба тэдгээрийг машины код болгон хөрвүүлдэг. Эхлээд бид заавар оруулах эхлэлийн хаягийг эхлүүлнэ (100 цаг):

Дибаглагч нь кодын сегментийн хаяг болон офсетийг хэвлэх болно (жишээлбэл, 13F2: 0100). Одоо бид орох ёстой зааврыг дагаж мөрдөнөассемблер дээр дарж мөр бүрийн дараа санах ой руу оруулна Оруулна уу:

Сүүлийн зааврыг оруулсны дараа дарна уу Оруулна ууБид програмын текстийг бичиж дууссаныг дибаг хийгчид харуулахын тулд хоёр удаа дарна уу. Одоо програмыг тушаалуудыг ашиглан эхлүүлж болно Рбүртгэлүүдийг үзэх болон Тмөрдөхөд зориулагдсан. Хэрэв миний хөтөлбөрт заавар байгаа бол би үүнийг тэмдэглэж байна INTтэдгээрийг тушаалаар боловсруулж болохгүй Т, ба баг П, бүх тасалдлыг нэг дор зохицуулдаг.

Задаргаа хийх журам руу шилжиж, бидний саяхан танилцуулсан програмыг жишээ болгон авч үзье. Бид эхний болон сүүлчийн зааврын хаягийг ашиглан задлах гэж буй хүрээг зааж өгдөг, өөрөөр хэлбэл. 100 цагТэгээд 107 цаг.

Энэ командыг ажиллуулсны дараа debug.exeзаасан мужид зааврыг ассемблер хэлээр, машины кодоор, түүнчлэн заавар бүрийн хаягийг харуулна.

Програмыг дискэнд хадгалах

Эхлээд файлын нэрийг тохируулна:

Дараа нь бүртгэлд орно CXта програмын хэмжээг байтаар оруулах хэрэгтэй. Энэ нь эцсийн болон анхны шилжилтийн хоорондох зөрүүтэй тэнцүү байх болно. Одоо зөвхөн командаар диск рүү бичих л үлдлээ ВҮүний үр дүнд бичигдсэн байтуудын тоог харна уу. Үүний үр дүнд бид гүйцэтгэхэд бэлэн програмыг авдаг.

Гарах нь тушаалаар хийгддэг q. Жишээ:

0B3B:0100 mov ax,1234

0B3B:0103 mov ah, 4c

0B3B:0105 int 21

0B3B: 0100 B83412 MOV AX,1234

0B3B:0103 B44C MOV AH,4C

0B3B:0105 CD21 INT 21

AX=0000 BX=0000 CX=0007 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000

DS=0B3B ES=0B3B SS=0B3B CS=0B3B IP=0100 NV UP EI PL NZ NA PO NC

0B3B: 0100 B83412 MOV AX,1234

00007 байт бичнэ үү

Үүнийг биелүүлэхийн тулд лабораторийн ажилТанд хэд хэдэн ассемблер команд хэрэгтэй болно:

MOV AH,<шестнадцатиричное число>- бүртгэлд оруулах А.Х.тоо 02 системийн функцийг зааж өгөх - дэлгэцэн дээрх тэмдгийг харуулах;

MOV DL,<шестнадцатиричное число>- бүртгэлд оруулах Д.Л.тэмдэгтийн код;

INT 21 бол олон зүйлийг хэрэгжүүлдэг гол DOS тасалдал (процедур) юм янз бүрийн функцууд; функцийн дугаарыг AH бүртгэлд урьдчилан бичсэн; дэлгэцэн дээр тэмдэгт хэвлэхийн тулд - AH регистрийн 02 функц, дотор байх үед Д.Л.тэмдэгтийн кодыг урьдчилан бичнэ үү.

INT 20 - програмаас гарах DOS тасалдал (COM програмаас).

Жишээ:

Дэлгэц дээр "*" тэмдгийг харуул.

mov AH,02 ; системийн функц 02 - дэлгэцэн дээрх тэмдгийг харуулна

mov DL,2A ; Одод зориулсан ASCII код

int 21 цаг; "*" гаралтын тасалдал

int 20 цаг; програмаас гарах

Практик даалгавар

Зорилтот

Debug.exe дибаглагчийг танилцуулж байна. Энэ хөтөлбөртэй ажиллах практик ур чадварыг олж авах.

Тоног төхөөрөмж:

Хувийн компьютерудирдаж байна үйлдлийн систем Windows.

Програм хангамж:

Дибаг хийх програм.

Элсэлтийн асуултууд

1. Дебаг програм нь юунд зориулагдсан вэ?

2. Энэ программыг хэрхэн ажиллуулах вэ?

3. Debug-д командууд хэрхэн ордог вэ?

4. Иргэний үнэмлэх гэж юу вэ?

5. Программыг Debug-д хэрхэн оруулах вэ?

Дасгал хийх

· Онолын материалыг судлах.

· Текстийн туршид тайлбарласан командуудыг гүйцэтгэнэ.

· 2 тооны нийлбэр ба зөрүүг ол: 1-р тоо нь бүлгийн тоо (16-тын тоонд хөрвүүлсэн), 2-р нь цагаан толгойн овгийн эхний үсгийн тооны эсрэг талын тоо (сөрөг тоо). нэмэлт код). нийлбэр ба зөрүүг аравтын хэлбэрт хөрвүүлнэ.

· Микропроцессорын регистр, тугуудын агуулгыг харж, протоколд бичнэ. Бүртгэл бүр ямар функцийг гүйцэтгэдэг вэ? .

· Эхний тоог (3-р даалгавраас) AX регистрт, хоёр дахь тоог (3-р даалгавраас) BX регистрт бичнэ. Оруулна уу RAMкодын сегмент рүү (офсет 100) AX болон BX регистрүүдийг нэмэх машины заавар. Ассемблерийн хэлбэрийг дэлгэцэн дээр харна уу. Энэ командыг ажиллуулаад үр дүнг аравтын хэлбэрт хөрвүүлнэ.

· RAM-д кодын сегмент (офсет 100) дээр дэлгэцэн дээр тэмдэгт хэвлэхийн тулд ассемблер командын багцыг оруулна уу - өөрийн овгийн эхний үсэг. DEBUG дотроос програмыг шалгана уу. Дараа нь диск рүү .COM файл хэлбэрээр бичнэ үү. Програмын хэмжээ хэд вэ? Үүнийг DOS-оос ажиллуул.

· Тайлан дахь бүх үйлдлийг дүрслэн бичнэ үү.

1. Бүтээлийн нэр.

2. Ажлын зорилго.

3. Багаж хэрэгсэл, тоног төхөөрөмж.

4. Онолын товч мэдээлэл.

5. Хийсэн арга хэмжээний тодорхойлолт.

6. Үүсгэсэн програмын текст.

7. Дүгнэлт.

Хяналтын асуултууд

1. Ямар команд машины кодын өгөгдөл эсвэл зааврыг санах ойд оруулах вэ?

2. Санах ойн хоёр хэсгийн агуулгыг хэрхэн харьцуулах вэ?

3. Жагсаалтын өгөгдлөөр санах ойн хэсгийг хэрхэн дүүргэх вэ?

4. Аль команд нь дибаг хийсэн програмыг машины хэлээр гүйцэтгэдэг вэ?

5. Аль команд Debug-аас файл бичих вэ?

6. Угсрах, задлах ажлыг хэрхэн гүйцэтгэдэг вэ?

Android Debug Bridge (adb) нь дибаг хийх боломжийг олгодог консол програм юм хөдөлгөөнт төхөөрөмжүүд Android, түүнчлэн эмуляторууд дээр.

Тодорхойлолт

Энэхүү хэрэгсэл нь програмуудыг суулгах, дибаг хийхийг ихээхэн хөнгөвчлөхөөс гадна Unix бүрхүүлд нэвтрэх боломжийг олгодог. Сүүлийнх нь төхөөрөмж дээр шаардлагатай командуудыг ажиллуулахад ашиглагдаж болно. Бусад зүйлсийн дотор програмыг дибаг хийх горимыг идэвхжүүлсэн ухаалаг гар утасны түгжээг тайлахад ашиглаж болно. Гэсэн хэдий ч шаардлагатай функцийг үйлдвэрлэгчээс хориглоогүй тохиолдолд Android Debug Bridge нь ямар ч Android төхөөрөмжтэй ажиллахыг дэмждэг гэдгийг тэмдэглэх нь зүйтэй.

Хөтөлбөр нь гурван бүрэлдэхүүн хэсгээс бүрдэнэ.

  • Үйлчлүүлэгч. Хөгжүүлэгчийн компьютер дээр ажиллаж, командуудыг илгээдэг. Үйлчлүүлэгч рүү залгахын тулд та терминал дээрх тохирох командыг ашиглаж болно.
  • Чөтгөр (adbd). Төхөөрөмж дээрх тушаалуудыг гүйцэтгэдэг. -д ажилладаг дэвсгэртөхөөрөмж бүр дээр.
  • Сервер. Үйлчлүүлэгч болон демон хоёрын хоорондын харилцааг хянадаг. Хөгжүүлэгчийн компьютер дээр арын дэвсгэр дээр ажилладаг.

АХБ-ны онцлогууд:

  • Холбогдсон болон дэмжигдсэн төхөөрөмжүүдийн жагсаалтыг харах.
  • Бүртгэлүүдийг үзэх.
  • Төхөөрөмжүүдийн хооронд өгөгдөл болон файлуудыг хуулж, дамжуулах.
  • Програмыг суулгах, устгах.
  • Өгөгдлийн хэсгийг цэвэрлэж, дарж бичих.
  • Мөн бусад олон.

Манай вэбсайтаас та Android Debug Bridge програмыг ямар ч бүртгэлгүйгээр, SMSгүйгээр бүрэн үнэгүй татаж авах боломжтой.

Дэлгэцийн агшин

MS-DOS-ын гүйцэтгэх боломжтой файлуудыг шалгах, дибаг хийх Debug.exe програмыг ажиллуул. Параметргүйгээр гүйцэтгэсэн тушаал дибаг хийх Debug.exe-г ажиллуулж, командын мөрийг харуулна дибаг хийх, зураасаар (-) төлөөлдөг.


1)
Virtual PC 2007-г эхлүүлнэ үү Windows дүрс XP. Үйлдлийн системийг командын мөрийн горимд шилжүүлнэ үү.

Start -> Run -> cmd гэж бичээд Enter дарна.


2)
Дибаг хийх командын сонголтуудын талаар тусламж авч, аваарай

Консол дээр: дибаг оруулаад дараа нь (?).

Бүх командын товч жагсаалт:

A (угсрах) — Ассемблерийн командуудыг машины код болгон хөрвүүлэх. Үндсэн хаяг - CS: 0100 цаг.

C (харьцуулах) - Санах ойн хоёр хэсгийн агуулгыг харьцуулах. Өгөгдмөл нь Д.С.. Энэ тушаал нь хэсгүүдийн урт эсвэл хаягийн мужийг зааж өгдөг.

D (хогийн цэг) — Санах ойн хэсгийн агуулгыг арван зургаат тоот болон ASCII форматаар гаргана. Өгөгдмөл нь Д.С.. Та урт эсвэл мужийг зааж өгч болно.

E (орох) — Санах ойд өгөгдөл эсвэл машины кодын зааврыг оруулах. Өгөгдмөл нь Д.С..

F (бөглөх) — Санах ойн хэсгийг жагсаалтаас мэдээллээр дүүргэх. Өгөгдмөл нь Д.С.. Та урт ба мужийг хоёуланг нь ашиглаж болно.

G(явах) — Заасан таслах цэг хүртэл дибаг хийсэн машины хэлний программыг гүйцэтгэх. Өгөгдмөл нь Д.С.. Энэ тохиолдолд та үүнийг шалгах хэрэгтэй IPхүчинтэй хаяг агуулж байна.

H (арван аравтын тоо) - Хоёр арван арван арван утгын нийлбэр ба зөрүүг тооцоолох.

би (оролт) — Портоос нэг байт уншиж, гаргана.

L (ачаалал) — Дискний салбараас файл эсвэл өгөгдлийг санах ойд ачаалах. . Өгөгдмөл - CS: 100 цаг. Файлыг тушаалыг ашиглан зааж өгч болно Нэсвэл эхлүүлэх аргумент debug.exe.

М (хөдөлгөөн) — Санах ойн эсийн агуулгыг хуулбарлах; өгөгдмөл Д.С.

Н(нэр) — Командын файлын нэрийг зааж өгнө L (ачаалах)Тэгээд W (БИЧИХ).

O(гаралт) — Гаралтын порт руу байт илгээх.

P(үргэлжлүүлэх) - Зааврыг биелүүлэх CALL, LOOP, INT (давталт, тасалдал, процедур)эсвэл угтвартай давтагдах мөрийн заавар REPnn, дараагийн заавар руу шилжинэ.

Q (гарах) - Унтраах debug.exe. Туршилт хийсэн файлыг хадгалахгүйгээр.

R (бүртгэх) — Бүртгэлийн агуулга болон дараагийн зааварчилгааг гарга.

S (хайх) — Жагсаалтаас тэмдэгтүүдийг санах ойд хайх. Өгөгдмөл нь Д.С.. Та урт болон мужийг хоёуланг нь зааж өгч болно.

T (ул мөр) — Хөтөлбөрийг алхам алхмаар гүйцэтгэх. Яг л баг шиг П, өгөгдмөл нь хос CS:IP. Гэхдээ тасалдлыг гүйцэтгэхийн тулд командыг ашиглах нь дээр П.

U (усгараагүй) - Машины кодыг задлах. Өгөгдмөл нь хос юм CS:IP.

W (бичих) --аас файл бичих debug.exeдиск рүү. Файлын нэрийг тушаалаар зааж өгөх шаардлагатай Н, хэрэв энэ нь ачаалагдаагүй байсан бол.


3)
Бид RAM болон ROM-ийн онцлог хэсгүүдийн овоолгыг хүлээн авч бүртгэх болно

R командыг бичье.

Бүртгэл C.S., Д.С., ES, SSяг одоо эхлүүлсэн 256 байт програмын сегментийн угтварын хаяг, мөн санах ой дахь ажлын талбар эхэлнэ энэ угтварын хаягууд + 100h.

Тушаалын багц дүрэм:

A) B debug.exeҮсгийн тохиолдол нь ялгаатай биш юм.

B) Командын зайг зөвхөн параметрүүдийг салгахад ашиглана.

C) Оруулсан тоонууд нь арван зургаатын тооллын системд байх ёстой, мөн гүйгээрэцсийн захидал h.

D) Хэсэг ба офсетийг хоёр цэг ашиглан форматаар бичнэ сегмент:офсет.


4)
Санах ойн хэсгийг харах.

Баг Д, санах ойн хэсгүүдийн агуулгыг харах боломжийг танд олгоно.
Ажилд ашиглах боломжтой санах ойн хэмжээг шалгацгаая. Үүнийг хийхийн тулд бид дараахыг оруулна: г 40:13болон Enter.
Дэлгэц дээр гарч ирэх эхний хоёр байт нь санах ойн хэмжээг килобайт болон арван зургаатын тоогоор агуулж, урвуу дарааллаар байтыг агуулна. Бидэнд энэ байна: 8002 0280 640 (K)

  • Эхний байтын хаягийг форматаар зүүн талд харуулав сегмент:офсет.
  • Мөрийн эхэнд заасан байтаас эхлэн догол мөрийн арван зургаан тоот дүрслэл (16 байт).
  • ASCII форматтай ижил догол мөрийн тэмдэгтүүд.


4)
Зэрэгцээ болон цуваа портуудыг шалгаж байна.


BIOS-ийн өгөгдлийн бүсийн эхний 16 байт нь зэрэгцээ болон цуваа портуудын хаягуудыг агуулна. Хэвлэсэн эхний найман байт нь COM1-COM4 цуваа портын хаягуудыг заана. Дараагийн 8 байт нь LPT1-LPT4 зэрэгцээ портуудын хаягийг заана. Порт хаяг 78 03 – урвуу хэлбэрээр бичигдсэн.


5)
Гарны бүртгэлийн статусыг шалгаж байна.


Өгөгдлийн хэсэгт BIOSхаягаар 417 цагЭхний байт нь гарын регистрийн төлөвийг хадгалдаг.


6)
BIOS-ийн үйлдвэрлэлийн огноог шалгаж байна.


Зохиогчийн эрхийн мэдээлэл BIOSдотор нь барьсан ROM BIOSхаягаар FE00:0. Зохиогчийн эрхийн шугамыг хялбархан олж болно ASCII-дараалал, серийн дугаар нь арван зургаатын тоо хэлбэртэй байна. Дэлгэц дээр бид долоон оронтой компьютерийн дугаар, зохиогчийн эрхийн огноог харж байна. Гэсэн хэдий ч, зохиогчийн эрхийн шугам урт байж болох бөгөөд хуваарилагдсан санах ойн хэсэгт багтахгүй байж болно. Энэ тохиолдолд та зүгээр л дахин оруулах хэрэгтэй Д.

Огноо нь мөн тэмдэглэгдсэн байна ROM BIOSхаягаас эхэлнэ FFFF: 5. Тохирох тушаалыг гүйцэтгэсний дараа ASCII-дараалал нь форматаар бичигдсэн энэ огноог агуулна мм/дд/ж.


7)
Машины кодын жишээ.


Машин хэлний программ бүтээх, санах ойд дүрслэх, гүйцэтгэлийн үр дүнг авч үзье. Дибаг хийх команд A (Угсрах)орчуулдаг DEBAGассемблерийн командуудыг хүлээн авч машин код болгон хөрвүүлэх горимд оруулна.

Програмыг санах ойд оруулсны дараа түүний гүйцэтгэлийг хянахыг хичээцгээе. Эхлээд регистр болон тугуудын одоогийн байдлыг шалгаад командыг оруулна уу; Р.


IP— кодын сегменттэй харьцуулахад гүйцэтгэх дараагийн зааврын хаяг-офсетийг агуулсан бүртгэл C.S. x86 гэр бүлийн процессорууд дээр.

Бүртгүүлэх IP-тай холбогдсон C.S.зэрэг CS:IP, Хаана C.S.одоогийн кодын сегмент бөгөөд IP- энэ сегменттэй харьцуулахад одоогийн офсет.

Бүртгүүлэх IPнь 16 битийн заагч регистр юм. Үүнээс гадна энэ төрлийн регистрүүд орно SP (Стек заагч- стек заагч) ба B.P. (Үндсэн заагч- үндсэн индекс).

Бичлэг CXамжилттай, 8-тай тэнцсэн. Сегментүүдийг эхлүүлсэн Д.С., ES, SS, C.S.ижил хаяг. Бүртгүүлэх IPагуулсан 0100 , зааврыг харьцангуй 100 цагийн зөрүүтэйгээр гүйцэтгэж байгааг харуулж байна CS (бидний эхэлсэн газар).

Утга

Тодорхойлолт

Халилт байхгүй

Дээш эсвэл баруун тийш

Тасалдлыг идэвхжүүлэх

Эерэг тэмдэг

Тэг биш утга

Нэмэлт шилжүүлэг байхгүй

Хачирхалтай үг

0 Б16 - кодын сегментийн хаяг.
  • Энэ зааварт тохирох машины код ( B025).
  • Ассемблер дээр бичигдсэн бодит заавар ( MOV А Л,25 ).

  • 8)
    Дибаг хийх команд U (Unassemble) нь угсралтын зааврын машины кодуудыг харуулдаг.


    Энийг хийцгээе. Дибаг хийгчид үзэх шаардлагатай эхний болон сүүлчийн командуудын хаягийг хэлэх шаардлагатай (бидэнд 100 ба 107 байна). Заасан мужид байгаа заавар нь угсралтын хэлээр, машины кодоор, түүнчлэн заавар бүрийн хаягаар гарч ирнэ. Командыг ашиглан программыг алхам алхмаар ажиллуулъя Т.

    Командыг хоёр дахь удаагаа ашиглаж байна Т, бид зааврыг дагасан MOV. Зааврын операндын машины код нь – 00D8. Үйл ажиллагаа нь нэмдэг ALруу Б.Л.. Гарахын тулд бид ордог Q. Дахин бид бүтээсэн зүйлийг задалдаг testpi.com.


    9)
    BIOS (C000:0 ... FFFF:F)-г файл руу хуулж, дараа нь дүн шинжилгээ хийхийн тулд файлыг хадгална уу.


    Кодыг өөрчлөх эсвэл хуулах BIOSүйлдвэрлэгчийн зохиогчийн эрхийг зөрчиж болно BIOS. BIOSХувийн хэрэгцээнд зориулж хуулбарлах, өөрчлөх боломжтой бөгөөд тараах боломжгүй. Хуулбарлах ердийн журам BIOSпрограмыг ашиглан DEBAGдоор. Энэ процедур нь файл дахь хаягаас 64 KB сегментийг бүхэлд нь хадгалах болно F000:0000 цаг By F0000:FFFFh.


    Дүгнэлт:

    • debug.exeассемблер болон машины код дахь программуудыг ажиглах, дибаг хийхэд ашиглаж болно.
    • debug.exeпрограмыг мөшгих, таслах цэгийг тогтоох, санах ойн хэсгүүдийг харах, компьютерийн санах ойд шууд програм оруулах боломжийг олгодог.
    • debug.exeтатаж авах боломжтой программуудыг программ хэлбэрээр илэрхийлнэ .COM.
    • debug.exeзөвхөн арван арван тоот тоонуудыг хүлээн авдаг.
    • debug.exeүсгийн тохиолдлыг ялгадаггүй.

    OllyDbg 2.0 нь дэлхий даяарх хэрэглэгчдийн дунд маш их алдартай болсон Хэрэглэгчийн орон зайн түвшний дибаглагч юм. Өнөө үед OllyDbg-д зориулж олон залгаасууд бичигдсэн тул түүнтэй ажиллахад таатай байна. OllyDbg нь сайн ажиллагаатай тул янз бүрийн асуудлыг шийдвэрлэх, аливаа нарийн төвөгтэй кодыг шалгахад тохиромжтой. Дибаглагчийн интерфейсийг бүрэн өөрчлөх боломжтой: ажлын цонхны дэвсгэр, үсгийн өнгө, хэмжээ, угсралтын тодорхой зааврыг тодруулах гэх мэт.

    Үндсэн шинж чанарууд ба функцууд

    Интерфэйс:

    • Интерфэйс нь програмын код, регистр, стек, санах ойн дамп зэрэг цонхнуудаас бүрдэнэ. Арын дэвсгэр болон үсгийн өнгийг өөрийн үзэмжээр тохируулж болно. Товчлуурын хамгийн дээд хэсэгт хурдан нэвтрэхүндсэн функцууд болон хамгийн нийтлэг үйлдлүүд.

    Чиг үүрэг:

    • дибаг хийж байгаа программд ашигласан функцуудын жагсаалт;
    • программаас олдсон мөрийн хувьсагчдын жагсаалт;
    • дибаг хийж буй програмын хяналтын элементүүдийн бариулуудын жагсаалт, тухайлбал: цонх, товчлуур, шалгах хайрцаг, хэрэгслийн мөр гэх мэт;

    Хагарлын цэгүүд. Хэд хэдэн таслах цэгийг тохируулах боломжтой (үүнд нэгэн зэрэг):

    • тодорхой функцийн хувьд;
    • тодорхой хаяг руу;
    • Windows мессеж рүү;
    • санах ойноос унших;
    • санах ойд бичих;
    • санах ойд хандах (унших, бичих);
    • кодын зааврын тодорхой дараалалд;

    Та таслах цэгийн тодорхой нөхцөлүүдийг зааж өгч болно, тухайлбал заагдсан регистрийн тодорхой утга гэх мэт. Лог файлд бичих функцийг дэмждэг.

    Стек:

    • Стек дээрх утгыг тайлбар дагалддаг бөгөөд энэ нь функцийн аргументуудыг ойлгоход хялбар болгодог.

    Мөр:

    • Кодыг алхам алхмаар гүйцэтгэх үед дибаглагч нь заавар бүрийн өмнө үйлдлүүд хийгдэж буй санах ойн хаягуудын одоогийн утгыг зааж өгдөг.

    Санах ойн утгыг хайж байна:

    • ASCII болон Юникод мөрүүдийг хайх, мөн hex утгуудыг хайхыг дэмждэг.

    Кодын цонх:

    • Програмын код нь функцын нэр, тэдгээрийн аргумент, хувьсагчийн утга гэх мэт тайлбарыг дагалддаг.