<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/77048>77048</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [LLDB] EXC_BREAKPOINT (code=1, subcode=0x0)
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          XMadrid
      </td>
    </tr>
</table>

<pre>
    ## Descriptions

This is a probabilistic failure.
LLDB will report a EXC_BREAKPOINT(code=1, subcode=0x0) and stop at next instruction , while running a script to spawn lldb.

## Environment

lldb version: 17.0.2
clang: Homebrew clang version 17.0.2
OS: MacOS 13.5.1 (22G90)

## Reproduce steps

with code 
```c
#include <stdio.h>

int main() {
    int targetValue = 100;
    targetValue = 100 + 200;
    printf("Target Value is %d\n", targetValue);
    return 0;
}
```

build command: `clang main.c -g`

javascript script to spawn lldb:
```javascript
import cp from "child_process";
import { join } from "node:path";
import { fileURLToPath, URL } from "url";

const __dirname = fileURLToPath(new URL(".", import.meta.url));
const dbgPath = "lldb";
const runtime = join(__dirname, "main");

const dp = cp.execFile(dbgPath);
const inStream = dp.stdin;
const outStream = dp.stdout;

const writeCommand = (cmd) => {
    setTimeout(() => {
 inStream.write(`${cmd}\n`);
    }, 10);
}

outStream.on("data", (data) => {
 console.log("======================");
    const output = data.toString();
    console.log(output);
    if (output.includes("breakpoint 1.1")) {
        writeCommand("watchpoint set variable targetValue");
        writeCommand("continue");
 }
    if (output.includes("watchpoint 1")) {
 writeCommand("continue");
    }
    if (output.includes("EXC_BREAKPOINT")) {
 writeCommand("kill");
        process.exit(-1);
    }
    if (output.includes("exited with status")) {
 writeCommand("exit");
    }
 console.log("======================");
});

dp.on("spawn", () => {
    console.log(process.pid);
    writeCommand(`file ${runtime}`);
    writeCommand("breakpoint set --name main");
 writeCommand("run");
});
```

with shell script to loop javascript script until it failed: 

```shell
#!/bin/bash
node ./tests/scripts/lldbMinOK.mjs
while (($? == 0))
do
  echo $?
 node ./tests/scripts/lldbMinOK.mjs
done
```

## LLDB Log

```
======================
0
65406
======================
(lldb) file /tests/scripts/main

======================
======================
Current executable set to '/tests/scripts/main' (arm64).
(lldb) breakpoint set --name main

======================
======================
Breakpoint 1: where = main`main + 24 at main.c:4:9, address = 0x0000000100003f4c

======================
======================
(lldb) run

======================
======================
Process 65410 launched: '/tests/scripts/main' (arm64)

======================
======================
Process 65410 stopped
* thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1
    frame #0: 0x0000000100003f4c main`main at main.c:4:9
   1    #include <stdio.h>
   2    
   3    int main() {
-> 4             int targetValue = 100;
                ^
   5     targetValue = 100 + 200;
   6        printf("Target Value is %d\n", targetValue);
   7        return 0;

======================
======================
(lldb) watchpoint set variable targetValue

======================
======================
Watchpoint created: Watchpoint 1: addr = 0x16fdff618 size = 4 state = enabled type = w
    declare @ '/tests/scripts/main.c:4'
    watchpoint spec = 'targetValue'
    new value: 16180

======================
======================
(lldb) continue
Process 65410 resuming

======================
======================
Process 65410 stopped
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BREAKPOINT (code=1, subcode=0x0)
    frame #0: 0x0000000100003f50 main`main at main.c:4:9
   1    #include <stdio.h>
   2    
   3    int main() {
-> 4             int targetValue = 100;
                ^
 5          targetValue = 100 + 200;
   6        printf("Target Value is %d\n", targetValue);
   7        return 0;


```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzUGUuT4jb614jLV-2SZWPjAwcamt2t9OxMzXQ2uU3JtsCayJJXkpvO_votSQbMoztkM0n1UhRg6Xu_JagxfCsZm6PpPZquJrS3jdLznz_QWvN6Uqr61zkiCSIJrJipNO8sV9IgvEJ4ET6fGm6AG6DQaVXSkgtuLK9gQ7noNYsC1OPj6h52XAjQrFPaAoWHn5df7z8_LH749PEf_3xCZFapmqFkFSOyBNOXwyN-wYgUQGUNxqoOqAXJXixwaazuKycPOIxdwwUD3UvJ5RYoBGnBKjAd3UkQoi6jseCDXg_ymWslWybteNeBwzPThiuJkgXEeYQjEvYqQeXWLf5dtazUbAd-ZQ9-AvvxiwP8QKuPXyBOomkUAyIzQv5WOLWuyPOZdVrVfcXAWNadmHrHbQPOLDCsZji8qwMFLivRO4BkaWzNVdSg5GFMg0sLLeUSkZkzK8rvwzoAgNuzVG-Z_RcVvSOyghhjlIxgruwDIvdAzuA6zaXdeC7kyeNAQOIGEJnWaLqUiBDnuRFJZ5IxFc1sryUcSaN8dab7WLmy56KGSrUtlbWzu7ONd41TOargbnuG8Y0-0yFSrgUMShZn7I4Igz1bH85VBxutWkCEVA0X9ddOq4oZ41Tcyz6AovwevikuAeWrA5L0wb7oqG1eQdlwwX78_PikPnmYJfz4-fGERK_FGHUIVSWNha9fa64lbYPLzijNJNs5YsFX0eCUwDlqmaWRp1yMfRPI1uXWkfBEESHeYCMJApDupeUDZ6c2IrODOI4RIiTEIxkzOGHTeeSqi9gLq9ZcMERmA-9Lobj8YjWjrcepu8ilgTyDUb29AFK9vcp9p7llyxBSg6azqq198iQrlDyc5pBh9om3zFFz9pxdhdvLGHniDirDiKQov3eU85VPjgyfZ4PbIUuITzaOGeE_D6pFKuQ4qamlg1Od3fzTFZmctkqwSKhtwPMQf-x96lOnwsH-XW-D8amlkVVfrOYyML5EOIoVEM9h-AYOe9FQAU1QotSM_tIpV9niKB4EOq977jV2c0DdUVs1AdUwC89Uc1oKdlquLhS8TqtS0nJ5iXBw3m-oMZLlqhK3cxzC6Bam5w36Fra_cCFescpQESP2wl1u3MX_q1yOAKvBd0Njqe3NbbIFxm-Y489PAZ_B51Wu7g656jvPMVlfKzKngu4N2_H6XLdzI2TYFX8ItWaozE6my1pzab5RKrl8uLvzDeVK7b6Cq_uLAn9miWvtPHi4YUKMmrNQqoPLtu10EcCtnztZaP7j4WpP35MbDVwxIuvSqbAuqWnChmvGECGytsxYg8g68HC_XI_7wOXHH6L22zCbhcFzX-1TlKyDz1aAh64ZvKz2xmVVoyBADku_j2GtJHvDasMc6SfuR7W9aoXh8Y-Ht6czkMumKc6-L2VEZmGqKGAI3Csm8iE41vJ7Mf9OdJa91kxacNNLb30PcQlkXRDkr2tEchdUVLdZikgRXRjkjXx8x8a4HzVkl6S7hukwHHrJM-y-wokidWe9MLijZJGiZFG4ukjrWjNjPA5-weEVu49kk1bvWfeR81xBfMeSfgotBbJpGmMQtJdVMxTV20P2_0dBY1XXsXrvpQXYRjNaAyKJv434d8-G4y4ieaXaiHadYJHT-S6AerMsww2FZtQo6cHPxs9Dd91ofxgjCXY2vYzik2S4zII9ndiNL7h4-9wPAGSA2z8n4fm1u4A7N3CkAebWe4EB1P-cHjlPh60brw2yI6XvcoGQH-ldXiW8y8Ac1YhbDiDvWJOfjuJXmlEb6sdP45NMsvDVfCjlcbapN5ssnoHh_wlhkvoBP_xm0mlfg_21Cwu7Y_TVrBLU9ZEUv1mhhhwi-WjQHVm5Y9U-y09iagQu2Q6e_WqygDiLZ_g9-2AUTYcD4ZX6p5npW3f-fseq_EUV-_TQC79xLX1rRZ_iP72i_xX1fHrceL8F_fSkM6nnSV0kBZ2weZzjNE2m8SydNPM8zaqc5hXGJSnrIovLokyLNJ3Vs5gmRTHhc4JJimM8xVmc4DSim1mVldM0LRNaZEWMUsxaykUkxHMbKb2dcGN6Ns9znM4mgpZMGP_HCiGuavhNp-B0NdFzh3NX9luDUiy4seZIxXIr_D8y7giHpr83Jie9FvPG2s6gZIHIGpH1ltumL6NKtf5E-bz_uuu0-sYqi8jaS-fKpJf-vwEAAP__YlzUPA">