Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding WinDbgX into a container, various errors. #515

Closed
PipeItToDevNull opened this issue Jul 15, 2024 · 11 comments
Closed

Adding WinDbgX into a container, various errors. #515

PipeItToDevNull opened this issue Jul 15, 2024 · 11 comments
Labels
question Further information is requested

Comments

@PipeItToDevNull
Copy link

Related to #418, I am trying to install WinDbgX into a container, seen here: https://github.com/PipeItToDevNull/WinDbg-Container

In initial runs I received failures that seem to be Firewall related: https://github.com/PipeItToDevNull/WinDbg-Container/actions/runs/9939147273/job/27453119531

After attempting to enable the firewall I receive failures that, to me, mean the firewall cannot be turned on: https://github.com/PipeItToDevNull/WinDbg-Container/actions/runs/9939451743/job/27454051971

Would adding .appx packages just never work in containers?

@PipeItToDevNull PipeItToDevNull added question Further information is requested triage New and needs attention labels Jul 15, 2024
@ntrappe-msft
Copy link
Contributor

Hi @PipeItToDevNull, thanks for bringing up the Issue you're facing. Can you help us get more clarity on what you're trying to do? Do you want to install WinDbgX so you can debug an application inside the container? Or to debug the container itself?

@PipeItToDevNull
Copy link
Author

Hi,

I am looking to containerize WinDbgX so that I can process dump files in a SaaS manner. My end goal would be to process BSOD dump files in this container.

@PipeItToDevNull
Copy link
Author

This issue still persists, I have not made headway on this.

@ntrappe-msft
Copy link
Contributor

We're triaging this Issue. Thanks for your patience.

@ntrappe-msft ntrappe-msft removed the triage New and needs attention label Aug 20, 2024
@johnstep
Copy link
Member

We are investigating the MSIX package installation issue. A workaround is to expand the archives:

# escape=`

FROM mcr.microsoft.com/windows/servercore:ltsc2022
SHELL ["powershell.exe", "-Command $ProgressPreference = 'SilentlyContinue';"]

# Download the MSIX package bundle.
RUN Invoke-WebRequest https://aka.ms/windbg/download -OutFile windbg.appinstaller; `
    Invoke-WebRequest ([xml](Get-Content windbg.appinstaller)).AppInstaller.MainBundle.Uri -OutFile bundle.zip; `
    Remove-Item windbg.appinstaller

# Expand the x64 package to the windbg directory.
RUN Expand-Archive bundle.zip; `
    Remove-Item bundle.zip; `
    Move-Item bundle\windbg_win7-x64.msix windbg.zip; `
    Remove-Item bundle -Recurse; `
    Expand-Archive windbg.zip; `
    Remove-Item windbg.zip

@PipeItToDevNull
Copy link
Author

I attempted this method, and manually extracted the packages on my host to take a peak but it appears this installer does not include the required WinDbgX.exe. I am not sure where it could come from.

@johnstep
Copy link
Member

I attempted this method, and manually extracted the packages on my host to take a peak but it appears this installer does not include the required WinDbgX.exe. I am not sure where it could come from.

The executable is actually DbgX.Shell.exe, while WinDbgX.exe is an app execution alias defined by the MSIX package. PowerShell does not show the reparse point target, but you can find it from the binary data:

PS C:\> (gcm WinDbgX).Source
C:\Users\Administrator\AppData\Local\Microsoft\WindowsApps\WinDbgX.exe

PS C:\> fsutil reparsePoint query (gcm WinDbgX).Source
Reparse Tag Value : 0x8000001b
Tag value: Microsoft

Reparse Data Length: 0x164
Reparse Data:
0000:  03 00 00 00 4d 00 69 00  63 00 72 00 6f 00 73 00  ....M.i.c.r.o.s.
0010:  6f 00 66 00 74 00 2e 00  57 00 69 00 6e 00 44 00  o.f.t...W.i.n.D.
0020:  62 00 67 00 5f 00 38 00  77 00 65 00 6b 00 79 00  b.g._.8.w.e.k.y.
0030:  62 00 33 00 64 00 38 00  62 00 62 00 77 00 65 00  b.3.d.8.b.b.w.e.
0040:  00 00 4d 00 69 00 63 00  72 00 6f 00 73 00 6f 00  ..M.i.c.r.o.s.o.
0050:  66 00 74 00 2e 00 57 00  69 00 6e 00 44 00 62 00  f.t...W.i.n.D.b.
0060:  67 00 5f 00 38 00 77 00  65 00 6b 00 79 00 62 00  g._.8.w.e.k.y.b.
0070:  33 00 64 00 38 00 62 00  62 00 77 00 65 00 21 00  3.d.8.b.b.w.e.!.
0080:  4d 00 69 00 63 00 72 00  6f 00 73 00 6f 00 66 00  M.i.c.r.o.s.o.f.
0090:  74 00 2e 00 57 00 69 00  6e 00 44 00 62 00 67 00  t...W.i.n.D.b.g.
00a0:  00 00 43 00 3a 00 5c 00  50 00 72 00 6f 00 67 00  ..C.:.\.P.r.o.g.
00b0:  72 00 61 00 6d 00 20 00  46 00 69 00 6c 00 65 00  r.a.m. .F.i.l.e.
00c0:  73 00 5c 00 57 00 69 00  6e 00 64 00 6f 00 77 00  s.\.W.i.n.d.o.w.
00d0:  73 00 41 00 70 00 70 00  73 00 5c 00 4d 00 69 00  s.A.p.p.s.\.M.i.
00e0:  63 00 72 00 6f 00 73 00  6f 00 66 00 74 00 2e 00  c.r.o.s.o.f.t...
00f0:  57 00 69 00 6e 00 44 00  62 00 67 00 5f 00 31 00  W.i.n.D.b.g._.1.
0100:  2e 00 32 00 34 00 30 00  37 00 2e 00 32 00 34 00  ..2.4.0.7...2.4.
0110:  30 00 30 00 33 00 2e 00  30 00 5f 00 78 00 36 00  0.0.3...0._.x.6.
0120:  34 00 5f 00 5f 00 38 00  77 00 65 00 6b 00 79 00  4._._.8.w.e.k.y.
0130:  62 00 33 00 64 00 38 00  62 00 62 00 77 00 65 00  b.3.d.8.b.b.w.e.
0140:  5c 00 44 00 62 00 67 00  58 00 2e 00 53 00 68 00  \.D.b.g.X...S.h.
0150:  65 00 6c 00 6c 00 2e 00  65 00 78 00 65 00 00 00  e.l.l...e.x.e...
0160:  30 00 00 00                                       0...

@PipeItToDevNull
Copy link
Author

I dug into this as well and discovered that DbgX.Shell.exe is now the executable for WinDbg too, once it left Preview it seems. Sadly this new version removed the command line interface, making this effort of containerization useless. My systems still use the old version and I didnt stop to think that Microsoft would remove such basic functionality.

@PipeItToDevNull
Copy link
Author

Another thread about how to do this microsoftfeedback/WinDbg-Feedback#19 (comment)

@johnstep
Copy link
Member

I dug into this as well and discovered that DbgX.Shell.exe is now the executable for WinDbg too, once it left Preview it seems. Sadly this new version removed the command line interface, making this effort of containerization useless. My systems still use the old version and I didnt stop to think that Microsoft would remove such basic functionality.

You can still find cdb.exe in Debugging Tools for Windows: https://learn.microsoft.com/windows-hardware/drivers/debugger/debugger-download-tools

@PipeItToDevNull
Copy link
Author

Thank you so much for your support and suggested alternatives, the standard debugger does indeed install fine.

I hope to see the primary UWP applications working in containers in the future.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

3 participants