When I get windbg to use dynamorio symbols, there appears an memory access error in script, details are as follow:
command is:"d:\Program Files (x86)\Debugging Tools for Windows (x86)\windbg.exe" d:\dynamorio\build\bin32\drrun.exe -- d:\testHelloWorld-BAK.exe
Microsoft (R) Windows Debugger Version 6.12.0002.633 X86
Copyright (c) Microsoft Corporation. All rights reserved.
CommandLine: dynamorio\build\bin32\drrun.exe -- D:\testHelloWorld-BAK.exe
Symbol search path is: SRV*C:\symbols*
Executable search path is:
ModLoad: 01280000 01317000 drrun.exe
ModLoad: 77620000 777a0000 ntdll.dll
ModLoad: 75330000 75440000 C:\Windows\syswow64\kernel32.dll
ModLoad: 76cf0000 76d37000 C:\Windows\syswow64\KERNELBASE.dll
ModLoad: 5f9e0000 5fa76000 d:\dynamorio\build\bin32\drconfiglib.dll
ModLoad: 75530000 755d1000 C:\Windows\syswow64\ADVAPI32.dll
ModLoad: 76c40000 76cec000 C:\Windows\syswow64\msvcrt.dll
ModLoad: 762c0000 762d9000 C:\Windows\SysWOW64\sechost.dll
ModLoad: 75440000 75530000 C:\Windows\syswow64\RPCRT4.dll
ModLoad: 74cc0000 74d20000 C:\Windows\syswow64\SspiCli.dll
ModLoad: 74cb0000 74cbc000 C:\Windows\syswow64\CRYPTBASE.dll
ModLoad: 5f840000 5f8a8000 d:\dynamorio\build\bin32\drinjectlib.dll
(25ddc.25e68): Break instruction exception - code 80000003 (first chance)
eax=00000000 ebx=00000000 ecx=7c380000 edx=0020e3c8 esi=fffffffe edi=00000000
eip=776c0e14 esp=0037f430 ebp=0037f45c iopl=0 nv up ei pl zr na pe nc
cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00000246
ntdll!LdrpDoDebuggerBreak+0x2c:
776c0e14 cc int 3
0:000> .childdbg 1
Processes created by the current process will be debugged
0:000> g
ModLoad: 73f90000 73fdc000 C:\Windows\SysWOW64\apphelp.dll
Symbol search path is: SRV*C:\symbols*
Executable search path is:
ModLoad: 000d0000 000d6000 testHelloWorld.exe
ModLoad: 77620000 777a0000 ntdll.dll
ModLoad: 75330000 75440000 C:\Windows\syswow64\kernel32.dll
ModLoad: 76cf0000 76d37000 C:\Windows\syswow64\KERNELBASE.dll
ModLoad: 6d2f0000 6d3de000 C:\Windows\SysWOW64\MSVCR120.dll
(25968.258fc): Break instruction exception - code 80000003 (first chance)
eax=00000000 ebx=00000000 ecx=ad610000 edx=0025df18 esi=fffffffe edi=00000000
eip=776c0e14 esp=004ef8f0 ebp=004ef91c iopl=0 nv up ei pl zr na pe nc
cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00000246
ntdll!LdrpDoDebuggerBreak+0x2c:
776c0e14 cc int 3
1:001> l+s
Source options are 4:
4/s - List source code at prompt
1:001> l+t
Source options are 5:
1/t - Step/trace by source line
4/s - List source code at prompt
1:001> $><D:\dynamorio\tools\windbg-scripts\load_syms
Memory access error at ') = b1d2ae58) {; .if (dwo(@$t1 + 4) = ca50c356) {; .if (dwo(@$t1 + 8) = 63000089) {; .if (dwo(@$t1 + c) = 3fa898f0) {; aS /c ${/v:loadpriv} .printf "%ma", @$t1 + 2c; .block { ${loadpriv} }; ad ${/v:loadpriv}; } .else {; .echo "DynamoRIO not detected"; }; } .else {; .echo "DynamoRIO not detected"; }; } .else {; .echo "DynamoRIO not detected"; };} .else {; .echo "DynamoRIO not detected";};'
As document says, script will fail if the process is not running under DynamoRIO or if it has not finished DynamoRIO initialization, but i still don't understand how to solve this error...