當前位置:首頁 » 操作系統 » dll源碼調試

dll源碼調試

發布時間: 2022-08-01 09:57:12

❶ 對應沒有源碼的dll文件能調試嗎

好像不可以吧,一般編寫dll文件是都會有一個頭文件,這個頭文件編程dll的功能說明。

❷ 如何調試帶有源代碼的dll文件

第一步,調試的准備。
用C#語言編寫一個測試dll文件的程序,由於dll源程序是c的,且運行結果是黑屏的,所以C#代碼也是運行在黑屏的console環境下。完整代碼如下。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
namespace TestMelp{class Program{[DllImport(@D:\Visual Studio Projects\FileMelp\Debug\FileMelp.dll, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
extern static void cmd_melp(int argc, string[] argv);
static void Main(string[] args){//string cmd = melp -s -i D:/bin/bit -o D:/bin/output;
string cmd = melp -a -i D:/bin/inputD -o D:/bin/bitRight;
string[] argv = cmd.Split(new char[] { ' ' });
int argc = argv.Length;
cmd_melp(argc, argv);}}}由於調試的FileMelp.dll文件和本程序不在同一個文件夾下,容易出現文件地址問題,所以本測試程序的文件均採用絕對地址。另外cmd的格式要求不能有兩個連續的空格,也可以通過使用Trim函數,解決這個問題。
第二步,定位到自己改寫的帶有源代碼的dll工程。
本文的FileMelp.dll工程,是通過本空間的生成VS dll那篇博客生成的,具體實現方法不在贅述。下面的兩段代碼分別添加到FileMelp工程melp.h和melp.c文件最下面。
#ifndef LIB_H
#define LIB_H
extern _declspec(dllexport) void cmd_melp(int argc, char **argv);
/* 加入任意你想加入的函數定義*/#endifvoid cmd_melp(int argc, char **argv){main(argc,argv);}按F6,上述步驟實現FileMelp.dll動態庫的生成。
第三步,添加測試程序到dll源代碼處。
在FileMelp工程裡面,右擊FileMelp工程,選擇屬性。
或者按Alt+Enter,彈出如下界面。
在Configuration Properties\Debugging\Command選擇第一步生成的測試.exe文件。這樣完成了調試前的准備。接下來,在需要調試的代碼地方,添加斷點。

❸ DLL怎麼設置才能調試 在線等

1、32 位的程序的話,可以使用olldbg 簡稱od,它有loaddll 。
2、如果DLL是你寫的,也就是你有源碼,可以在DLL_PROCESS_ATTACH通知中,加上一句斷點:
__asm int 3
然後,你寫一個exe程序,loadlibrary()直接載入這個DLL文件,你用調試器,載入程序,直接運行,馬上就會終斷到斷點處。
3、別人的DLL,你可以使用動態調試器, 在關鍵CALL上直接跟進去然後分析就好了。
4、靜態反匯編分析,直接用IDA把DLL文件進行二進制分析。。自己看代碼吧。

❹ VB高手進,dll怎麼調試

dll調試步驟如下:
1.在原來的dll工程(舉例為:dll工程名:ABxzMsdyht)里 ---》添加工程 ---》標准exe--》打開,創建了工程1,自動生成 form1 窗體。---》生成 工程1.exe。
2.在form1窗體里添加一個按鈕在按鈕的代碼中添加代碼:
Private Sub Command1_Click()
Dim AAAA As New CDTeXt
AAAA.xianshizhuchuangti '顯示畫圖主窗體
End Sub
注意:CDTeXt 為 dll(工程:ABxzMsdyht)里的一個類模塊名。
3. 在 dll(工程:ABxzMsdyht)里的 工程屬性---》調試---》啟動程序--》瀏覽到本文件下的工程1.exe,在部件選項卡中 選擇 二進制兼容-----》確定。
4. 工程1.的啟動對象 改為:form1。
5.工程1.引用位置--》瀏覽 --》找到本文件下的----》ABxzMsdyht.vbp (注意引用對話框中的:文件類型為:所有文件(*.*))----》打開---》確定。
6.文件---》生成工程組後保存,這樣就可以用 F8 步步調試 dll。
注意:在工程1.exe 和dll 類模塊中都設斷點 這樣就可以 用 F8 步步調試 dll。

❺ 如何有效的調試MFC DLL

在MFC DLL中,可能出錯的地方::AfxMessageBox(L"這里輸出某些變數的值或者顯示一下執行到哪個位置了");
找出問題之後再修改,然後把::AfxMessageBox注釋

或者就用GOOGLE出來的調試方法。

這個不管用,因為暴異常的地方是在MFC源碼里頭,而不是我的MFC dll代碼里頭(dll的代碼哪裡出問題,這個我可以確定,因為有自己的SEH跟著)

❻ 動態鏈接庫dll應該怎樣設置調試

DLL有三種調試方法:
方法1:
如果動態鏈接庫是自己編寫的,並且測試代碼也是自己編寫的,那麼此時我們可以將動態鏈接庫和測試代碼的工程建立在一起,在調試測試代碼的時候,可以直接調用動態鏈接庫中的代碼。

我們在測試鏈接庫項目中的100行打個斷點,當執行到此處的時候,按F11就會進入到動態鏈接庫項目中的源碼中,就可以進行調試了。
方法2:
如果動態鏈接庫是自己編寫的,而調用動態鏈接庫的程序不是自己編寫的,那麼我們需要設置動態鏈接庫中的項目屬性,啟動調用動態鏈接庫的程序,形成鏈接之後,在調試的時候才可以數你在動態鏈接庫中調試。如下圖:

在項目屬性的調試中設置完成對應要啟動的exe之後,設置dll為啟動項目,即可以運行調試。
方法3:
如果動態鏈接庫不是自己編寫,程序也不是自己編寫,那麼這個時候只能通過Ollydbg或者其他調試工具調試了。使用OD調試dll,需要保證OD目錄下有loaddll.exe文件。
需要三個步驟如下:
1)我們可以先藉助LordPE獲取到導出表中的方法的RVA地址
2)藉助OD獲取到項目的基址
3)通過基址和RVA計算出來VA,就找到函數了

熱點內容
電影的文件夾都是 發布:2025-01-18 08:21:49 瀏覽:834
post提交php 發布:2025-01-18 08:21:42 瀏覽:459
如何禁止寫入文件夾 發布:2025-01-18 08:21:04 瀏覽:362
360雲盤等待上傳 發布:2025-01-18 08:21:03 瀏覽:795
安卓手機怎麼設置壁紙 發布:2025-01-18 08:20:23 瀏覽:318
如何關閉密碼鎖 發布:2025-01-18 08:18:51 瀏覽:858
我的電腦ftp打不開 發布:2025-01-18 08:18:05 瀏覽:512
手機如何與伺服器端連接的 發布:2025-01-18 08:16:49 瀏覽:45
為什麼安卓手機玩游戲沒有聲音 發布:2025-01-18 08:11:56 瀏覽:420
androidtextview字體 發布:2025-01-18 07:51:18 瀏覽:555