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

    <tr>
        <th>Summary</th>
        <td>
            TestDAP_commands.py flakiness due to lldb-dap exit crashes
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            lldb
      </td>
    </tr>

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

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

<pre>
    Context: https://lab.llvm.org/buildbot/#/builders/68/builds/68776

The test has some exit commands:
```
    "exitCommands": [
      "?settings set target.show-hex-variable-values-with-leading-zeroes false",
 "settings set target.show-hex-variable-values-with-leading-zeroes true"
 ],
    "stopCommands": [
      "?settings set target.show-hex-variable-values-with-leading-zeroes false",
 "settings set target.show-hex-variable-values-with-leading-zeroes true"
 ],
    "terminateCommands": [
      "?settings set target.show-hex-variable-values-with-leading-zeroes false",
 "settings set target.show-hex-variable-values-with-leading-zeroes true"
 ]
```

The test case itself passes, but tear down occasionally fails because we fail to get a `disconnect` response back. The DAP log shows this crash causing the dap server to shutdown before it can respond to the disconnect:

```
--> 
Content-Length: 88

{
 "arguments": {
    "terminateDebuggee": true
  },
  "command": "disconnect",
  "seq": 3,
  "type": "request"
}
<-- 
Content-Length: 184

{
  "body": {
    "category": "console",
    "output": "Running exitCommands:\n(lldb) settings set target.show-hex-variable-values-with-leading-zeroes true\n"
  },
 "event": "output",
  "seq": 0,
  "type": "event"
}
<-- 
Content-Length: 63

{
  "body": {
    "exitCode": 9
 },
  "event": "exited",
  "seq": 0,
  "type": "event"
}
<-- 
Content-Length: 405

{
  "body": {
 "category": "stderr",
    "output": "assert.h assertion failed at llvm-project/lldb/source/Interpreter/CommandObject.cpp:153 in bool lldb_private::CommandObject::CheckRequirements(CommandReturnObject &): !m_exe_ctx.GetTargetPtr()\n"
  },
  "event": "output",
 "seq": 0,
  "type": "event"
}
...
<-- 
Content-Length: 430

{
  "body": {
    "category": "stderr",
 "output": "PLEASE submit a bug report ....\nStack dump:\n0.\tProgram arguments: lldb-dap\n1.\tHandleCommand(command = \"settings set target.show-hex-variable-values-with-leading-zeroes false\")\u0000\n"
  },
  "event": "output",
  "seq": 0,
  "type": "event"
}
```

Aside: the buildbots do not enable this DAP logging, which would make debugging buildbot errors much easier.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzcV09v27gT_TT0ZSBBoSxZPvjg2vXvt0CBDdreA0ocS9xQpEoOnWQ__YKSHCeFW7TbYA8Fglh_Hh9nNI-PQ-G9ag3ihhXvWLFfiECddRsXhsFh09GitvJps7OG8JFYvoWOaPAs3zJ-YPygRZ1qfepT61rGD3VQWtaWxpf5-QE6z_ihrM73091qVbJsz7Lt9P9zh0DoCTrhwdseAR8VQWP7Xhg5zjihy2z-G28BABjnEbs7QzmPgcaEniEjiOUHj0TKtB48EpBwLVLqO_uQdPiYnIRTotaYnIQO6JMHRV2iUUhl2uRvdBY9HIX2GLn4bmZnnP8yK7kwks6Mxf5CP4XuyQ6_c36ErldGEP5WSV4T7Fdqb4RHUORRH2EQ3qNnfAd1ICAUDqR9MGCbRnhljdD6CY5CaQ81NiJ4hAccHwBZaJFAACszqXxjjcGGWJmBQz9Y4xFq0dynECfeb29B2xZidh6oUx4aJ3wHkVOZFqhDkGIAj-6ELpL7LtAYS41H62LE0Agzk8uIGMdcZn5erte-QZKw_D1M16O1GEo-oGmpizWvqldDV-8uNRKuDT0aepbH6t11Ge2xDm2LOOPG0sxAtnqpPsb5bDFnSs5fpPFSI5NIvsy4_PULehrwwuDwS0BPz2qIc04X-S5Jvpn5TbW8nnrkjEb8jbQbQdha93QJoLHGW_1a4xPWBhoCXZAfgzGx5q8cNN-yYmcYr7SWNeNreJvFMXLyq4WIHn5C8yKwS6DfqED2vQo8k_3M9y_zf_X5p08nz7Ovzyl9LbSvEozDUP6nCS6z4iczvKouTxKd-wFxRUNzlHYwXShrRrtCCYIg9g3J4Oxf40I7TFI7eBtcg4wf_jCEbnBI6Bg_zNL8s47otBkGlm9vihyUgdpaDXH03eDUSRBG-ebbVyPmRx029x_xS1AOZxupZthHpODMBAbGS8bXUw43_R0-4l1Dj-n_kD6P0r8lx3gVId9R9I9J-pcLnqbpD1U-z97IWq4U_0rlbz-83356Dz7UvYr7Uh1acDhYR5DGkIud-USiuQcZ-mH2myw-pltnWyd6uHh9vh3Lm0gxRNjNCPu_MFKf2wXGq9nFgeV7YMXuLTb0qU0YuaZahyzLsl-v-Rus8ms9xdYrieNu1yGcO3EP0oKxBGhiutNuPzcArTJt7DYeOtV08GCDltCLewQ57p5xVzjTADpnnYc-NB2g8ApdupCbXK7ztVjg5maVrapyVfD1ots0hSzqQuTLUiwR5bJZl3hc5bnA8pgX62KhNjzjy4zf5DzPq-U6LdZivVxJWZVY5OvVki0z7IXSz2eLhfI-4Ka6KatyoUWN2o8nFs4n2-Dx7OI2o6XUofVsmWnlyV8ISJHGzWf0tN_e3p2PFenwBEct7pVB70EGjK3MWWzzCSS2RugXwenN68NPq6gLddrYfrSv0_nnhamNYcfzzhj5PwEAAP__Un776A">