阅读:1738回复:7
有关SoftIce的用法,请各位帮忙!
为什么?为什么?怎么会这样?每次当我使用SoftIce的时候,第一次装载好*.sys文件后,当我使用命令
File *.cpp 后,在WC窗口里显示出源代码,在没有使用命令前可以利用F3可以进行代码切换,一旦我切换 整个调试窗口到Windows再切换回来时,在WC窗口就出现汇编代码而不能显示原来的*.cpp的源代码,这时 利用F3也不能切换代码?为什么?怎样才能在WC窗口一直显示代码?另外,我还有一个问题,在用SoftIce 进行调试时,一般的步骤是什么?我们要达到的目的是什么?怎样利用堆栈或windows data区来判断调试程 序的正确与否??有哪位高手知道,请告诉我!先表谢意! |
|
沙发#
发布于:2002-03-25 18:40
你切换回SoftIce后显示的汇编代码并不是你原来的源代码当然不能用F3显示。你不能再敲一次File *.cpp?
调试的目的还用说?就是Debug(除错)啊。 使用WD(内存数据)和WL(局部变量)窗口。 调试方法当然就是断点(F9)、单步运行(F8进入子程序F10)、单步运行(不进入子程序F10)、运行到断点处(g)。 够了吧? :D :D :D |
|
|
板凳#
发布于:2002-03-25 19:04
当你切换到Windows时,你要Debug的代码就已经执行完了。这是再切换到Softice时,你实际上中断了你在切换一刹那时系统正在执行的线程,当然得不到源代码了,要想得到,除非再次启动你的要调试的程序。(多少给点分吧)
|
|
地板#
发布于:2002-03-25 19:21
斑竹:
看样子你对Softice很精,那我问几个问题好吗? 我在利用*.exe来调试时用到*.sys,我通过命令装载了*.sys后可以调试*.exe源代码,但我不知道怎样调试*.sys源代码,应该怎样做呢?要应用程序来调用*.sys吗?请指教! |
|
地下室#
发布于:2002-03-25 22:05
告你一个最简单的办法,反正我是长用。
在要停的地方加个DebugBreak() OR INT 3 就象VC在哪行按F9样的!! |
|
|
5楼#
发布于:2002-03-25 22:25
怎样利用堆栈或windows data区来判断调试程序的正确与否
―――――――――――――――――――――――――――― 我不大理解你说的是啥,如你说的是函数成功与否。 一般的函数可以通过反回值也就是EAX 或指针参数在就是GetLastError了。 :D |
|
|
6楼#
发布于:2002-03-26 08:36
斑竹: 在98下好象不能动态加载WDM驱动程序。如果你的驱动程序是实际的PNP硬件,你可以通过插入和拔出加载和卸载驱动程序,调试其DriverEntry和AddDevice例程。应用程序用CreateFile(对应驱动程序的IRP_MJ_CREATE服务例程)、ReadFile--IRP_MJ_READ、WriteFile--IRP_MJ_WRITE、DeviceIoControl--IRP_MJ_DEVICE_CONTROL等等。 |
|
|
7楼#
发布于:2002-03-26 19:35
我用的是Windows2000下的驱动,在我调试时是否要应用程序来调用驱动程序??
|
|