Ureader.com  
Microsoft software help and Community
   home   |   control panel login   |   archive   |  
 
Windos
win32.3rdparty
win32.directx.audio
win32.directx.ddk
win32.directx.graphics
win32.directx.input
win32.directx.managed
win32.directx.misc
win32.directx.networking
win32.directx.sdk
win32.directx.video
win32.dirx.grap.shaders
win32.gdi
win32.international
win32.kernel
win32.messaging
win32.mmedia
win32.networks
win32.ole
win32.rtc
win32.tapi
win32.tapi.beta
win32.tools
win32.ui
win32.wince
win32.wmi
windows.mediacenter
winfx.aero
winfx.announcements
winfx.avalon
winfx.collaboration
winfx.fundamentals
winfx.general
winfx.indigo
winfx.sdk
winfx.winfs
  
 
date: Mon, 23 Jun 2008 11:47:31 -0700 (PDT),    group: microsoft.public.win32.programmer.tools        back       


Several Application Verifier Bugs and a Feature Request   
I'm using Application Verifier 3.4.0158. Using the GUI, I select File-
>Add Application and type the name of my .exe into the dialog box. In
the Tests window, I expand Basics and Click on Heaps. In the
properties window, I click on Dlls and type the name of a dll. I save
the settings to the registry. When I run the program under windbg and
type heap -p, I get the following output:

0:000> !heap -p

    Active GlobalFlag bits:
        vrf - Enable application verifier
        hpa - Place heap allocations at ends of pages

    StackTraceDataBase @ 00150000 of size 01000000 with 00000000
traces

    PageHeap enabled with options:
        ENABLE_PAGE_HEAP
        COLLECT_STACK_TRACES
        USE_DLL_NAMES


    active heaps:

    + 1150000
        ENABLE_PAGE_HEAP COLLECT_STACK_TRACES USE_DLL_NAMES
      NormalHeap - 1250000
          HEAP_GROWABLE
    + 1360000
        ENABLE_PAGE_HEAP COLLECT_STACK_TRACES USE_DLL_NAMES
      NormalHeap - 1460000
          HEAP_GROWABLE HEAP_CLASS_1
    + 14e0000
        ENABLE_PAGE_HEAP COLLECT_STACK_TRACES USE_DLL_NAMES
      NormalHeap - 15e0000
          HEAP_GROWABLE HEAP_CLASS_1

Note that the list of dll names under USE_DLL_NAMES is empty. Using
regedit, I look at the PageHeapTargetDlls registry entry for my .exe.
It shows my dll name followed by an ellipsis (...). If I right-click
on the registry entry and select "Modify binary data", regedit shows a
null-terminated Unicode string followed by a bunch of zeros to total
1021 bytes (suspiciously close to 1024 bytes). If I right click on the
registry entry and select "Modify" and then simply hit OK without
making any changes, the ellipsis is gone, the unnecessary trailing
zeros are gone, and windbg shows my dll name correctly. That's bug #1
and workaround #1.

For bug #2, under the heaps test, set the Addr property to true. Leave
the AddrStart and AddrEnd properties at 0 and 0xffffffff,
respectively. Fire up windbg on your .exe and do the heap -p again:

0:000> !heap -p

    Active GlobalFlag bits:
        vrf - Enable application verifier
        hpa - Place heap allocations at ends of pages

    StackTraceDataBase @ 00150000 of size 01000000 with 00000000
traces

    PageHeap enabled with options:
        ENABLE_PAGE_HEAP
        COLLECT_STACK_TRACES
        USE_DLL_RANGE
            SizeRangeStart 00000000 SizeRangeEnd 00000000

Note the SizeRangeEnd is displayed incorrectly. Application Verifier
appears to function correctly (i.e. the sizeRangeEnd is really
0xffffffff and not 0), so this appears to be just a display issue.
That's bug #2.

You might argue that bug #3 is not a bug after all, but I'll mention
it for the sake of completeness. The maximum number of bytes that
application verifier reads from the PageHeapTargetDlls registry entry
is 512. The inclusion list I'd like to use is significantly larger
than this.

That brings me to my feature request. Instead of a huge list (which
doesn't work) of all of the dlls I'd like to use full page heap on,
please allow me to specify a list of dlls to exclude from full page
heap. In other words, I'd like to run full page heap on all of my dlls
except a specified handful. Instead of (or in addition to) an
inclusion list, I'd really like an exclusion list.

Thanks,
David
date: Mon, 23 Jun 2008 11:47:31 -0700 (PDT)   author:   unknown

RE: Several Application Verifier Bugs and a Feature Request   
Issues you mentioned in #1,#2 are working properly in functionality. It 
should be display issues only.

#3 is by design. We will try to increase in the next release.

I logged a work item with your comments , thanks for the feedback.

--Subba Raju

"insideoutclub@gmail.com" wrote:

> I'm using Application Verifier 3.4.0158. Using the GUI, I select File-
> >Add Application and type the name of my .exe into the dialog box. In
> the Tests window, I expand Basics and Click on Heaps. In the
> properties window, I click on Dlls and type the name of a dll. I save
> the settings to the registry. When I run the program under windbg and
> type heap -p, I get the following output:
> 
> 0:000> !heap -p
> 
>     Active GlobalFlag bits:
>         vrf - Enable application verifier
>         hpa - Place heap allocations at ends of pages
> 
>     StackTraceDataBase @ 00150000 of size 01000000 with 00000000
> traces
> 
>     PageHeap enabled with options:
>         ENABLE_PAGE_HEAP
>         COLLECT_STACK_TRACES
>         USE_DLL_NAMES
> 
> 
>     active heaps:
> 
>     + 1150000
>         ENABLE_PAGE_HEAP COLLECT_STACK_TRACES USE_DLL_NAMES
>       NormalHeap - 1250000
>           HEAP_GROWABLE
>     + 1360000
>         ENABLE_PAGE_HEAP COLLECT_STACK_TRACES USE_DLL_NAMES
>       NormalHeap - 1460000
>           HEAP_GROWABLE HEAP_CLASS_1
>     + 14e0000
>         ENABLE_PAGE_HEAP COLLECT_STACK_TRACES USE_DLL_NAMES
>       NormalHeap - 15e0000
>           HEAP_GROWABLE HEAP_CLASS_1
> 
> Note that the list of dll names under USE_DLL_NAMES is empty. Using
> regedit, I look at the PageHeapTargetDlls registry entry for my .exe.
> It shows my dll name followed by an ellipsis (...). If I right-click
> on the registry entry and select "Modify binary data", regedit shows a
> null-terminated Unicode string followed by a bunch of zeros to total
> 1021 bytes (suspiciously close to 1024 bytes). If I right click on the
> registry entry and select "Modify" and then simply hit OK without
> making any changes, the ellipsis is gone, the unnecessary trailing
> zeros are gone, and windbg shows my dll name correctly. That's bug #1
> and workaround #1.
> 
> For bug #2, under the heaps test, set the Addr property to true. Leave
> the AddrStart and AddrEnd properties at 0 and 0xffffffff,
> respectively. Fire up windbg on your .exe and do the heap -p again:
> 
> 0:000> !heap -p
> 
>     Active GlobalFlag bits:
>         vrf - Enable application verifier
>         hpa - Place heap allocations at ends of pages
> 
>     StackTraceDataBase @ 00150000 of size 01000000 with 00000000
> traces
> 
>     PageHeap enabled with options:
>         ENABLE_PAGE_HEAP
>         COLLECT_STACK_TRACES
>         USE_DLL_RANGE
>             SizeRangeStart 00000000 SizeRangeEnd 00000000
> 
> Note the SizeRangeEnd is displayed incorrectly. Application Verifier
> appears to function correctly (i.e. the sizeRangeEnd is really
> 0xffffffff and not 0), so this appears to be just a display issue.
> That's bug #2.
> 
> You might argue that bug #3 is not a bug after all, but I'll mention
> it for the sake of completeness. The maximum number of bytes that
> application verifier reads from the PageHeapTargetDlls registry entry
> is 512. The inclusion list I'd like to use is significantly larger
> than this.
> 
> That brings me to my feature request. Instead of a huge list (which
> doesn't work) of all of the dlls I'd like to use full page heap on,
> please allow me to specify a list of dlls to exclude from full page
> heap. In other words, I'd like to run full page heap on all of my dlls
> except a specified handful. Instead of (or in addition to) an
> inclusion list, I'd really like an exclusion list.
> 
> Thanks,
> David
>
date: Mon, 14 Jul 2008 18:25:01 -0700   author:   subba

Google
 
Web ureader.com


    COPYRIGHT 2007, YARDI TECHNOLOGY LIMITED, ALL RIGHT RESERVE  |   contact us