### Website or app

https://github.com/facebook/react/blob/0e100ed00fb52cfd107db1d1081ef18fe4b9167f/packages/react-devtools-shared/src/backend/utils.js#L199

### Repro steps

This function will throw this error if one of the arguments is type of `symbol`.

The error is swallowed [here](https://github.com/facebook/react/blob/22ab39be681251f1c0f257af7e636cb8debf31c4/packages/react-devtools-shared/src/backend/console.js#L194-L196) but it does interfere with debugging. When I run with the "pause on caught exceptions" I get trapped here all the time.

Can we change

```js
if (args.length) {
  formatted += ' ' + args.join(' ');
} // update escaped %% values
```

into

```js
for (let i = 0; i < args.length; i++) {
  formatted += ' ' + String(args[i]);
} // update escaped %% values
```

???

### How often does this bug happen?

Every time

### DevTools package (automated)

_No response_

### DevTools version (automated)

4.13.2-e468072e17

### Error message (automated)

TypeError: Cannot convert a Symbol value to a string

### Error call stack (automated)

_No response_

### Error component stack (automated)

_No response_

### GitHub query string (automated)

_No response_
if (typeof clipboardCopyText === 'function') {
    clipboardCopyText(text).catch(err => {});
  } else {
    copy(text);
  }
}
export function copyWithDelete(
  obj: Object | Array<any>,
  path: Array<string | number>,
  index: number = 0,
): Object | Array<any> {
  const key = path[index];
  const updated = isArray(obj) ? obj.slice() : {...obj};
  if (index + 1 === path.length) {
    if (isArray(updated)) {
      updated.splice(((key: any): number), 1);
    } else {
      delete updated[key];
    }
  } else {
    
    updated[key] = copyWithDelete(obj[key], path, index + 1);
  }
  return updated;
}