PowerShell / PowerShell/PowerShell-Native
Running win32 application from shell "exits silently" but in reality crashes on load
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- C++
- Sterne
- 68
- Forks
- 46
- Ø Merge
- 3 T. 4 Std.
- Gemergte PRs (30 T.)
- 1
Beschreibung
So I ran into an issue where an application unexpectedly would no longer launch when called directly from the shell, i.e. ".\appname.exe"
After troubleshooting for a bit with my trusty old friend Process Monitor, I could see the process opening and closing down again, looking at the Process Exit event, I saw the exit code of -1073741515 (aka. 0xC0000135, aka. STATUS_DLL_NOT_FOUND)
That was a quite easy fix, but it nagged me that I got no indication of the failure, in any other circumstance (running from cmd, double-clicking in explorer, run or even in powershell with Start-Process) a message would pop up stating a DLL was missing, and which one it was.
(I don't know if this issue extends to Linux/MacOS, or even if it can affect those platform)
Steps to reproduce
- First and foremost, a win32(native) application is needed with a linked library that's missing
- PS > .\path\to\executable.exe
Expected behavior
External System Error prompt
Actual behavior
No Output
Environment data
Name Value
---- -----
PSVersion 6.2.3
PSEdition Core
GitCommitId 6.2.3
OS Microsoft Windows 10.0.18362
Platform Win32NT
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
WSManStackVersion 3.0
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne damit, den Windows PowerShell-Befehl mit einer nativen ausführbaren Datei zu reproduzieren, deren verknüpfte DLL fehlt, und untersuche anschließend, wie der Prozessstart den Fehler behandelt. Als erledigt gilt dies, wenn der Aufruf der ausführbaren Datei einen External System Error meldet, der die fehlende DLL identifiziert, statt keine Ausgabe zu erzeugen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- powershell
- Bereich
- cli, operating-systems
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100