SkyLined / BugId

Detect, analyze and uniquely identify crashes in Windows applications
https://bugid.skylined.nl
Other
500 stars 91 forks source link

BugId fails with error: "Numeric expression missing" #117

Open maxcoderrrr opened 1 year ago

maxcoderrrr commented 1 year ago

Hi, I was running the latest release of BugId and encountered the following error:

┌───[ Software license warning ]─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
│ ▲ You have no license for BugId and your trial period will expire on May 9th, 2023
│ ▲ You have no license for mBugId and your trial period will expire on May 9th, 2023
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
→ Command line: C:\test\test.exe C:\test\test.input
+ Main process 2752/0xAC0 (test.exe, x86, IL:3): Attached ("C:\test\test.exe" C:\test\test.input).
► Main process 2752/0xAC0 (test.exe, x86, IL:3): debug(ac0.d94): Windows Runtime Originate Error - code 40080201 (first chance)
                                                  debugwindows\dwm\dwmapi\attribute.cpp(131)\dwmapi.dll!6C8C3FBF: (caller: 71349469) ReturnHr(1) tid(a6c) 80070057 The parameter is incorrect.
► Main process 2752/0xAC0 (test.exe, x86, IL:3): debug windows\dwm\dwmapi\attribute.cpp(131)\dwmapi.dll!6C8C3FBF: (caller: 71349469) ReturnHr(2) tid(a6c) 80070057 The parameter is incorrect.
► Main process 2752/0xAC0 (test.exe, x86, IL:3): debug windows\dwm\dwmapi\attribute.cpp(181)\dwmapi.dll!6C8C45E0: (caller: 728CA5F6) ReturnHr(3) tid(6d0) 80070057 The parameter is incorrect.
┌───[ Fatal mBugId.cCdbWrapper.cCdbWrapper_cEndOfCommandOutputMarkerMissingException.cCdbWrapper_cEndOfCommandOutputMarkerMissingException Exception in thread 6776/0x1A78 (cThread#1FAD4D9D0D0{main = __fRun, #6776, running}) ]
│ Exception attributes:
│ add_note = <built-in method add_note of cCdbWrapper_cEndOfCommandOutputMarkerMissingException object at 0x000001FAD4DE6680>#1FAD4DEA6B0
│ args = tuple([<instance builtins:bytes 'b\'Numeric expression missing from \\\'@!"ffffed4c"; \\\'\''>#1FAD4DE6F10]#1FAD4CAA5C0)#1FAD4D744C0
│ asbCommandOutput = [<instance builtins:bytes 'b\'Numeric expression missing from \\\'@!"ffffed4c"; \\\'\''>#1FAD4DE6F10]#1FAD4CAA5C0
│ with_traceback = <built-in method with_traceback of cCdbWrapper_cEndOfCommandOutputMarkerMissingException object at 0x000001FAD4DE6680>#1FAD4DEA6B0
│ 
│ Local variables:
│   asbFilteredLines = [<instance builtins:bytes 'b\'Numeric expression missing from \\\'@!"ffffed4c"; \\\'\''>#1FAD4DE6F10]#1FAD4CAA5C0
│   bAddOutputToHTMLReport = False
│   bApplicationWillBeRun = False
│   bEndOfCommandOutputMarkerFound = False
│   bIgnoreOutput = False
│   bOutputIsInformative = False
│   bStartOfCommandOutputMarkerFound = True
│   o0LineInterruptedByCdbError = None
│   oCdbWrapper = <mBugId.cCdbWrapper.cCdbWrapper.cCdbWrapper object at 0x000001FAD4D7D950>#1FAD4D7D950
│   oEventFailedMatch = None
│   oPromptMatch = <re.Match object; span=(0, 7), match=b'1:002> '>#1FAD4D31000
│   sb0EndOfCommandOutputMarker = <instance builtins:bytes "b'=<[{END}]>='">#1FAD4C99CB0
│   sb0StartOfCommandOutputMarker = <instance builtins:bytes "b'=<[{START}]>='">#1FAD4C99E90
│   sbCurrentLine = <instance builtins:bytes "b'1:002> '">#1FAD4D22700
│   sbFilteredCurrentLine = <instance builtins:bytes "b'1:002> '">#1FAD4D22B20
│   u0Byte = 32
│ 
│ Stack for thread 6776/0x1A78 (cThread#1FAD4D9D0D0{main = __fRun, #6776, running}):
│ ─┐ __fRun @ C:\bugid\modules\mBugId\cCdbWrapper\cCdbWrapper_cHelperThread.py:66
│  │ 65:      try:
│  │ 66:        oSelf.__fActivity(*oSelf.__axActivityArguments);
│  ├─┐ cCdbWrapper_fCdbStdInOutHelperThread @ C:\bugid\modules\mBugId\cCdbWrapper\cCdbWrapper_fCdbStdInOutHelperThread.py:54
│  ╷ │ 53:    oCdbWrapper.fbFireCallbacks("Log message", "Main loop #%d" % uMainLoopCounter);
│  ╷ │ 54:    (bEventIsFatal, bEventHasBeenHandled) = oCdbWrapper.ftbHandleLastCdbEvent(asbOutputWhileRunningApplication);
│  ╷ ├─┐ cCdbWrapper_ftbHandleLastCdbEvent @ C:\bugid\modules\mBugId\cCdbWrapper\cCdbWrapper_ftbHandleLastCdbEvent.py:214
│  ╷ ╷ │ 213:    oCdbWrapper.o0ReservedMemoryVirtualAllocation = None;
│  ╷ ╷ │ 214:  o0BugReport = cBugReport.fo0CreateForException(
│  ╷ ╷ ├─┐ cBugReport?.fo0CreateForException @ C:\bugid\modules\mBugId\cBugReport\cBugReport.py:134
│  ╷ ╷ ╷ │ 133:    # Create a preliminary error report.
│  ╷ ╷ ╷ │ 134:    o0BugReport = cBugReport.foCreate(
│  ╷ ╷ ╷ ├─┐ cBugReport?.foCreate @ C:\bugid\modules\mBugId\cBugReport\cBugReport.py:181
│  ╷ ╷ ╷ ╷ │ 180:    );
│  ╷ ╷ ╷ ╷ │ 181:    fApplyBugTranslationsToBugReport(oCdbWrapper, oBugReport);
│  ╷ ╷ ╷ ╷ ├─┐ fApplyBugTranslationsToBugReport @ C:\bugid\modules\mBugId\mBugTranslations\fApplyBugTranslationsToBugReport.py:65
│  ╷ ╷ ╷ ╷ ╷ │ 64:    for oBugTranslation in aoBugTranslations:
│  ╷ ╷ ╷ ╷ ╷ │ 65:      if oBugTranslation.fbApplyToBugReport(oCdbWrapper, oBugReport):
│  ╷ ╷ ╷ ╷ ╷ ├─┐ cBugTranslation?.fbApplyToBugReport @ C:\bugid\modules\mBugId\mBugTranslations\cBugTranslation.py:137
│  ╷ ╷ ╷ ╷ ╷ ╷ │ 136:    # If more top frames may be irrelevant, see if they are there and hide them:
│  ╷ ╷ ╷ ╷ ╷ ╷ │ 137:    if (oSelf.bAdditionalIrrelevantNoneTopStackFrames or oSelf.rb0AdditionalIrrelevantStackFrameSymbols) and oBugReport.o0Stack:
│  ╷ ╷ ╷ ╷ ╷ ╷ ├─┐ o0Stack @ C:\bugid\modules\mBugId\cBugReport\cBugReport.py:101
│  ╷ ╷ ╷ ╷ ╷ ╷ ╷ │ 100:    if oSelf.__o0Stack is None:
│  ╷ ╷ ╷ ╷ ╷ ╷ ╷ │ 101:      oSelf.__o0Stack = cStack.foCreate(oSelf.__oProcess, oSelf.__oWindowsAPIThread, oSelf.uStackFramesCount);
│  ╷ ╷ ╷ ╷ ╷ ╷ ╷ ├─┐ cStack?.foCreate @ C:\bugid\modules\mBugId\cStack.py:333
│  ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ │ 332:              o0CallTargetFunction, i0CallTargetOffsetFromStartOfFunction
│  ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ │ 333:            ) = oProcess.ftxSplitSymbolOrAddress(sb0CallTargetSymbol);
│  ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ├─┐ cProcess_ftxSplitSymbolOrAddress @ C:\bugid\modules\mBugId\cProcess\cProcess_ftxSplitSymbolOrAddress.py:40
│  ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ │ 39:    sbModuleCdbId = sb0ModuleCdbIdOrAddress;
│  ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ │ 40:    o0Module = oProcess.fo0GetModuleForCdbId(sbModuleCdbId);
│  ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ├─┐ cProcess?.fo0GetModuleForCdbId @ C:\bugid\modules\mBugId\cProcess\cProcess.py:108
│  ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ │ 107:    # No; try to find the start address of the module for this cdb id:
│  ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ │ 108:    u0StartAddress = oSelf.fu0GetAddressForSymbol(sbCdbId);
│  ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ├─┐ cProcess_fu0GetAddressForSymbol @ C:\bugid\modules\mBugId\cProcess\cProcess_fu0GetAddressForSymbol.py:12
│  ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ │ 11:  # Get the address of the symbol without the offset:
│  ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ │ 12:  asbCommandOutput = oSelf.fasbExecuteCdbCommand(
│  ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ├─┐ cProcess?.fasbExecuteCdbCommand @ C:\bugid\modules\mBugId\cProcess\cProcess.py:179
│  ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ │ 178:    oSelf.fSelectInCdb();
│  ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ │ 179:    return oSelf.oCdbWrapper.fasbExecuteCdbCommand(sbCommand, sb0Comment, **dxArguments);
│  ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ├─┐ cCdbWrapper_fasbExecuteCdbCommand @ C:\bugid\modules\mBugId\cCdbWrapper\cCdbWrapper_fasbExecuteCdbCommand.py:89
│  ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ │ 88:      if gbDebugIO: print(">stdin>%s" % sCommand);
│  ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ │ 89:      return oCdbWrapper.fasbReadOutput(
│  ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ├─┐ cCdbWrapper_fasbReadOutput @ C:\bugid\modules\mBugId\cCdbWrapper\cCdbWrapper_fasbReadOutput.py:199
│  ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ │ 198:            if sb0EndOfCommandOutputMarker is not None and not bEndOfCommandOutputMarkerFound:
│  ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ │ 199:              raise oCdbWrapper.cEndOfCommandOutputMarkerMissingException(asbFilteredLines);
│  ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ │ ▲ cCdbWrapper_cEndOfCommandOutputMarkerMissingException([b'Numeric expression missing from \'@!"ffffed4c"; \''])
│  ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ │ cCdbWrapper_fasbReadOutput @ C:\bugid\modules\mBugId\cCdbWrapper\cCdbWrapper_fasbReadOutput.py:202
│  ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ │ 201:  finally:
│  ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ │ 202:    if bApplicationWillBeRun:
│  ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╒═╛
│  ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ │ cCdbWrapper_fasbExecuteCdbCommand @ C:\bugid\modules\mBugId\cCdbWrapper\cCdbWrapper_fasbExecuteCdbCommand.py:103
│  ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ │ 102:        nExecutionTimeInSeconds = time.time() - nStartTimeInSeconds;
│  ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ │ 103:        oCdbWrapper.sCdbIOHTML += "Command executed in %.03f seconds.<br/>\n" % nExecutionTimeInSeconds;
│  ╒═════════════════════════╛
│  │ __fRun @ C:\bugid\modules\mBugId\cCdbWrapper\cCdbWrapper_cHelperThread.py:74
│  │ 73:        cException, oException, oTraceBack = sys.exc_info();
│  │ 74:        if not oSelf.__oCdbWrapper.fbFireCallbacks("Internal exception", oSelf.__oThread, oException, oTraceBack):
│ ═╛ ▲ Application terminated because exception was not handled.
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

Please report the above details at the below web-page so it can be addressed:
    https://github.com/SkyLined/BugId/issues/new
If you do not have a github account, or you want to report this issue
privately, you can also send an email to:
    BugId@skylined.nl

In your report, please copy ALL the information about the exception reported
above, as well as the stack trace and BugId version information. This makes
it easier to determine the cause of this issue and makes for faster fixes.

If you can reproduce the issue, it would help a lot if you can run BugId in
verbose mode by adding the --verbose command-line argument.
as in: BugId -v --isa=x86 --n0ApplicationMaxRunTimeInSeconds=15 C:\test\test.exe -- C:\test\test.input

  ____________________________________________________________________________
                              __
   ││▌║█▐▐║▌▌█│║║│      _,siSP**YSis,_       ╒╦╦══╦╗             ╒╦╦╕    ╔╦╕
   ││▌║█▐▐║▌▌█│║║│    ,SP*'`    . `'*YS,      ║╠══╬╣ ╔╗ ╔╗ ╔╦═╦╗  ║║  ╔╦═╬╣
   ╵2808197631337╵   dS'  _    |    _ 'Sb    ╘╩╩══╩╝ ╚╩═╩╝ ╚╩═╬╣ ╘╩╩╛ ╚╩═╩╝
                    dP     \,-` `-<` `  Y;                 ╚╩═╩╝    ╮╷╭
      ╮╷╭          ,S`  \+' \      \    `Sissssssssssssssssssss,   :O()    ╲ö╱
     :O()          (S   (   | --====)   :SSSSSSSSSSSSSSSSSSSSSSD    ╯╵╰    ─O─
      ╯╵╰  ╮╷╭     'S,  /+, /      /    ,S?********************'           ╱O╲
           ()O:     Yb    _/'-_ _-<._.  dP
           ╯╵╰       YS,       |      ,SP         https://bugid.skylined.nl
  ____________________`Sbs,_    ' _,sdS`______________________________________
                        `'*YSissiSY*'`
                              ``
┌───[ Version information ]──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
│ ▲ BugId version: 2022-12-12 12:05 (in trial period).
│ ▲ mBugId version: 2022-12-12 12:05 (in trial period).
│ √ mConsole version: 2022-12-12 12:05.
│ √ mDateTime version: 2022-12-12 12:04.
│ √ mDebugOutput version: 2022-12-12 12:05.
│ √ mFileSystemItem version: 2022-12-12 12:05.
│ √ mHumanReadable version: 2022-12-12 12:04.
│ √ mMultiThreading version: 2022-12-12 12:05.
│ √ mNotProvided version: 2022-12-12 12:04.
│ √ mProductDetails version: 2022-12-12 12:05.
│ √ mRegistry version: 2022-12-12 12:05.
│ √ mWindowsAPI version: 2022-12-12 12:05.
│ √ mWindowsSDK version: 2022-12-12 12:04.
│ • Windows version: Windows 10 Pro release 1909, build 18363 x64.
│ • Python version: 3.11.1 x64.
│ • cdb.exe (x86) version: 10.0.22621.755.
│ • cdb.exe (x64) version: 10.0.22621.755.
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Thank you in advance for helping to improve BugId!
√ A copy of the error report can be found in C:\bugid\Internal error reports\2023-04-09 12։27։57.370074 BugId error report #2.txt.

Any help to fix this issue would be great. Please let me know in case any further information is required.

SkyLined commented 1 year ago

I think the root cause is that the code interpretes addresses that start with a hex digit (such as ffffed4c) as the name of a module, rather than an address. I am testing a fix.