dotnet / dotnet/runtime

Calling a method that has C# `params` arguments stops debugger breakpoints from working when debugging .NET for iOS apps in iOS Simulator

Open
#128,554 2 comments 0 reactions 1 assignee Claimed by @thaystg View on GitHub
area-Debugger-mono
Dominant language
C#
Stars
18.3k
Forks
5.6k
PR merge metrics
PR metrics pending

Description

### Apple platform

iOS

### Framework version

net10.0-*

### Affected platform version

VS 2026

### Description

Inside a **brand-new .NET for iOS project**, calling a method that uses the `params` parameter modifier causes debugger breakpoints to stop working. I have reproduced this issue when calling both my own code and .NET Framework methods, and I have a reliable, very simple repro (please see below).

Please note: It was hard to track this down. Caching seems to sometimes prevent the issue from being seen. Be sure to delete the app from the simulator and clean the project between runs. That will cause it to appear consistently.

### Steps to Reproduce

Within Visual Studio 2026:

1. Create a new project, using the "iOS Application" template in the New Project wizard. Accept defaults throughout wizard.

2. Within SceneDelegate.cs, inside the WillConnect method, add the following line at the top of the method:

`var path = Path.Combine("1", "2", "3", "4");`

3. Put a breakpoint on that line.

4. Start the app in the iOS Simulator with debugging.

5. Notice that the breakpoint is hit properly.

6. Change the line to:

`var path = Path.Combine("1", "2", "3", "4", "5");`

Note: This is the overload that utilizes `params` arguments.

7. Clean the project.

8. Delete the app from the simulator.

9. Start the app with debugging again.

10. Observe the breakpoint.

**Expected results**
Breakpoint is hit.

**Actual results**
Breakpoint is not available. Message: "The breakpoint will not currently be hit. No symbols have been loaded for this document."

### Did you find any workaround?

No.

Avoiding the overload that uses `params` works for this particular call, but this problem also reproduced in calls to other methods, and I cannot universally replace all my calls that use methods with `params` arguments.

### Relevant logs

_No response_

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.