Re: 请教一个关于5.2章 LBR栈的问题
《软件调试》答疑
请教一个关于5.2章 LBR栈的问题
whatday
2012-02-21, 10:36 上午
首先感慨一下,张老师这书实在是太好了,感觉完全是如饥似渴,难得的好书呀。。在此谢谢老师的辛劳。
我在学习5.2章节的时候遇到了一个问题,LBR的源代码我是直接下载的源代码,编译以后放在相应目录下运行出现以下结果
我的CPU是Core2 Duo CPU,我想这个问题是不是因为我的CPU和书上演示的CPU有些不一样,但是我看了书上介绍的Core微框架应该是差不多的吧,
所以实在不解到此来问问老师,先谢谢了。
lkd> !lbr.lbr
Access LBR (Last Branch Recording) registers of IA-32 CPU.
Version 1.0.0.2 by Raymond
MSR_DEBUGCTLB=3
LBR bit is cleared now.
MSR_LASTBRANCH_TOS=1
MSR_LASTBRANCH_1: [00000000] +0
MSR_LASTBRANCH_1: [8068b561] nt!KdpSysWriteMsr+1c
MSR_LASTBRANCH_0: [00000000] +0
MSR_LASTBRANCH_0: [8068b4fe] nt!KdpSysReadMsr+14
MSR_LASTBRANCH_7: [00000000] +0
MSR_LASTBRANCH_7: [00000000] +0
MSR_LASTBRANCH_6: [00000000] +0
MSR_LASTBRANCH_6: [00000000] +0
MSR_LASTBRANCH_5: [00000000] +0
MSR_LASTBRANCH_5: [00000000] +0
MSR_LASTBRANCH_4: [00000000] +0
MSR_LASTBRANCH_4: [00000000] +0
MSR_LASTBRANCH_3: [00000000] +0
MSR_LASTBRANCH_3: [8068b4fe] nt!KdpSysReadMsr+14
MSR_LASTBRANCH_2: [00000000] +0
MSR_LASTBRANCH_2: [8068b4fe] nt!KdpSysReadMsr+14
LBR bit is set now.
lkd> u nt!kdpSysWriteMsr la
nt!KdpSysWriteMsr:
8068b545 6a08 push 8
8068b547 6848f15280 push offset nt!RamdiskBootDiskGuid+0x74 (8052f148)
8068b54c e85289e5ff call nt!_SEH_prolog (804e3ea3)
8068b551 33f6 xor esi,esi
8068b553 8975fc mov dword ptr [ebp-4],esi
8068b556 8b450c mov eax,dword ptr [ebp+0Ch]
8068b559 ff7004 push dword ptr [eax+4]
8068b55c ff30 push dword ptr [eax]
8068b55e ff7508 push dword ptr [ebp+8]
8068b561 e88f7be8ff call nt!WRMSR (805130f5)
Re: 请教一个关于5.2章 LBR栈的问题
格蠹老雷
2012-02-23, 13:01 下午
多谢!的确是因为型号的不同,LBR栈的格式和位置有变化。正在写第二版,会把这个例子好好更新一下,新版本一旦完成就会先放到网站上