-
-
[原创].Net内存程序集的DUMP(ProFile篇)
-
发表于:
2010-5-24 20:04
12966
-
[原创].Net内存程序集的DUMP(ProFile篇)
interface ICorProfilerCallback : IUnknown
{
HRESULT Initialize( [in] IUnknown *pICorProfilerInfoUnk);
// 初始化代码探查器
//其它略。。。
HRESULT ModuleLoadFinished([in] ModuleID moduleId,[in] HRESULT hrStatus);
// 模块加载完成时,可执行模块的代码已完整地呈现在内存中,此时我们转贮代码
//其它略。。。
}
HRESULT CProfilerCallback::ModuleLoadFinished(ModuleID moduleId, HRESULT hrStatus)
{
HRESULT hr=m_pICorProfilerInfo->GetModuleInfo (
moduleId, (LPCBYTE *)&pBaseLoadAddress,
2048, &size, name,
&assemblyId );
__try {
// let's determine the module name from metadata
hr = m_pICorProfilerInfo->GetModuleMetaData(moduleId, 0, IID_IMetaDataImport, (IUnknown**) &pImport);
if (SUCCEEDED(hr)) {
GUID mvid;
ULONG nameLen = 0;
hr = pImport->GetScopeProps(moduleName, 2048, &nameLen, &mvid);
}
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!