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栈的格式和位置有变化。正在写第二版,会把这个例子好好更新一下,新版本一旦完成就会先放到网站上

Powered by Community Server Powered by CnForums.Net