Uploaded image for project: 'Core ReactOS'
  1. Core ReactOS
  2. CORE-17842

Process Explorer 16.02 crashes, only on MSVC build

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Major
    • 0.4.15
    • Wine
    • None

    Description

      0.4.15-dev-3348-g22d1e7a4e41

      Unhandled exception
      ExceptionCode:    c0000005
      Break instruction exception - code 80000003 (first chance)
      001b:7c62ac7f cc              int     3
      kd> .reload /user
      Loading User Symbols
      ...............................................
      kd> ?? ExceptionInfo
      struct _EXCEPTION_POINTERS * 0x0012b48c
         +0x000 ExceptionRecord  : 0x0012b5ac _EXCEPTION_RECORD
         +0x004 ContextRecord    : 0x0012b5c8 _CONTEXT
      kd> .cxr 0x0012b5c8 
      eax=01456d90 ebx=00000001 ecx=00000280 edx=00000014 esi=0012bce8 edi=0012b9cc
      eip=7c1b1e99 esp=0012b894 ebp=0012b8a0 iopl=0         nv up ei pl nz na po nc
      cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00010202
      COMCTL32!STATUSBAR_GetParts+0xb9:
      001b:7c1b1e99 8b0408          mov     eax,dword ptr [eax+ecx] ds:0023:01457010=????????
      kd> kp
        *** Stack trace for last set context - .thread/.cxr resets it
       # ChildEBP RetAddr  
      00 0012b8a0 7c1b5082 COMCTL32!STATUSBAR_GetParts(struct STATUS_INFO * infoPtr = 0x01456a10, int num_parts = 0n32, int * parts = 0x0012bce8)+0xb9 [R:\src\dev\dll\win32\comctl32\status.c @ 436] 
      01 0012b8d0 77aa063a COMCTL32!StatusWindowProc(struct HWND__ * hwnd = 0x000401e8, unsigned int msg = 0x406, unsigned long wParam = 0x20, long lParam = 0n1228008)+0x1f2 [R:\src\dev\dll\win32\comctl32\status.c @ 1188] 
      02 0012b900 77a8e966 user32!CALL_EXTERN_WNDPROC+0x1a
      03 0012b9e4 77a9297b user32!IntCallWindowProcW(int IsAnsiProc = 0n0, <function> * WndProc = 0x7c1b4e90, struct _WND * pWnd = 0x00373168, struct HWND__ * hWnd = 0x000401e8, unsigned int Msg = 0x406, unsigned int wParam = 0x20, long lParam = 0n1228008)+0x656 [R:\src\dev\win32ss\user\user32\windows\message.c @ 1547] 
      04 0012ba18 77a93ded user32!IntCallMessageProc(struct _WND * Wnd = 0x00373168, struct HWND__ * hWnd = 0x000401e8, unsigned int Msg = 0x406, unsigned int wParam = 0x20, long lParam = 0n1228008, int Ansi = 0n0)+0x1eb [R:\src\dev\win32ss\user\user32\windows\message.c @ 1798] 
      05 0012baa0 00479d0a user32!SendMessageW(struct HWND__ * Wnd = 0x000401e8, unsigned int Msg = 0x406, unsigned int wParam = 0x20, long lParam = 0n1228008)+0x11d [R:\src\dev\win32ss\user\user32\windows\message.c @ 2403] 
      WARNING: Stack unwind information not available. Following frames may be wrong.
      06 0012bd90 00457872 procexp+0x79d0a
      07 0012eb9c 0043df95 procexp+0x57872
      08 0012f8d4 0040fe72 procexp+0x3df95
      09 0012f8f8 0043c1ed procexp+0xfe72
      0a 0012f914 77aa063a procexp+0x3c1ed
      0b 0012f944 77a8e966 user32!CALL_EXTERN_WNDPROC+0x1a
      0c 0012fa28 77a945d0 user32!IntCallWindowProcW(int IsAnsiProc = 0n0, <function> * WndProc = 0x0043c1c0, struct _WND * pWnd = 0x0036f010, struct HWND__ * hWnd = 0x001700b0, unsigned int Msg = 1, unsigned int wParam = 0, long lParam = 0n1243904)+0x656 [R:\src\dev\win32ss\user\user32\windows\message.c @ 1547] 
      0d 0012fac8 7c9377dc user32!User32CallWindowProcFromKernel(void * Arguments = 0x0012fae0, unsigned long ArgumentLength = 0xd0)+0x360 [R:\src\dev\win32ss\user\user32\windows\message.c @ 3005] 
      0e 0012fd30 77a9b516 ntdll!KiUserCallbackDispatcher+0x2c
      0f 0012fddc 00415322 user32!CreateWindowExW(unsigned long dwExStyle = 0, wchar_t * lpClassName = 0x004fdb30 "PROCEXPL", wchar_t * lpWindowName = 0x004d8588 "Process Explorer - Sysinternals: www.sysinternals.com", unsigned long dwStyle = 0xcf0000, int x = 0n0, int y = 0n0, int nWidth = 0n780, int nHeight = 0n550, struct HWND__ * hWndParent = 0x00000000, struct HMENU__ * hMenu = 0x00000000, struct HINSTANCE__ * hInstance = 0x00400000, void * lpParam = 0x00000000)+0x3e6 [R:\src\dev\win32ss\user\user32\windows\window.c @ 609] 
      10 0012fe54 0048c6eb procexp+0x15322
      11 0012ff30 004b9dde procexp+0x8c6eb
      12 0012ffc0 7c6369e4 procexp+0xb9dde
      13 0012fff0 00000000 kernel32!BaseProcessStartup(<function> * lpStartAddress = 0x004b9e49)+0x54 [R:\src\dev\dll\win32\kernel32\client\proc.c @ 463] 
      kd> ?? infoPtr 
      struct STATUS_INFO * 0x01456a10
         +0x000 Self             : 0x000401e8 HWND__
         +0x004 Notify           : 0x001700b0 HWND__
         +0x008 numParts         : 5
         +0x00c height           : 0x1c
         +0x010 minHeight        : 0x18
         +0x014 simple           : 0n0
         +0x018 hwndToolTip      : (null) 
         +0x01c hFont            : (null) 
         +0x020 hDefaultFont     : 0x020a0226 HFONT__
         +0x024 clrBk            : 0xff000000
         +0x028 bUnicode         : 0n1
         +0x02c part0            : STATUSWINDOWPART
         +0x04c parts            : 0x01456d90 STATUSWINDOWPART
         +0x050 horizontalBorder : 0n0
         +0x054 verticalBorder   : 0n2
         +0x058 horizontalGap    : 0n2
      
      

      Shows that SB_GETPARTS with wParam == 0x20 is called on a StatusBar with only 5 parts, which is valid according to MSDN:
      https://docs.microsoft.com/en-us/windows/win32/controls/sb-getparts

      wParam
      Number of parts for which to retrieve coordinates. If this parameter is greater than the number of parts in the window, the message retrieves coordinates for existing parts only.

      Attachments

        Activity

          People

            learn_more Mark Jansen
            learn_more Mark Jansen
            Votes:
            3 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: