加载外部模块

来源:互联网 发布:淘宝女装休闲鞋 编辑:程序博客网 时间:2024/05/21 22:34
问题描述:
客户端,用LoadLibrary的方式调用Lang.dll,dzhwt.dll 但dzhwt.dll 在VS中的pdb文件无法加载
1. 管理员身份启动windbg
2.symbol file path:设置正确的pdb路径
     srv*D:\windbgSymbols*http://msdl.microsoft.com/download/symbols;D:\Source\dzh2\bin\pdb
3.open excutable
    选择 dzh2pri.exe,填好命令行参数 main=$,并启动
4.启动程序,到Wt界面    

5.中断,查看当前哪些模块已经加载pdb


6.加载需要的模块 ld dzhwt,ld Lang


  7.Open Source File 加断点

8. 继续运行到断点命中,命中后为紫色

9.看堆栈,KB ,K20B
0:028> K20B
ChildEBP RetAddr 
17a697a0 59b68428 Lang!CLanguage::NeedTranslateW+0x61 [d:\source\dzh2\lang\language.cpp @ 977]
17a697d0 74b207a2 Lang!CLanguage::STBDrawTextW+0xc8 [d:\source\dzh2\lang\language.cpp @ 473]
17a697f8 74b2040c COMCTL32!CMarkup::ThemedDrawText+0xa9
17a69ce4 74ba9b84 COMCTL32!CMarkup::Paint+0x293
17a69d3c 74baa251 COMCTL32!CMarkup::CalcIdealSize+0x177
17a69d58 74b9b69c COMCTL32!CToolTipsMgr::CalcTextSize+0x3c
17a69de0 74bab82e COMCTL32!CToolTipsMgr::GetTipSize+0x1c6
17a69e44 74bababc COMCTL32!CToolTipsMgr::DoShowBubble+0xd5
17a69e54 74bab3f8 COMCTL32!CToolTipsMgr::ShowBubbleForTool+0x33
17a69e6c 74bab538 COMCTL32!CToolTipsMgr::OnTtmTrackActivate+0x83
17a69f98 74b2bf57 COMCTL32!CToolTipsMgr::ToolTipsWndProc+0xb8e
17a69fc4 764762fa COMCTL32!CToolTipsMgr::s_ToolTipsWndProc+0x32
17a69ff0 76476d3a USER32!InternalCallWinProc+0x23
17a6a068 76476de8 USER32!UserCallWinProcCheckWow+0x109
17a6a0c4 76476e44 USER32!DispatchClientMessage+0xe0
17a6a100 7785010a USER32!__fnDWORD+0x2b
17a6a114 026c0c20 ntdll!KiUserCallbackDispatcher+0x2e
WARNING: Frame IP not in any known module. Following frames may be wrong.
17a6a178 764796c5 0x26c0c20
17a6a19c 59b6e88c USER32!SendMessageW+0x7f
17a6a200 74bf1676 Lang!CLanguage::STBSendMessageW+0x11c [d:\source\dzh2\lang\language.cpp @ 2343]
17a6a260 74b365c2 COMCTL32!Edit_ShowBalloonTipHandler+0xfe
17a6a2a0 764762fa COMCTL32!Edit_WndProc+0xc7c
17a6a2cc 76476d3a USER32!InternalCallWinProc+0x23
17a6a344 76480d27 USER32!UserCallWinProcCheckWow+0x109
17a6a37c 7648794a USER32!CallWindowProcAorW+0xab
17a6a39c 1713cc7d USER32!CallWindowProcA+0x1b
17a6a3c0 1713d942 dzhwt!CWnd::DefWindowProcA+0x32 [wincore.cpp @ 1011]
17a6a3dc 1713b479 dzhwt!CWnd::WindowProc+0x4c [wincore.cpp @ 1597]
17a6a450 1713b965 dzhwt!AfxCallWndProc+0xed [wincore.cpp @ 215]
17a6a47c 764762fa dzhwt!AfxWndProc+0xad [wincore.cpp @ 379]
17a6a4a8 76476d3a USER32!InternalCallWinProc+0x23
17a6a520 76480d27 USER32!UserCallWinProcCheckWow+0x109
17a6a558 7648794a USER32!CallWindowProcAorW+0xab
17a6a578 16fc0b41 USER32!CallWindowProcA+0x1b
17a6a5e4 764762fa dzhwt!CEditEx::OnGetPswTxtProc+0xa1 [D:\接收文件\Amoi\QHQQ-1013\QHQQ\WINWT\wtdll\controls\EditEx.cpp @ 157]
17a6a610 76476d3a USER32!InternalCallWinProc+0x23
17a6a688 76476de8 USER32!UserCallWinProcCheckWow+0x109
17a6a6e4 76476e44 USER32!DispatchClientMessage+0xe0
17a6a720 7785010a USER32!__fnDWORD+0x2b
17a6a734 02772b60 ntdll!KiUserCallbackDispatcher+0x2e
17a6a798 764796c5 0x2772b60
17a6a7bc 59b6e88c USER32!SendMessageW+0x7f
17a6a820 74bf09b2 Lang!CLanguage::STBSendMessageW+0x11c [d:\source\dzh2\lang\language.cpp @ 2343]
17a6aacc 74bc37e7 COMCTL32!Edit_ShowBalloonTipWrap+0x85
17a6aae4 74bc3aad COMCTL32!EditSL_CheckCapsLock+0x28
17a6ab0c 74b51b4c COMCTL32!EditSL_KeyDown+0x165
17a6ab80 74b09a9e COMCTL32!EditSL_WndProc+0x3f5
17a6abc8 764762fa COMCTL32!Edit_WndProc+0xc52
17a6abf4 76476d3a USER32!InternalCallWinProc+0x23
17a6ac6c 76480d27 USER32!UserCallWinProcCheckWow+0x109
17a6aca4 7648794a USER32!CallWindowProcAorW+0xab
17a6acc4 1713cc7d USER32!CallWindowProcA+0x1b
17a6ace8 1713d942 dzhwt!CWnd::DefWindowProcA+0x32 [wincore.cpp @ 1011]
17a6ad04 1713b479 dzhwt!CWnd::WindowProc+0x4c [wincore.cpp @ 1597]
17a6ad78 1713b965 dzhwt!AfxCallWndProc+0xed [wincore.cpp @ 215]
17a6ada4 764762fa dzhwt!AfxWndProc+0xad [wincore.cpp @ 379]
17a6add0 76476d3a USER32!InternalCallWinProc+0x23
17a6ae48 76480d27 USER32!UserCallWinProcCheckWow+0x109
17a6ae80 7648794a USER32!CallWindowProcAorW+0xab
17a6aea0 16fc0b41 USER32!CallWindowProcA+0x1b
17a6af0c 764762fa dzhwt!CEditEx::OnGetPswTxtProc+0xa1 [D:\接收文件\Amoi\QHQQ-1013\QHQQ\WINWT\wtdll\controls\EditEx.cpp @ 157]
17a6af38 76476d3a USER32!InternalCallWinProc+0x23
17a6afb0 764777c4 USER32!UserCallWinProcCheckWow+0x109
17a6b010 7647788a USER32!DispatchMessageWorker+0x3bc
17a6b020 7649c81f USER32!DispatchMessageW+0xf
17a6b04c 76495149 USER32!IsDialogMessageW+0x5f6
17a6b074 171420b5 USER32!IsDialogMessageA+0x199
17a6b098 17140ca4 dzhwt!CWnd::IsDialogMessageA+0x7b [winocc.cpp @ 182]
17a6b0b4 17139754 dzhwt!CWnd::PreTranslateInput+0x75 [wincore.cpp @ 3435]
17a6b0d8 16e40b38 dzhwt!CDialog::PreTranslateMessage+0xf8 [dlgcore.cpp @ 92]
17a6b33c 16f8bb78 dzhwt!CBaseDlg::PreTranslateMessage+0x228 [D:\接收文件\Amoi\QHQQ-1013\QHQQ\WINWT\wtdll\BaseDlg.cpp @ 995]
17a6b398 1713f870 dzhwt!CXCLoginDlg::PreTranslateMessage+0xd8 [D:\接收文件\Amoi\QHQQ-1013\QHQQ\WINWT\wtdll\XCLoginDlg.cpp @ 2485]
17a6b3b8 171492a5 dzhwt!CWnd::WalkPreTranslateTree+0x98 [wincore.cpp @ 2678]
17a6b3d4 16f7ee1d dzhwt!CWinThread::PreTranslateMessage+0x55 [thrdcore.cpp @ 672]
17a6b450 1714970c dzhwt!CWtdllApp::PreTranslateMessage+0x30d [D:\接收文件\Amoi\QHQQ-1013\QHQQ\WINWT\wtdll\wtdll.cpp @ 231]
17a6b46c 17140eaf dzhwt!CWinThread::PumpMessage+0xe2 [thrdcore.cpp @ 848]
17a6b4a8 1713a5c0 dzhwt!CWnd::RunModalLoop+0x202 [wincore.cpp @ 3489]
17a6b508 16e44cf9 dzhwt!CDialog::DoModal+0x188 [dlgcore.cpp @ 539]
17a6b570 16e6ce64 dzhwt!CBaseDlg::DoModal+0x99 [D:\接收文件\Amoi\QHQQ-1013\QHQQ\WINWT\wtdll\BaseDlg.cpp @ 1838]
17a6e1cc 16e594e4 dzhwt!CMainDlg::Login+0x2f4 [D:\接收文件\Amoi\QHQQ-1013\QHQQ\WINWT\wtdll\MainDlg.cpp @ 667]
17a6fb04 16ffe791 dzhwt!DlgThreadFun2+0xd4 [D:\接收文件\Amoi\QHQQ-1013\QHQQ\WINWT\wtdll\exwtdll.cpp @ 85]
17a6fb60 170b9842 dzhwt!LBThread::RunThreadFun+0x71 [d:\接收文件\amoi\qhqq-1013\qhqq\public\lbthread.cpp @ 30]
17a6fb98 756c338a dzhwt!_threadstartex+0xb2 [threadex.c @ 227]
17a6fba4 77879f72 kernel32!BaseThreadInitThunk+0xe
17a6fbe4 77879f45 ntdll!__RtlUserThreadStart+0x70
17a6fbfc 00000000 ntdll!_RtlUserThreadStart+0x1b
 
 
查看PDB是否是匹配
!itoldyouso dzhwt D:\Source\dzh2\bin\release\dzhwt\bin\dzhwt.pdb
 
总结:
1.设置pdb 路径要正确
2.用ld 加载需要的模块,执行完成后pdb会加载进去
3.用open Source file 打开需要加载断点的源文件
4.加断点
5.k20B 显示全堆栈

0 0