<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">