IDiaDataSource::loadDataForExe
會開啟並做準備.exe/.dll 檔案相關聯的偵錯資料。
HRESULT loadDataForExe (
LPCOLESTR executable,
LPCOLESTR searchPath,
IUnknown* pCallback
);
參數
executable
[in].Exe 或.dll 的檔案路徑。searchPath
[in]若要搜尋偵錯資料的替代路徑。pCallback
[in]IUnknown介面之物件的支援偵錯回呼介面,例如IDiaLoadCallback, IDiaLoadCallback2、 IDiaReadExeAtOffsetCallback,和 (或) IDiaReadExeAtRVACallback介面。
傳回值
如果成功的話,會傳回S_OK。 否則,會傳回錯誤碼。 下表顯示一些可能的錯誤代碼,這個方法。
值 |
描述 |
---|---|
E_PDB_NOT_FOUND |
無法開啟檔案,或檔案格式無效。 |
E_PDB_FORMAT |
嘗試存取的檔案格式太舊。 |
E_PDB_INVALID_SIG |
簽章不符。 |
E_PDB_INVALID_AGE |
時代不符。 |
E_INVALIDARG |
不正確的參數。 |
E_UNEXPECTED |
已完成資料來源。 |
備註
偵錯.exe/.dll 檔案標頭名稱相關的偵錯資料的位置。
這個方法會偵錯標頭,然後搜尋並準備偵錯資料。 搜尋的進度,(選擇性) 可以報告和回呼朋友和家人。 例如, IDiaLoadCallback::NotifyDebugDir時叫用IDiaDataSource::loadDataForExe方法會尋找並處理偵錯目錄。
IDiaReadExeAtOffsetCallback和IDiaReadExeAtRVACallback介面讓用戶端應用程式提供的可執行檔中讀取資料,無法直接透過標準的檔案 I/O 存取檔案時的替代方法。
若要載入而不需驗證的.pdb 檔案,請使用IDiaDataSource::loadDataFromPdb方法。
若要驗證.pdb 檔案是否符合特定準則,請使用IDiaDataSource::loadAndValidateDataFromPdb方法。
若要直接從記憶體載入.pdb 檔,請使用IDiaDataSource::loadDataFromIStream方法。
範例
class MyCallBack: public IDiaLoadCallback
{
...
};
MyCallBack callback;
...
HRESULT hr = pSource->loadDataForExe( L"myprog.exe", L".\debug", (IUnknown*)&callback);
if (FAILED(hr))
{
// Report error
}
請參閱
參考
IDiaLoadCallback::NotifyDebugDir
IDiaDataSource::loadDataFromPdb