You don’t need this for normal use — the AspNetCoreDebuggerMcp NuGet package bundles a prebuilt arm64 macOS netcoredbg binary that the tool resolves automatically. This page is only relevant if you want to build your own (e.g. to track a newer Samsung release than what we ship, or for development).
Samsung doesn’t publish an arm64 macOS prebuilt of netcoredbg, so the bundled binary is our own build. This repo includes the same script we use to produce it.
xcode-select --installbrew install cmakegit./scripts/build-netcoredbg-macos-arm64.sh
What it does:
Samsung/netcoredbg (shallow) to ~/projects/netcoredbg-src (override with a first arg)-DCMAKE_POLICY_VERSION_MINIMUM=3.5)make -j$(sysctl -n hw.ncpu))<src>/bin/NETCOREDBG_PATH to exportWhen it finishes, you’ll see:
Built: /Users/you/projects/netcoredbg-src/bin/netcoredbg
Add this to your shell profile (and current shell):
export NETCOREDBG_PATH=/Users/you/projects/netcoredbg-src/bin/netcoredbg
Samsung’s docs say the arm64 macOS build is “community supported and may not work as expected.”
In our testing on Apple Silicon, every debugger feature used by this project works correctly,
except dataBreakpointInfo (returns E_NOTIMPL) — see Known limits.
The validated-on-arm64 functionality includes: launch, attach, line/function/exception breakpoints (with conditions, hit counts, logpoints), step in/over/out, threads, stack traces, scopes, variables, evaluate, setExpression, exceptionInfo, output events.
We run this build script once per netcoredbg release, package the result into a tarball matching
Samsung’s official tarball layout (scripts/package-netcoredbg-osx-arm64.sh), and upload it as a
GitHub release asset on a vendor-netcoredbg-<version> tag. The release workflow’s
scripts/fetch-netcoredbg-binaries.sh pulls this tarball along with the four Samsung-prebuilt
RIDs, and dotnet pack includes them all under runtimes/<rid>/native/ in the NuGet package.
End users get the bundled binary automatically — they never have to run this script.