偵錯程式與被除錯程序的拆離以及結束被除錯程序的實現

2021-10-07 03:37:06 字數 1698 閱讀 9473

呼叫windowsapi debugactiveprocessstop 停止偵錯程式除錯指定的程序

bool debugactiveprocessstop

( dword dwprocessid

);

引數程序id 可以在偵錯程式建立程序時呼叫 createprocess 的最後乙個引數 lpprocessinformation 中記錄

建立完成除錯程序後,別忘記呼叫 closehandle 關閉 lpprocessinformation 中的 程序與執行緒控制代碼

bool createprocessw

( lpwstr lpcommandline,

lpsecurity_attributes lpprocessattributes,

lpsecurity_attributes lpthreadattributes,

bool binherithandles,

dword dwcreationflags,

lpvoid lpenvironment,

lpcwstr lpcurrentdirectory,

lpstartupinfow lpstartupinfo,

lpprocess_information lpprocessinformation);

typedef

struct _process_information process_information,

*pprocess_information,

*lpprocess_information;

拆離偵錯程式與被除錯程序別忘記修復斷點,呼叫 continuedebugevent 繼續執行被除錯執行緒

bool continuedebugevent

( dword dwprocessid,

dword dwthreadid,

dword dwcontinuestatus

);

windows預設偵錯程式退出時終止被除錯程序,

我們可以呼叫 debugsetprocesskillonexit 引數傳入false,來修改偵錯程式退出時要執行的操作

可以多次呼叫此函式以根據需要更改操作

bool debugsetprocesskillonexit

( bool killonexit

);

killonexit 如果為true,則執行緒將在退出時終止所有附加程序(請注意,這是預設設定);

killonexit 如果為false,執行緒將與退出時正在除錯的所有程序分離。

被除錯程序只有與被除錯程序拆離後,才可以正常的結束

呼叫 terminateprocess 終止指定的程序及其所有執行緒

bool terminateprocess

( handle hprocess,

uint uexitcode);

/* 例:*/

terminateprocess

(openprocess

(process_all_access, false, pid),0

);

python的偵錯程式 Python 偵錯程式入門

python 生態系統包含豐富的工具和庫,可以讓開發人員更加舒適。例如,我們之前已經介紹了如何使用互動式 shell 增強 python。本文重點介紹另一種可以節省時間並提高 python 技能的工具 python 偵錯程式。python 偵錯程式 python 標準庫提供了乙個名為 pdb 的偵錯...

GDB偵錯程式與Core dump

gdb是unix linux下的一款基於命令列的程式除錯工具,其簡單的命令和強大的功能是眾多開發者喜歡的理由,搭配core dump對乙個程式進行追蹤則更能夠大顯身手。乙個程式如果想使用gdb除錯,則需要在編譯過程中加入除錯資訊。命令如下 gcc g filename.c o filename 使用...

偵錯程式的原理

偵錯程式和被除錯程式是通過中斷系統來實現的.不過在windows下,這些工作都不需要你來做了.windows封裝了一套完整的除錯介面.你只要建立乙個偵錯程式,用它開啟 或建立 乙個被除錯程序,然後根據除錯的目標中所包含的除錯資訊找出源 與機器碼之間的對映關係.在你要中斷的地方加 乙個int3指令 並...