约有 22 项符合查询结果, 以下是第 2 - 3项。
费时 < 1 秒。
windbg本地化pdb文件时,会根据pdb名称和pdb signature来创建目录存储pdb文件。目录结构如下:{$LocalSymbolPath}\Foo.pdb\89276E3A8CD1411DA3265276467E199E1\Foo.pdb最后一级文件夹的名称为pdb signature加字符'1',这最后一个字符是怎么算出来的?哪位了解的来解释下啊?感激不尽!
Posted in C/C++本地代码调试
by
Abstr
on 2015-08-03
这个问题的背景是我根据pdb里面得到的行起始地址在windbg里面下断,在某个特定地址下断后,会触发一个av异常。这个地址对应的源码是函数末尾的'}',机器码:b8 20 a8 74 f7指令: mov eax, 0f774a820h在这里下断后就会报access violation,报74a820cdh处访问违规,看起来是指令乱序了,但是我搞不懂为什么会这样。按理说windbg把这个地址的首字节指令替换为0xcc,执行到这里后应该首先触发断点才对,实际情况是不但没有触发断点,而且会收到va。系统是win7 x64调试器为 windbg x86
Posted in C/C++本地代码调试
by
Abstr
on 2015-07-29
windbg的帮助里面有这么一句话,哪位大大来解释下原因啊 If the code that a bp breakpoint is set on moves, the breakpoint remains at the address and might point to different code or to an invalid location.
Posted in C/C++本地代码调试
by
Abstr
on 2015-07-29
多谢张老师,确实是要使用到调试器相关知识处理问题。上面说的问题,我已经有点眉目了。简单的说下问题:我在DllMain位置下断,1、第一次接收到调试事件后返回DBG_NOT_HANDLED2、异常返回程序执行SEH的处理代码3、第二次接收到调试事件恢复断点问题就出在第2和第3步之间,我用windbg反汇编了DllMain代码,发现__DllMainCRTStartup调用DllMain之前使用了__try包裹这段代码,之所以我在DllMain设置的断点和其他位置的断点表现的差异,应该出在SEH处理代码这里,有可能__DllMainCRTStartup捕获了这个异常,没作处理然后又抛了另外一个异常出来。这就导致我没受到DllMain断点第二次命中事件之前,就收到了另外一个异常,最后导致堆破坏错误 ...
Posted in C/C++本地代码调试
by
Abstr
on 2015-03-09
I can't use windbg, because I want to design a debugger to do sth. Windbg works well at this point. So I want to know what's the difference between my debugger and windbg.I use WriteProcessMemory(0xcc) to set breakpoint.
Posted in C/C++本地代码调试
by
Abstr
on 2015-03-05
补充:我是在被调试的初始端点处,开始设置断点的,这个时候被调试程序应该还没有调用loadlibray函数载入dll,后面可以命中DllMain入口函数的断点也证明了这一点。dll是在断点设置之后才被载入的。这里我有一个想法,是不是因为dll还没有载入,所以对应的dll地址也是非法的,我写了对应的地址,是不是就触发了异常?初始断点触发时,dll 应该已经被load了,上面的说法似乎不成立,谁来指导一下啊
Posted in C/C++本地代码调试
by
Abstr
on 2015-03-05
我写了一个简单的调试器,用createprocess的方式启动被调试程序,正常的在exe中下断都没有问题,可以正常的执行。但是,在被调试程序调用的dll里面特定位置下断的时候,会有问题。持续收到访问违规的异常。我调试了代码,发现当我在DllMain函数的入口点下断时会发生这个问题。一旦在这个地址下断,可以正常收到断点命中的调试事件,当我将保存的字节回写回去,恢复执行之后就开始不停收到访问违规的异常。不停收到这个异常是因为我没有对访问违规事件做处理。问题简单来说就是我在DllMain入口处下断,恢复断点后,就访问违规了。哪位来不吝赐教一下?叩首百拜。
Posted in C/C++本地代码调试
by
Abstr
on 2015-03-05
DLL的代码段是共享的,如果用windbg在user32.dll的MessageBoxW处下一个断点,实际上应该是修改了user32!MessageBoxW出的内存值为0xcc才对,但是这个断点并不会影响到其他进程。不明白为什么
Posted in C/C++本地代码调试
by
Abstr
on 2015-02-28
多谢张老师,http://advdbg.org/books/swdbg/lbr.zip 这个链接不存在
Posted in Windows内核调试
by
Abstr
on 2014-11-10