Advanced Debugging
About AdvDbg Consult Train Services Products Tools Community Contact  
欢迎光临 高端调试 登录 | 注册 | FAQ
 
  ACPI调试
Linux内核调试
Windows内核调试
 
  调试战役
调试原理
新工具观察
 
  Linux
Windows Vista
Windows
 
  Linux驱动
WDF
WDM
 
  PCI Express
PCI/PCI-X
USB
无线通信协议
 
  64位CPU
ARM
IA-32
  CPU Info Center
 
  ACPI标准
系统认证
Desktop
服务器
 
  Embedded Linux
嵌入式开发工具
VxWorks
WinCE
嵌入式Windows
 
  格蠹调试套件(GDK)
  格蠹学院
  小朱书店
  老雷的微博
  《软件调试》
  《格蠹汇编》
  《软件调试(第二版)》
沪ICP备11027180号-1

Windows内核调试

帖子发起人: Coding   发起时间: 2009-11-18 11:41 上午   回复: 3

Print Search
帖子排序:    
   2009-11-18, 11:41 上午
Coding 离线,最后访问时间: 2010/2/20 12:12:52 Coding

发帖数前10位
注册: 2008-05-31
发 贴: 103
用gflag同时打开ust和hpa后为什么stack trace不起作用了??
Reply Quote

WinXP SP3

如果同时用gflag.exe打开 +ust +hpa的话

ust - Create user mode stack trace database
hpa - Enable page heap

我发现好像ust没有用处,无法用!heap -p -a得到stack trace了

0:000> !gflag
Current NtGlobalFlag contents: 0x02000000
    hpa - Place heap allocations at ends of pages
0:000> !heap -p -a 0x01638fd0
ReadMemory error for address eeddccee
Use `!address eeddccee' to check validity of the address.

如果只是用ust的话,可以得到stack trace

0:000> !gflag
Current NtGlobalFlag contents: 0x00001040
    hpc - Enable heap parameter checking
    ust - Create user mode stack trace database

0:000> !heap -p -a 0x00344f58
    address 00344f58 found in
    _HEAP @ 340000
      HEAP_ENTRY Size Prev Flags    UserPtr UserSize - state
        00344f30 000d 0000  [07]   00344f38    0004c - (busy)
        Trace: 0026
        7c96eed2 ntdll!RtlDebugAllocateHeap+0x000000e1
        7c94b394 ntdll!RtlAllocateHeapSlowly+0x00000044
        7c918f21 ntdll!RtlAllocateHeap+0x00000e64
        102c163e MSVCR90D!malloc_base+0x000000ee
        102d0336 MSVCR90D!malloc_dbg+0x00000306
        102d00ef MSVCR90D!malloc_dbg+0x000000bf
        102d009c MSVCR90D!malloc_dbg+0x0000006c
        102db7bb MSVCR90D!malloc+0x0000001b
        102bdc91 MSVCR90D!operator new+0x00000011
        411aac HeapExample!fuc1+0x0000002c
        411443 HeapExample!wmain+0x00000023
        4119d8 HeapExample!__tmainCRTStartup+0x000001a8
        41181f HeapExample!wmainCRTStartup+0x0000000f
        7c817077 kernel32!BaseProcessStart+0x00000023


IP 地址: 已记录   报告
   2009-11-18, 11:58 上午
Coding 离线,最后访问时间: 2010/2/20 12:12:52 Coding

发帖数前10位
注册: 2008-05-31
发 贴: 103
Re: 用gflag同时打开ust和hpa后为什么stack trace不起作用了??
Reply Quote
直接也发现了错误,这可能是什么问题?还有其他的flags需要开吗?
ReadMemory error for address eeddccee
Use `!address eeddccee' to check validity of the address.

0:000> !heap -p

Active GlobalFlag bits:
hpa - Place heap allocations at ends of pages

StackTraceDataBase @ 00420000 of size 01000000 with 00000024 traces

PageHeap enabled with options:
ENABLE_PAGE_HEAP
COLLECT_STACK_TRACES

active heaps:

+ 150000
ENABLE_PAGE_HEAP COLLECT_STACK_TRACES
NormalHeap - 250000
HEAP_GROWABLE
ReadMemory error for address eeddccee
Use `!address eeddccee' to check validity of the address.
IP 地址: 已记录   报告
   2009-11-18, 12:54 下午
Raymond 离线,最后访问时间: 2020/7/3 3:40:25 格蠹老雷

发帖数前10位
注册: 2005-12-19
发 贴: 1,303
Re: 用gflag同时打开ust和hpa后为什么stack trace不起作用了??
Reply Quote
可能是!heap命令的问题,这个命令太复杂了,bug也比较多,建议使用UMDH(《软件调试》23.7.2和23.7.3)
IP 地址: 已记录   报告
   2009-11-18, 13:26 下午
Coding 离线,最后访问时间: 2010/2/20 12:12:52 Coding

发帖数前10位
注册: 2008-05-31
发 贴: 103
Re: 用gflag同时打开ust和hpa后为什么stack trace不起作用了??
Reply Quote
您老太明智了,换到Windbg 6.8就好了
用Windbg 6.11就有问题。

IP 地址: 已记录   报告
高端调试 » 软件调试 » Windows内核调试 » 用gflag同时打开ust和hpa后为什么stack trace不起作用了??

 
Legal Notice Privacy Statement Corporate Governance Corporate Governance
(C)2004-2020 ADVDBG.ORG All Rights Reserved.