puremourning / vimspector

vimspector - A multi-language debugging system for Vim
http://puremourning.github.io/vimspector-web
Apache License 2.0
4.13k stars 174 forks source link

Threads are not updated on pause for vscode-cpptools adapter #285

Closed sgoth closed 4 years ago

sgoth commented 4 years ago

Describe the bug

Threads in StackView window are updated correctly when a breakpoint is hit or when continuing. Hitting 'pause' does show the correct stack for the selected thread but doesn't update the thread list. Threads created/destroyed in the meantime are missing/still there respectively.

Minimal reproduction

Please answer the following questions

List of steps to reproduce:

Using HUMAN keybinds here.

  1. Run vim -Nu /path/to/vimspector/support/minimal_vimrc
  2. Open any c/c++ project supported by vscode-cpptools
  3. Set a breakpoint before spawning a thread
  4. Run (F5)
  5. See the correct thread info in StackView
  6. Continue (F5)
  7. Pause (F6)

Use the following Vimspector config file:

I do use miDebuggerArgs set follow-fork-mode child in my project but it doesn't matter here. I state it to match my logs.

{
  "configurations": {
    "Launch": {
      "adapter": "vscode-cpptools",
      "configuration": {
        "request": "launch",
        "program": "something spawning threads",
        "args": [  ],
        "cwd": "",
        "environment": [ ],
        "externalConsole": true,
        "MIMode": "gdb",
        "miDebuggerArgs": "--nh -ex 'set follow-fork-mode child'"
      }
    }
  }
}

Expected behaviour

When the debuggee is stopped by the debugger, current state is expected in all windows.

Actual behaviour

StackView shows the threads valid at time of last breakpoint even though Console shows that thread(s) have spawned. Pressing F5 immediately updates the threads correctly.

Same is true for the reverse, when threads go away.

Please include:

  • Vimspector log (~/.vimspector.log)

Log shows an application running to a breakpoint with 3 threads active at that time. Then continues and spawns a bunch of new threads which are not visible on pause.

2020-10-16 13:47:24,960 - INFO - **** INITIALISING NEW VIMSPECTOR SESSION ****
2020-10-16 13:47:24,960 - INFO - API is: 
2020-10-16 13:47:24,960 - INFO - VIMSPECTOR_HOME = /home/seezer/.vim/pack/vimspector/opt/vimspector
2020-10-16 13:47:24,963 - INFO - gadgetDir = /home/seezer/.vim/pack/vimspector/opt/vimspector/gadgets/linux
2020-10-16 13:47:24,964 - DEBUG - Toggle found bp at /d/1/work/source/cassandra/src/cassandra/Cassandra.cpp:886 ? False (New)
2020-10-16 13:47:25,772 - INFO - User requested start debug session with {}
2020-10-16 13:47:25,772 - DEBUG - Reading gadget config: /home/seezer/.vim/pack/vimspector/opt/vimspector/gadgets/linux/.gadgets.json
2020-10-16 13:47:25,774 - DEBUG - Reading gadget config: None
2020-10-16 13:47:25,774 - DEBUG - Reading configurations from: None
2020-10-16 13:47:25,774 - DEBUG - Reading configurations from: /d/1/work/source/cassandra/.vimspector.json
2020-10-16 13:47:27,492 - INFO - Configuration: {"adapter": "vscode-cpptools", "configuration": {"request": "launch", "program": "/d/1/work/builds/cassandra-clang/Debug/bin/cassandra", "args": ["--workspace", "/d/1/work/source/cassandra/runtime"], "cwd": "/d/1/work/builds/cassandra-clang/Debug/", "environment": [], "externalConsole": true, "MIMode": "gdb", "miDebuggerArgs": "--nh -ex 'set follow-fork-mode child'"}}
2020-10-16 13:47:27,492 - INFO - Adapter: {"attach": {"pidProperty": "processId", "pidSelect": "ask"}, "command": ["/home/seezer/.vim/pack/vimspector/opt/vimspector/gadgets/linux/vscode-cpptools/debugAdapters/OpenDebugAD7"], "configuration": {"args": [], "cwd": "/d/1/work/source/cassandra", "environment": [], "type": "cppdbg"}, "name": "cppdbg"}
2020-10-16 13:47:27,833 - INFO - Starting debug adapter with: {"attach": {"pidProperty": "processId", "pidSelect": "ask"}, "command": ["/home/seezer/.vim/pack/vimspector/opt/vimspector/gadgets/linux/vscode-cpptools/debugAdapters/OpenDebugAD7"], "configuration": {"args": [], "cwd": "/d/1/work/source/cassandra", "environment": [], "type": "cppdbg"}, "name": "cppdbg"}
2020-10-16 13:47:27,931 - INFO - Debug Adapter Started
2020-10-16 13:47:27,932 - DEBUG - Sending Message: {"command": "initialize", "arguments": {"adapterID": "cppdbg", "clientID": "vimspector", "clientName": "vimspector", "linesStartAt1": true, "columnsStartAt1": true, "locale": "en_GB", "pathFormat": "path", "supportsVariableType": true, "supportsVariablePaging": false, "supportsRunInTerminalRequest": true}, "seq": 0, "type": "request"}
2020-10-16 13:47:28,281 - DEBUG - Message received: {'type': 'response', 'request_seq': 0, 'success': True, 'command': 'initialize', 'body': {'supportsConfigurationDoneRequest': True, 'supportsFunctionBreakpoints': True, 'supportsConditionalBreakpoints': True, 'supportsEvaluateForHovers': True, 'exceptionBreakpointFilters': [], 'supportsSetVariable': True, 'additionalModuleColumns': [], 'supportedChecksumAlgorithms': []}, 'seq': 1}
2020-10-16 13:47:28,282 - DEBUG - LAUNCH!
2020-10-16 13:47:28,282 - DEBUG - Sending Message: {"command": "launch", "arguments": {"args": ["--workspace", "/d/1/work/source/cassandra/runtime"], "cwd": "/d/1/work/builds/cassandra-clang/Debug/", "environment": [], "type": "cppdbg", "request": "launch", "program": "/d/1/work/builds/cassandra-clang/Debug/bin/cassandra", "externalConsole": true, "MIMode": "gdb", "miDebuggerArgs": "--nh -ex 'set follow-fork-mode child'", "name": "test"}, "seq": 1, "type": "request"}
2020-10-16 13:47:28,405 - DEBUG - Message received: {'type': 'request', 'command': 'runInTerminal', 'arguments': {'kind': 'external', 'title': 'cppdbg: cassandra', 'cwd': '', 'args': ['/bin/sh', '/tmp/Microsoft-MIEngine-Cmd-kugum4sd.hrz'], 'env': {}}, 'seq': 2}
2020-10-16 13:47:28,406 - DEBUG - Defaulting working directory to /d/1/work/source/cassandra
2020-10-16 13:47:28,555 - DEBUG - Sending Message: {"seq": 2, "type": "response", "request_seq": 2, "command": "runInTerminal", "body": {"processId": 668313}, "success": true}
2020-10-16 13:47:28,943 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'telemetry', 'output': 'VS/Diagnostics/Debugger/Launch', 'data': {'VS.Diagnostics.Debugger.ImplementationName': 'Microsoft.MIDebugEngine', 'VS.Diagnostics.Debugger.EngineVersion': '16.5.10325.1', 'VS.Diagnostics.Debugger.HostVersion': '16.5.10325.1', 'VS.Diagnostics.Debugger.AdapterId': 'cppdbg', 'VS.Diagnostics.Debugger.Launch.Duration': 644, 'VS.Diagnostics.Debugger.Launch.IsCoreDump': False, 'VS.Diagnostics.Debugger.VisualizerFileUsed': False, 'VS.Diagnostics.Debugger.SourceFileMappings': 0, 'VS.Diagnostics.Debugger.MIMode': None}}, 'seq': 3}
2020-10-16 13:47:28,977 - DEBUG - Message received: {'type': 'response', 'request_seq': 1, 'success': True, 'command': 'launch', 'body': {}, 'seq': 4}
2020-10-16 13:47:28,977 - DEBUG - Message received: {'type': 'event', 'event': 'initialized', 'body': {}, 'seq': 5}
2020-10-16 13:47:28,977 - DEBUG - Sending Message: {"command": "setBreakpoints", "arguments": {"source": {"name": "Cassandra.cpp", "path": "/d/1/work/source/cassandra/src/cassandra/Cassandra.cpp"}, "breakpoints": [{"line": 886}]}, "sourceModified": false, "seq": 3, "type": "request"}
2020-10-16 13:47:28,977 - DEBUG - Sending Message: {"command": "setFunctionBreakpoints", "arguments": {"breakpoints": []}, "seq": 4, "type": "request"}
2020-10-16 13:47:29,035 - DEBUG - Message received: {'type': 'response', 'request_seq': 3, 'success': True, 'command': 'setBreakpoints', 'body': {'breakpoints': [{'id': 1, 'verified': True, 'line': 886}]}, 'seq': 6}
2020-10-16 13:47:29,035 - DEBUG - Breakpoints at this point: {
  "/d/1/work/source/cassandra/src/cassandra/Cassandra.cpp": [
    {
      "id": 1,
      "verified": true,
      "line": 886,
      "source": {
        "name": "Cassandra.cpp",
        "path": "/d/1/work/source/cassandra/src/cassandra/Cassandra.cpp"
      }
    }
  ]
}
2020-10-16 13:47:29,051 - DEBUG - Message received: {'type': 'event', 'event': 'breakpoint', 'body': {'reason': 'changed', 'breakpoint': {'id': 1, 'verified': True, 'line': 886}}, 'seq': 7}
2020-10-16 13:47:29,051 - DEBUG - Message received: {'type': 'response', 'request_seq': 4, 'success': True, 'command': 'setFunctionBreakpoints', 'body': {'breakpoints': []}, 'seq': 8}
2020-10-16 13:47:29,052 - DEBUG - Breakpoints at this point: {
  "/d/1/work/source/cassandra/src/cassandra/Cassandra.cpp": [
    {
      "id": 1,
      "verified": true,
      "line": 886
    }
  ]
}
2020-10-16 13:47:29,052 - DEBUG - Sending Message: {"command": "configurationDone", "seq": 5, "type": "request"}
2020-10-16 13:47:29,078 - DEBUG - Message received: {'type': 'response', 'request_seq': 5, 'success': True, 'command': 'configurationDone', 'body': {}, 'seq': 9}
2020-10-16 13:47:29,078 - DEBUG - Sending Message: {"command": "threads", "seq": 6, "type": "request"}
2020-10-16 13:47:29,078 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '=thread-group-added,id="i1"\nGNU gdb (GDB) 9.2\nCopyright (C) 2020 Free Software Foundation, Inc.\nLicense GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\nThis is free software: you are free to change and redistribute it.\nThere is NO WARRANTY, to the extent permitted by law.\nType "show copying" and "show warranty" for details.\nThis GDB was configured as "x86_64-pc-linux-gnu".\nType "show configuration" for configuration details.\nFor bug reporting instructions, please see:\n<http://www.gnu.org/software/gdb/bugs/>.\nFind the GDB manual and other documentation resources online at:\n    <http://www.gnu.org/software/gdb/documentation/>.\n\nFor help, type "help".\nType "apropos word" to search for commands related to "word".\n=cmd-param-changed,param="follow-fork-mode",value="child"\nWarning: Debuggee TargetArchitecture not detected, assuming x86_64.\n=cmd-param-changed,param="pagination",value="off"\n'}, 'seq': 10}
2020-10-16 13:47:29,101 - DEBUG - Message received: {'type': 'response', 'request_seq': 6, 'success': True, 'command': 'threads', 'body': {'threads': []}, 'seq': 11}
2020-10-16 13:47:29,101 - WARNING - User Msg: Server returned no threads. Is it running?
2020-10-16 13:47:29,111 - DEBUG - Message received: {'type': 'event', 'event': 'thread', 'body': {'reason': 'started', 'threadId': 668341}, 'seq': 12}
2020-10-16 13:47:29,111 - DEBUG - Sending Message: {"command": "threads", "seq": 7, "type": "request"}
2020-10-16 13:47:29,132 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': 'Stopped due to shared library event (no libraries added or removed)\n'}, 'seq': 14}
2020-10-16 13:47:29,133 - DEBUG - Message received: {'type': 'response', 'request_seq': 7, 'success': True, 'command': 'threads', 'body': {'threads': [{'id': 668341, 'name': 'cassandra'}]}, 'seq': 13}
2020-10-16 13:47:29,133 - DEBUG - Sending Message: {"command": "stackTrace", "arguments": {"threadId": 668341}, "seq": 8, "type": "request"}
2020-10-16 13:47:29,133 - DEBUG - Message received: {'type': 'event', 'event': 'breakpoint', 'body': {'reason': 'changed', 'breakpoint': {'id': 1, 'verified': True, 'line': 886}}, 'seq': 15}
2020-10-16 13:47:29,151 - DEBUG - Message received: {'type': 'response', 'request_seq': 8, 'success': True, 'command': 'stackTrace', 'body': {'stackFrames': [], 'totalFrames': 0}, 'seq': 16}
2020-10-16 13:47:29,172 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'console', 'output': "Loaded '/lib64/ld-linux-x86-64.so.2'. Symbols loaded.\n"}, 'seq': 17}
2020-10-16 13:47:37,545 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '[Thread debugging using libthread_db enabled]\n'}, 'seq': 18}
2020-10-16 13:47:37,546 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': 'Using host libthread_db library "/usr/lib/libthread_db.so.1".\n'}, 'seq': 19}
2020-10-16 13:47:41,919 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '=library-unloaded,id="/d/1/conan/ipp/2019.0.4/cassandra/11.9/package/7c101a7841330ab9f365e48de9cdde29deae78c1/lib/libippccl9.so",target-name="/d/1/conan/ipp/2019.0.4/cassandra/11.9/package/7c101a7841330ab9f365e48de9cdde29deae78c1/lib/libippccl9.so",host-name="/d/1/conan/ipp/2019.0.4/cassandra/11.9/package/7c101a7841330ab9f365e48de9cdde29deae78c1/lib/libippccl9.so",thread-group="i1"\n'}, 'seq': 20}
2020-10-16 13:47:42,089 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '=library-unloaded,id="/d/1/conan/ipp/2019.0.4/cassandra/11.9/package/7c101a7841330ab9f365e48de9cdde29deae78c1/lib/libippchl9.so",target-name="/d/1/conan/ipp/2019.0.4/cassandra/11.9/package/7c101a7841330ab9f365e48de9cdde29deae78c1/lib/libippchl9.so",host-name="/d/1/conan/ipp/2019.0.4/cassandra/11.9/package/7c101a7841330ab9f365e48de9cdde29deae78c1/lib/libippchl9.so",thread-group="i1"\n'}, 'seq': 21}
2020-10-16 13:47:42,228 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '=library-unloaded,id="/d/1/conan/ipp/2019.0.4/cassandra/11.9/package/7c101a7841330ab9f365e48de9cdde29deae78c1/lib/libippcvl9.so",target-name="/d/1/conan/ipp/2019.0.4/cassandra/11.9/package/7c101a7841330ab9f365e48de9cdde29deae78c1/lib/libippcvl9.so",host-name="/d/1/conan/ipp/2019.0.4/cassandra/11.9/package/7c101a7841330ab9f365e48de9cdde29deae78c1/lib/libippcvl9.so",thread-group="i1"\n'}, 'seq': 22}
2020-10-16 13:47:42,371 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '=library-unloaded,id="/d/1/conan/ipp/2019.0.4/cassandra/11.9/package/7c101a7841330ab9f365e48de9cdde29deae78c1/lib/libippdcl9.so",target-name="/d/1/conan/ipp/2019.0.4/cassandra/11.9/package/7c101a7841330ab9f365e48de9cdde29deae78c1/lib/libippdcl9.so",host-name="/d/1/conan/ipp/2019.0.4/cassandra/11.9/package/7c101a7841330ab9f365e48de9cdde29deae78c1/lib/libippdcl9.so",thread-group="i1"\n'}, 'seq': 23}
2020-10-16 13:47:42,514 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '=library-unloaded,id="/d/1/conan/ipp/2019.0.4/cassandra/11.9/package/7c101a7841330ab9f365e48de9cdde29deae78c1/lib/libippil9.so",target-name="/d/1/conan/ipp/2019.0.4/cassandra/11.9/package/7c101a7841330ab9f365e48de9cdde29deae78c1/lib/libippil9.so",host-name="/d/1/conan/ipp/2019.0.4/cassandra/11.9/package/7c101a7841330ab9f365e48de9cdde29deae78c1/lib/libippil9.so",thread-group="i1"\n'}, 'seq': 24}
2020-10-16 13:47:42,682 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '=library-unloaded,id="/d/1/conan/ipp/2019.0.4/cassandra/11.9/package/7c101a7841330ab9f365e48de9cdde29deae78c1/lib/libippsl9.so",target-name="/d/1/conan/ipp/2019.0.4/cassandra/11.9/package/7c101a7841330ab9f365e48de9cdde29deae78c1/lib/libippsl9.so",host-name="/d/1/conan/ipp/2019.0.4/cassandra/11.9/package/7c101a7841330ab9f365e48de9cdde29deae78c1/lib/libippsl9.so",thread-group="i1"\n'}, 'seq': 25}
2020-10-16 13:47:42,832 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '=library-unloaded,id="/d/1/conan/ipp/2019.0.4/cassandra/11.9/package/7c101a7841330ab9f365e48de9cdde29deae78c1/lib/libippvml9.so",target-name="/d/1/conan/ipp/2019.0.4/cassandra/11.9/package/7c101a7841330ab9f365e48de9cdde29deae78c1/lib/libippvml9.so",host-name="/d/1/conan/ipp/2019.0.4/cassandra/11.9/package/7c101a7841330ab9f365e48de9cdde29deae78c1/lib/libippvml9.so",thread-group="i1"\n'}, 'seq': 26}
2020-10-16 13:47:42,977 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '\n'}, 'seq': 27}
2020-10-16 13:47:42,978 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': 'Breakpoint 1, main (argc=3, argv=0x7fffffffd588) at /d/1/work/source/cassandra/src/cassandra/Cassandra.cpp:553\n'}, 'seq': 28}
2020-10-16 13:47:42,979 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '553\t  auto inalidConfigInfoText = "No configuration file has been loaded successfully.\\n\\n"\n'}, 'seq': 29}
[ Loading a bunch of libraries ]
2020-10-16 13:47:43,285 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '=thread-group-added,id="i2"\n'}, 'seq': 131}
2020-10-16 13:47:43,286 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '[New inferior 2 (process 668472)]\n'}, 'seq': 132}
2020-10-16 13:47:43,297 - DEBUG - Message received: {'type': 'event', 'event': 'thread', 'body': {'reason': 'exited', 'threadId': 668341}, 'seq': 133}
2020-10-16 13:47:43,297 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '[Inferior 1 (process 668341) detached]\n'}, 'seq': 134}
2020-10-16 13:47:43,297 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '[Thread debugging using libthread_db enabled]\n'}, 'seq': 135}
2020-10-16 13:47:43,298 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': 'Using host libthread_db library "/usr/lib/libthread_db.so.1".\n'}, 'seq': 136}
2020-10-16 13:47:43,298 - DEBUG - Message received: {'type': 'event', 'event': 'thread', 'body': {'reason': 'started', 'threadId': 668472}, 'seq': 137}
2020-10-16 13:47:43,298 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': 'process 668472 is executing new program: /d/1/work/builds/cassandra-clang/Debug/bin/cassandra\n'}, 'seq': 138}
[ Loading/Unloading a bunch of libraries due to fork ]
2020-10-16 13:47:51,786 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '[Thread debugging using libthread_db enabled]\n'}, 'seq': 241}
2020-10-16 13:47:51,787 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': 'Using host libthread_db library "/usr/lib/libthread_db.so.1".\n'}, 'seq': 242}
2020-10-16 13:47:55,187 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '=library-unloaded,id="/d/1/conan/ipp/2019.0.4/cassandra/11.9/package/7c101a7841330ab9f365e48de9cdde29deae78c1/lib/libippccl9.so",target-name="/d/1/conan/ipp/2019.0.4/cassandra/11.9/package/7c101a7841330ab9f365e48de9cdde29deae78c1/lib/libippccl9.so",host-name="/d/1/conan/ipp/2019.0.4/cassandra/11.9/package/7c101a7841330ab9f365e48de9cdde29deae78c1/lib/libippccl9.so",thread-group="i2"\n'}, 'seq': 243}
2020-10-16 13:47:55,201 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '=library-unloaded,id="/d/1/conan/ipp/2019.0.4/cassandra/11.9/package/7c101a7841330ab9f365e48de9cdde29deae78c1/lib/libippchl9.so",target-name="/d/1/conan/ipp/2019.0.4/cassandra/11.9/package/7c101a7841330ab9f365e48de9cdde29deae78c1/lib/libippchl9.so",host-name="/d/1/conan/ipp/2019.0.4/cassandra/11.9/package/7c101a7841330ab9f365e48de9cdde29deae78c1/lib/libippchl9.so",thread-group="i2"\n'}, 'seq': 244}
2020-10-16 13:47:55,213 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '=library-unloaded,id="/d/1/conan/ipp/2019.0.4/cassandra/11.9/package/7c101a7841330ab9f365e48de9cdde29deae78c1/lib/libippcvl9.so",target-name="/d/1/conan/ipp/2019.0.4/cassandra/11.9/package/7c101a7841330ab9f365e48de9cdde29deae78c1/lib/libippcvl9.so",host-name="/d/1/conan/ipp/2019.0.4/cassandra/11.9/package/7c101a7841330ab9f365e48de9cdde29deae78c1/lib/libippcvl9.so",thread-group="i2"\n'}, 'seq': 245}
2020-10-16 13:47:55,235 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '=library-unloaded,id="/d/1/conan/ipp/2019.0.4/cassandra/11.9/package/7c101a7841330ab9f365e48de9cdde29deae78c1/lib/libippdcl9.so",target-name="/d/1/conan/ipp/2019.0.4/cassandra/11.9/package/7c101a7841330ab9f365e48de9cdde29deae78c1/lib/libippdcl9.so",host-name="/d/1/conan/ipp/2019.0.4/cassandra/11.9/package/7c101a7841330ab9f365e48de9cdde29deae78c1/lib/libippdcl9.so",thread-group="i2"\n'}, 'seq': 246}
2020-10-16 13:47:55,236 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '=library-unloaded,id="/d/1/conan/ipp/2019.0.4/cassandra/11.9/package/7c101a7841330ab9f365e48de9cdde29deae78c1/lib/libippil9.so",target-name="/d/1/conan/ipp/2019.0.4/cassandra/11.9/package/7c101a7841330ab9f365e48de9cdde29deae78c1/lib/libippil9.so",host-name="/d/1/conan/ipp/2019.0.4/cassandra/11.9/package/7c101a7841330ab9f365e48de9cdde29deae78c1/lib/libippil9.so",thread-group="i2"\n'}, 'seq': 247}
2020-10-16 13:47:55,264 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '=library-unloaded,id="/d/1/conan/ipp/2019.0.4/cassandra/11.9/package/7c101a7841330ab9f365e48de9cdde29deae78c1/lib/libippsl9.so",target-name="/d/1/conan/ipp/2019.0.4/cassandra/11.9/package/7c101a7841330ab9f365e48de9cdde29deae78c1/lib/libippsl9.so",host-name="/d/1/conan/ipp/2019.0.4/cassandra/11.9/package/7c101a7841330ab9f365e48de9cdde29deae78c1/lib/libippsl9.so",thread-group="i2"\n'}, 'seq': 248}
2020-10-16 13:47:55,292 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '=library-unloaded,id="/d/1/conan/ipp/2019.0.4/cassandra/11.9/package/7c101a7841330ab9f365e48de9cdde29deae78c1/lib/libippvml9.so",target-name="/d/1/conan/ipp/2019.0.4/cassandra/11.9/package/7c101a7841330ab9f365e48de9cdde29deae78c1/lib/libippvml9.so",host-name="/d/1/conan/ipp/2019.0.4/cassandra/11.9/package/7c101a7841330ab9f365e48de9cdde29deae78c1/lib/libippvml9.so",thread-group="i2"\n'}, 'seq': 249}
2020-10-16 13:47:55,313 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '[New Thread 0x7fffe93dd640 (LWP 668542)]\n'}, 'seq': 250}
2020-10-16 13:47:55,314 - DEBUG - Message received: {'type': 'event', 'event': 'thread', 'body': {'reason': 'started', 'threadId': 668542}, 'seq': 251}
2020-10-16 13:48:13,712 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '[New Thread 0x7fffd1914640 (LWP 668649)]\n'}, 'seq': 252}
2020-10-16 13:48:13,732 - DEBUG - Message received: {'type': 'event', 'event': 'thread', 'body': {'reason': 'started', 'threadId': 668649}, 'seq': 253}
2020-10-16 13:48:14,029 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '[Switching to Thread 0x7fffedf0b800 (LWP 668472)]\n'}, 'seq': 254}
2020-10-16 13:48:14,030 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '\n'}, 'seq': 255}
2020-10-16 13:48:14,030 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': 'Thread 2.1 "cassandra" hit Breakpoint 2, main (argc=4, argv=0x7fffffffd538) at /d/1/work/source/cassandra/src/cassandra/Cassandra.cpp:886\n'}, 'seq': 256}
2020-10-16 13:48:14,031 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '886\t  sint32 retVal = app.exec();\n'}, 'seq': 257}
[ Loading/Unloading a bunch of libraries due to fork ]
2020-10-16 13:48:14,167 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'console', 'output': 'Execute debugger commands using "-exec <command>", for example "-exec info registers" will list registers in use (when GDB is the debugger)\n'}, 'seq': 458}
2020-10-16 13:48:14,168 - DEBUG - Message received: {'type': 'event', 'event': 'stopped', 'body': {'reason': 'breakpoint', 'threadId': 668472, 'allThreadsStopped': True, 'source': {'name': 'Cassandra.cpp', 'path': '/d/1/work/source/cassandra/src/cassandra/Cassandra.cpp', 'sources': [], 'checksums': []}, 'line': 886, 'column': 1}, 'seq': 459}
2020-10-16 13:48:14,168 - WARNING - User Msg: Paused in thread 668472 due to breakpoint
2020-10-16 13:48:14,258 - DEBUG - Sending Message: {"command": "threads", "seq": 9, "type": "request"}
2020-10-16 13:48:14,277 - DEBUG - Message received: {'type': 'response', 'request_seq': 9, 'success': True, 'command': 'threads', 'body': {'threads': [{'id': 668472, 'name': 'cassandra'}, {'id': 668542, 'name': 'QXcbEventQueue'}, {'id': 668649, 'name': 'QDBusConnection'}]}, 'seq': 460}
2020-10-16 13:48:14,277 - DEBUG - Sending Message: {"command": "stackTrace", "arguments": {"threadId": 668472}, "seq": 10, "type": "request"}
2020-10-16 13:48:14,320 - DEBUG - Message received: {'type': 'response', 'request_seq': 10, 'success': True, 'command': 'stackTrace', 'body': {'stackFrames': [{'id': 1000, 'name': 'main(sint32 argc, char ** argv)', 'source': {'name': 'Cassandra.cpp', 'path': '/d/1/work/source/cassandra/src/cassandra/Cassandra.cpp', 'sources': [], 'checksums': []}, 'line': 886, 'column': 1}], 'totalFrames': 1}, 'seq': 461}
2020-10-16 13:48:14,350 - DEBUG - Sending Message: {"command": "scopes", "arguments": {"frameId": 1000}, "seq": 11, "type": "request"}
2020-10-16 13:48:14,818 - DEBUG - Message received: {'type': 'response', 'request_seq': 11, 'success': True, 'command': 'scopes', 'body': {'scopes': [{'name': 'Locals', 'variablesReference': 1000, 'expensive': False}]}, 'seq': 462}
2020-10-16 13:48:14,818 - DEBUG - Sending Message: {"command": "variables", "arguments": {"variablesReference": 1000}, "seq": 12, "type": "request"}
2020-10-16 13:48:14,873 - DEBUG - Message received: {'type': 'response', 'request_seq': 12, 'success': True, 'command': 'variables', 'body': {'variables': [{'name': 'inalidConfigInfoText', 'value': '0x5555556c959a "No configuration file has been loaded successfully.\\n\\nPlease provide a valid startup config or ensure that a default.cfg is available in the current workspace."', 'type': 'const char *', 'evaluateName': 'inalidConfigInfoText', 'variablesReference': 1001}, {'name': 'ign', 'value': '{...}', 'type': 'sigaction', 'evaluateName': 'ign', 'variablesReference': 1002}, {'name': 'app', 'value': '{...}', 'type': 'QApplication', 'evaluateName': 'app', 'variablesReference': 1003}, {'name': 'psh', 'value': '{...}', 'type': 'PosixSignalHandler', 'evaluateName': 'psh', 'variablesReference': 1004}, {'name': 'nev', 'value': '{...}', 'type': 'cNativeEventFilter', 'evaluateName': 'nev', 'variablesReference': 1005}, {'name': 'local', 'value': '{...}', 'type': 'QLocale', 'evaluateName': 'local', 'variablesReference': 1006}, {'name': 'parser', 'value': '{...}', 'type': 'QCommandLineParser', 'evaluateName': 'parser', 'variablesReference': 1007}, {'name': 'splash', 'value': '0x0', 'type': 'QSplashScreen *', 'evaluateName': 'splash', 'variablesReference': 1008}, {'name': 'tristateParamWithDefaults', 'value': '{...}', 'type': 'class {...}', 'evaluateName': 'tristateParamWithDefaults', 'variablesReference': 0}, {'name': 'unresolvedTypes', 'value': 'false', 'type': 'bool', 'evaluateName': 'unresolvedTypes', 'variablesReference': 0}, {'name': 'licensed', 'value': 'true', 'type': 'bool', 'evaluateName': 'licensed', 'variablesReference': 0}, {'name': 'retVal', 'value': '7536725', 'type': 'sint32', 'evaluateName': 'retVal', 'variablesReference': 0}, {'name': 'argc', 'value': '4', 'type': 'sint32', 'evaluateName': 'argc', 'variablesReference': 0}, {'name': 'argv', 'value': '0x7fffffffd538', 'type': 'char **', 'evaluateName': 'argv', 'variablesReference': 1009}]}, 'seq': 463}
2020-10-16 13:49:16,077 - DEBUG - Sending Message: {"command": "continue", "arguments": {"threadId": 668472}, "seq": 13, "type": "request"}
2020-10-16 13:49:16,079 - DEBUG - Sending Message: {"command": "threads", "seq": 14, "type": "request"}
2020-10-16 13:49:16,164 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '[Switching to thread 2.3 (Thread 0x7fffd1914640 (LWP 668649))](running)\n'}, 'seq': 465}
2020-10-16 13:49:16,338 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '=thread-selected,id="4"\n'}, 'seq': 466}
2020-10-16 13:49:16,511 - DEBUG - Message received: {'type': 'response', 'request_seq': 13, 'success': True, 'command': 'continue', 'body': {}, 'seq': 464}
2020-10-16 13:49:16,511 - DEBUG - Message received: {'type': 'response', 'request_seq': 14, 'success': True, 'command': 'threads', 'body': {'threads': [{'id': 668472, 'name': 'cassandra'}, {'id': 668542, 'name': 'QXcbEventQueue'}, {'id': 668649, 'name': 'QDBusConnection'}]}, 'seq': 467}
2020-10-16 13:49:16,511 - DEBUG - Sending Message: {"command": "stackTrace", "arguments": {"threadId": 668472}, "seq": 15, "type": "request"}
2020-10-16 13:49:16,546 - DEBUG - Message received: {'type': 'response', 'request_seq': 15, 'success': True, 'command': 'stackTrace', 'body': {'stackFrames': [], 'totalFrames': 0}, 'seq': 468}
2020-10-16 13:49:39,975 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '[New Thread 0x7fffc9eda640 (LWP 669219)]\n'}, 'seq': 469}
2020-10-16 13:49:40,199 - DEBUG - Message received: {'type': 'event', 'event': 'thread', 'body': {'reason': 'started', 'threadId': 669219}, 'seq': 470}
2020-10-16 13:49:41,417 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '[Thread 0x7fffc9eda640 (LWP 669219) exited]\n'}, 'seq': 471}
2020-10-16 13:49:41,625 - DEBUG - Message received: {'type': 'event', 'event': 'thread', 'body': {'reason': 'exited', 'threadId': 669219}, 'seq': 472}
2020-10-16 13:49:43,616 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '[New Thread 0x7fffc9eda640 (LWP 669240)]\n'}, 'seq': 473}
2020-10-16 13:49:43,845 - DEBUG - Message received: {'type': 'event', 'event': 'thread', 'body': {'reason': 'started', 'threadId': 669240}, 'seq': 474}
2020-10-16 13:49:43,846 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '[New Thread 0x7fffc96d9640 (LWP 669241)]\n'}, 'seq': 475}
2020-10-16 13:49:44,040 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '[New Thread 0x7fffc8ed8640 (LWP 669242)]\n'}, 'seq': 476}
2020-10-16 13:49:44,222 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '[New Thread 0x7fffc3fff640 (LWP 669243)]\n'}, 'seq': 477}
2020-10-16 13:49:44,405 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '[New Thread 0x7fffc37fe640 (LWP 669244)]\n'}, 'seq': 478}
2020-10-16 13:49:44,588 - DEBUG - Message received: {'type': 'event', 'event': 'thread', 'body': {'reason': 'started', 'threadId': 669241}, 'seq': 479}
2020-10-16 13:49:44,589 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '[New Thread 0x7fffc2ffd640 (LWP 669245)]\n'}, 'seq': 480}
2020-10-16 13:49:44,773 - DEBUG - Message received: {'type': 'event', 'event': 'thread', 'body': {'reason': 'started', 'threadId': 669242}, 'seq': 481}
2020-10-16 13:49:44,774 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '[New Thread 0x7fffc27fc640 (LWP 669246)]\n'}, 'seq': 482}
2020-10-16 13:49:44,955 - DEBUG - Message received: {'type': 'event', 'event': 'thread', 'body': {'reason': 'started', 'threadId': 669243}, 'seq': 483}
2020-10-16 13:49:44,956 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '[New Thread 0x7fffc1ffb640 (LWP 669247)]\n'}, 'seq': 484}
2020-10-16 13:49:45,140 - DEBUG - Message received: {'type': 'event', 'event': 'thread', 'body': {'reason': 'started', 'threadId': 669244}, 'seq': 485}
2020-10-16 13:49:45,140 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '[New Thread 0x7fffc17fa640 (LWP 669248)]\n'}, 'seq': 486}
2020-10-16 13:49:45,324 - DEBUG - Message received: {'type': 'event', 'event': 'thread', 'body': {'reason': 'started', 'threadId': 669245}, 'seq': 487}
2020-10-16 13:49:45,324 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '[New Thread 0x7fffc0ff9640 (LWP 669249)]\n'}, 'seq': 488}
2020-10-16 13:49:45,506 - DEBUG - Message received: {'type': 'event', 'event': 'thread', 'body': {'reason': 'started', 'threadId': 669246}, 'seq': 489}
2020-10-16 13:49:45,506 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '[New Thread 0x7fff9ffff640 (LWP 669250)]\n'}, 'seq': 490}
2020-10-16 13:49:45,690 - DEBUG - Message received: {'type': 'event', 'event': 'thread', 'body': {'reason': 'started', 'threadId': 669247}, 'seq': 491}
2020-10-16 13:49:45,691 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '[New Thread 0x7fff9f7fe640 (LWP 669251)]\n'}, 'seq': 492}
2020-10-16 13:49:45,871 - DEBUG - Message received: {'type': 'event', 'event': 'thread', 'body': {'reason': 'started', 'threadId': 669248}, 'seq': 493}
2020-10-16 13:49:45,872 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '[New Thread 0x7fff9effd640 (LWP 669252)]\n'}, 'seq': 494}
2020-10-16 13:49:46,053 - DEBUG - Message received: {'type': 'event', 'event': 'thread', 'body': {'reason': 'started', 'threadId': 669249}, 'seq': 495}
2020-10-16 13:49:46,053 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '[New Thread 0x7fff9e7fc640 (LWP 669253)]\n'}, 'seq': 496}
2020-10-16 13:49:46,235 - DEBUG - Message received: {'type': 'event', 'event': 'thread', 'body': {'reason': 'started', 'threadId': 669250}, 'seq': 497}
2020-10-16 13:49:46,235 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '[New Thread 0x7fff9dffb640 (LWP 669254)]\n'}, 'seq': 498}
2020-10-16 13:49:46,417 - DEBUG - Message received: {'type': 'event', 'event': 'thread', 'body': {'reason': 'started', 'threadId': 669251}, 'seq': 499}
2020-10-16 13:49:46,417 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '[New Thread 0x7fff9d7fa640 (LWP 669255)]\n'}, 'seq': 500}
2020-10-16 13:49:46,598 - DEBUG - Message received: {'type': 'event', 'event': 'thread', 'body': {'reason': 'started', 'threadId': 669252}, 'seq': 501}
2020-10-16 13:49:46,598 - DEBUG - Message received: {'type': 'event', 'event': 'thread', 'body': {'reason': 'started', 'threadId': 669253}, 'seq': 502}
2020-10-16 13:49:46,598 - DEBUG - Message received: {'type': 'event', 'event': 'thread', 'body': {'reason': 'started', 'threadId': 669254}, 'seq': 503}
2020-10-16 13:49:46,598 - DEBUG - Message received: {'type': 'event', 'event': 'thread', 'body': {'reason': 'started', 'threadId': 669255}, 'seq': 504}
2020-10-16 13:49:46,598 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '[New Thread 0x7fff9cff9640 (LWP 669256)]\n'}, 'seq': 505}
2020-10-16 13:49:46,777 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '[New Thread 0x7fff7ffff640 (LWP 669257)]\n'}, 'seq': 506}
2020-10-16 13:49:46,961 - DEBUG - Message received: {'type': 'event', 'event': 'thread', 'body': {'reason': 'started', 'threadId': 669256}, 'seq': 507}
2020-10-16 13:49:46,961 - DEBUG - Message received: {'type': 'event', 'event': 'thread', 'body': {'reason': 'started', 'threadId': 669257}, 'seq': 508}
2020-10-16 13:49:46,961 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '[New Thread 0x7fff7f7fe640 (LWP 669258)]\n'}, 'seq': 509}
2020-10-16 13:49:47,143 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '[New Thread 0x7fff7effd640 (LWP 669259)]\n'}, 'seq': 510}
2020-10-16 13:49:47,326 - DEBUG - Message received: {'type': 'event', 'event': 'thread', 'body': {'reason': 'started', 'threadId': 669258}, 'seq': 511}
2020-10-16 13:49:47,326 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '[New Thread 0x7fff7e7fc640 (LWP 669260)]\n'}, 'seq': 512}
2020-10-16 13:49:47,519 - DEBUG - Message received: {'type': 'event', 'event': 'thread', 'body': {'reason': 'started', 'threadId': 669259}, 'seq': 513}
2020-10-16 13:49:47,519 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '[New Thread 0x7fff7dffb640 (LWP 669261)]\n'}, 'seq': 514}
2020-10-16 13:49:47,720 - DEBUG - Message received: {'type': 'event', 'event': 'thread', 'body': {'reason': 'started', 'threadId': 669260}, 'seq': 515}
2020-10-16 13:49:47,720 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '[New Thread 0x7fff7d7fa640 (LWP 669262)]\n'}, 'seq': 516}
2020-10-16 13:49:47,910 - DEBUG - Message received: {'type': 'event', 'event': 'thread', 'body': {'reason': 'started', 'threadId': 669261}, 'seq': 517}
2020-10-16 13:49:47,911 - DEBUG - Message received: {'type': 'event', 'event': 'thread', 'body': {'reason': 'started', 'threadId': 669262}, 'seq': 518}
2020-10-16 13:49:47,911 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '[New Thread 0x7fff7cff9640 (LWP 669263)]\n'}, 'seq': 519}
2020-10-16 13:49:48,092 - DEBUG - Message received: {'type': 'event', 'event': 'thread', 'body': {'reason': 'started', 'threadId': 669263}, 'seq': 520}
2020-10-16 13:49:48,092 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '[New Thread 0x7fff5ffff640 (LWP 669264)]\n'}, 'seq': 521}
2020-10-16 13:49:48,275 - DEBUG - Message received: {'type': 'event', 'event': 'thread', 'body': {'reason': 'started', 'threadId': 669264}, 'seq': 522}
2020-10-16 13:49:48,564 - DEBUG - Sending Message: {"command": "pause", "arguments": {"threadId": 668472}, "seq": 16, "type": "request"}
2020-10-16 13:49:48,578 - DEBUG - Message received: {'type': 'response', 'request_seq': 16, 'success': True, 'command': 'pause', 'body': {}, 'seq': 523}
2020-10-16 13:49:48,579 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '\nThread '}, 'seq': 524}
2020-10-16 13:49:48,801 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '2.1 "cassandra" received signal SIGINT, Interrupt.\n'}, 'seq': 525}
2020-10-16 13:49:49,016 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '0x00007ffff2ec646f in poll () from /usr/lib/libc.so.6\n'}, 'seq': 526}
2020-10-16 13:49:49,238 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'console', 'output': "Loaded '/usr/lib/libnss_files.so.2'. Symbols loaded.\n"}, 'seq': 527}
2020-10-16 13:49:49,426 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'telemetry', 'output': 'VS/Diagnostics/Debugger/Pause', 'data': {'VS.Diagnostics.Debugger.ImplementationName': 'Microsoft.MIDebugEngine', 'VS.Diagnostics.Debugger.EngineVersion': '16.5.10325.1', 'VS.Diagnostics.Debugger.HostVersion': '16.5.10325.1', 'VS.Diagnostics.Debugger.AdapterId': 'cppdbg'}}, 'seq': 528}
2020-10-16 13:49:49,557 - DEBUG - Message received: {'type': 'event', 'event': 'stopped', 'body': {'reason': 'pause', 'threadId': 668472, 'allThreadsStopped': True}, 'seq': 529}
2020-10-16 13:49:49,557 - WARNING - User Msg: Paused in thread 668472 due to pause
2020-10-16 13:49:49,711 - DEBUG - Sending Message: {"command": "stackTrace", "arguments": {"threadId": 668472}, "seq": 17, "type": "request"}
2020-10-16 13:49:49,805 - DEBUG - Message received: {'type': 'response', 'request_seq': 17, 'success': True, 'command': 'stackTrace', 'body': {'stackFrames': [{'id': 1000, 'name': 'libc.so.6!poll', 'line': 0, 'column': 0}, {'id': 1001, 'name': 'libglib-2.0.so.0![Unknown/Just-In-Time compiled code]', 'line': 0, 'column': 0}, {'id': 1002, 'name': 'libglib-2.0.so.0!g_main_context_iteration', 'line': 0, 'column': 0}, {'id': 1003, 'name': 'libQt5Core.so.5!QEventDispatcherGlib::processEvents(QEventDispatcherGlib * const this, QEventLoop::ProcessEventsFlags flags)', 'source': {'name': 'qeventdispatcher_glib.cpp', 'path': '/d/1/conan/qt/5.12.9/cassandra/11.9.16/source/qt5/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp', 'sources': [], 'checksums': []}, 'line': 422, 'column': 1}, {'id': 1004, 'name': 'libQt5Core.so.5!QEventLoop::processEvents(QEventLoop * const this, QEventLoop::ProcessEventsFlags flags)', 'source': {'name': 'atomic_base.h', 'path': '/usr/include/c++/10.2.0/bits/atomic_base.h', 'sources': [], 'checksums': []}, 'line': 741, 'column': 1}, {'id': 1005, 'name': 'libQt5Core.so.5!QEventLoop::exec(QEventLoop * const this, QEventLoop::ProcessEventsFlags flags)', 'source': {'name': 'qflags.h', 'path': '/d/1/conan/qt/5.12.9/cassandra/11.9.16/source/qt5/qtbase/src/corelib/global/qflags.h', 'sources': [], 'checksums': []}, 'line': 122, 'column': 1}, {'id': 1006, 'name': 'libQt5Core.so.5!QCoreApplication::exec()', 'source': {'name': 'qflags.h', 'path': '/d/1/conan/qt/5.12.9/cassandra/11.9.16/source/qt5/qtbase/src/corelib/global/qflags.h', 'sources': [], 'checksums': []}, 'line': 120, 'column': 1}, {'id': 1007, 'name': 'libQt5Gui.so.5!QGuiApplication::exec()', 'source': {'name': 'qguiapplication.cpp', 'path': '/d/1/conan/qt/5.12.9/cassandra/11.9.16/source/qt5/qtbase/src/gui/kernel/qguiapplication.cpp', 'sources': [], 'checksums': []}, 'line': 1784, 'column': 1}, {'id': 1008, 'name': 'libQt5Widgets.so.5!QApplication::exec()', 'source': {'name': 'qapplication.cpp', 'path': '/d/1/conan/qt/5.12.9/cassandra/11.9.16/source/qt5/qtbase/src/widgets/kernel/qapplication.cpp', 'sources': [], 'checksums': []}, 'line': 2856, 'column': 1}, {'id': 1009, 'name': 'main(sint32 argc, char ** argv)', 'source': {'name': 'Cassandra.cpp', 'path': '/d/1/work/source/cassandra/src/cassandra/Cassandra.cpp', 'sources': [], 'checksums': []}, 'line': 886, 'column': 1}], 'totalFrames': 10}, 'seq': 530}
2020-10-16 13:49:49,933 - DEBUG - Sending Message: {"command": "scopes", "arguments": {"frameId": 1003}, "seq": 18, "type": "request"}
2020-10-16 13:49:50,022 - DEBUG - Message received: {'type': 'response', 'request_seq': 18, 'success': True, 'command': 'scopes', 'body': {'scopes': [{'name': 'Locals', 'variablesReference': 1000, 'expensive': False}]}, 'seq': 531}
2020-10-16 13:49:50,022 - DEBUG - Sending Message: {"command": "variables", "arguments": {"variablesReference": 1000}, "seq": 19, "type": "request"}
2020-10-16 13:49:50,053 - DEBUG - Message received: {'type': 'response', 'request_seq': 19, 'success': True, 'command': 'variables', 'body': {'variables': [{'name': 'd', 'value': '0x5555558ddd80', 'type': 'QEventDispatcherGlibPrivate * const', 'evaluateName': 'd', 'variablesReference': 1001}, {'name': 'canWait', 'value': 'true', 'type': 'const bool', 'evaluateName': 'canWait', 'variablesReference': 0}, {'name': 'savedFlags', 'value': '{...}', 'type': 'QEventLoop::ProcessEventsFlags', 'evaluateName': 'savedFlags', 'variablesReference': 1002}, {'name': 'result', 'value': '<optimized out>', 'type': 'bool', 'evaluateName': 'result', 'variablesReference': 0}, {'name': 'this', 'value': '0x5555558cfeb0', 'type': 'QEventDispatcherGlib * const', 'evaluateName': 'this', 'variablesReference': 1003}, {'name': 'flags', 'value': '{...}', 'type': 'QEventLoop::ProcessEventsFlags', 'evaluateName': 'flags', 'variablesReference': 1004}]}, 'seq': 532}

Environment

VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Sep 17 2020 21:54:53)
Included patches: 1-1704
Compiled by Arch Linux
Huge version with GTK3 GUI.  Features included (+) or not (-):
+acl               -farsi             +mouse_sgr         +tag_binary
+arabic            +file_in_path      -mouse_sysmouse    -tag_old_static
+autocmd           +find_in_path      +mouse_urxvt       -tag_any_white
+autochdir         +float             +mouse_xterm       +tcl/dyn
-autoservername    +folding           +multi_byte        +termguicolors
+balloon_eval      -footer            +multi_lang        +terminal
+balloon_eval_term +fork()            -mzscheme          +terminfo
+browse            +gettext           +netbeans_intg     +termresponse
++builtin_terms    -hangul_input      +num64             +textobjects
+byte_offset       +iconv             +packages          +textprop
+channel           +insert_expand     +path_extra        +timers
+cindent           +ipv6              +perl/dyn          +title
+clientserver      +job               +persistent_undo   +toolbar
+clipboard         +jumplist          +popupwin          +user_commands
+cmdline_compl     +keymap            +postscript        +vartabs
+cmdline_hist      +lambda            +printer           +vertsplit
+cmdline_info      +langmap           +profile           +virtualedit
+comments          +libcall           +python/dyn        +visual
+conceal           +linebreak         +python3/dyn       +visualextra
+cryptv            +lispindent        +quickfix          +viminfo
+cscope            +listcmds          +reltime           +vreplace
+cursorbind        +localmap          +rightleft         +wildignore
+cursorshape       +lua/dyn           +ruby/dyn          +wildmenu
+dialog_con_gui    +menu              +scrollbind        +windows
+diff              +mksession         +signs             +writebackup
+digraphs          +modify_fname      +smartindent       +X11
+dnd               +mouse             +sound             -xfontset
-ebcdic            +mouseshape        +spell             +xim
+emacs_tags        +mouse_dec         +startuptime       -xpm
+eval              +mouse_gpm         +statusline        +xsmp_interact
+ex_extra          -mouse_jsbterm     -sun_workshop      +xterm_clipboard
+extra_search      +mouse_netterm     +syntax            -xterm_save
   system vimrc file: "/etc/vimrc"
     user vimrc file: "$HOME/.vimrc"
 2nd user vimrc file: "~/.vim/vimrc"
      user exrc file: "$HOME/.exrc"
  system gvimrc file: "/etc/gvimrc"
    user gvimrc file: "$HOME/.gvimrc"
2nd user gvimrc file: "~/.vim/gvimrc"
       defaults file: "$VIMRUNTIME/defaults.vim"
    system menu file: "$VIMRUNTIME/menu.vim"
  fall-back for $VIM: "/usr/share/vim"
Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -I/usr/include/gtk-3.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/fribidi -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/gio-unix-2.0 -I/usr/include/atk-1.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -I/usr/include/at-spi-2.0 -pthread    -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -D_REENTRANT  -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1       
Linking: gcc   -L. -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -fstack-protector-strong -rdynamic -Wl,-export-dynamic -Wl,-E -Wl,-rpath,/usr/lib/perl5/5.32/core_perl/CORE  -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -L/usr/local/lib -Wl,--as-needed -o vim   -lgtk-3 -lgdk-3 -lz -lpangocairo-1.0 -lpango-1.0 -lharfbuzz -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0  -lSM -lICE -lXt -lX11 -lXdmcp -lSM -lICE  -lm -ltinfo -lelf    -lcanberra  -lacl -lattr -lgpm -ldl   -Wl,-E -Wl,-rpath,/usr/lib/perl5/5.32/core_perl/CORE -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -fstack-protector-strong -L/usr/local/lib  -L/usr/lib/perl5/5.32/core_perl/CORE -lperl -lpthread -ldl -lm -lcrypt -lutil -lc   -L/usr/lib -ltclstub8.6 -ldl -lz -lpthread -lm 
/usr/bin/vim
3.8.6 (default, Sep 30 2020, 04:00:38) 
[GCC 10.2.0]
None
None

Declaration

Additional information

Discussion on gitter: https://gitter.im/vimspector/Lobby?at=5f898a0beb82301c1a2cd099 Running the proposed potential fix from https://gitter.im/vimspector/Lobby?at=5f8991b4c990bb1c39108ff7 currently. Will report any issues with that here.

puremourning commented 4 years ago

Thanks for this detailed report. I did start working on writing some tests for this.

puremourning commented 4 years ago

I haven't forgotten about this... just need to find a block of time to write all the tests to work out the right behaviour.

puremourning commented 4 years ago

In addition to this, we may want to change vimspector not to 'aggressively' request threads (per https://github.com/puremourning/vimspector/issues/223#issuecomment-698843210).

Probably what vscode does (and therefore the de facto requirement) is to start populating the threads window from received thread events, but only request threads request on a stopped event.

In that case, we will have a thread ID, from a thread event (so pause request is possible), but we don't need to request all threads at that time.

Further, we probably need to start indicating the "current" thread in the threads window as a few requests actually do depend on the 'current' thread. We should add some way to "switch" the current thread in the UI too.

so, quite a lot of stuff needs to be done to make threads work properly. Just noting this here for reference when this all gets tested and fixed up properly.

puremourning commented 4 years ago

Actually, no. This is what the spec says:

Supporting threads

Whenever the generic debugger receives a stopped or a thread event, the development tool requests all threads that exist at that point in time. Thread events are optional, but a debug adapter can send them to force the development tool to update the threads UI dynamically even when not in a stopped state. If a debug adapter decides not to emit Thread events, the thread UI in the development tool will only update if a stopped event is received.

After a successful launch or attach, the development tool requests the baseline of currently existing threads with the threads request and then starts to listen for thread events to detect new or terminated threads. Even if a debug adapter does not support multiple threads, it must implement the threads request and return a single (dummy) thread. The thread id must be used in all requests which refer to a thread, e.g. stacktrace, pause, continue, next, stepIn, and stepOut.

So what vimspector is doing about "aggressively" requesting threads is 100% correct and the only bug is that we're not requesting threads on every thread event (only the first one). This should be easy to fix.

sgoth commented 4 years ago

Thanks for tackling this. Just fyi, I do still work with the change you proposed in https://gitter.im/vimspector/Lobby?at=5f8991b4c990bb1c39108ff7 and have not had any issues i'd attribute to it.

puremourning commented 4 years ago

@seezer would you mind giving #297 a spin? I have drastically improved vimspector thread handling.

sgoth commented 4 years ago

Sorry was rather busy lately.. Just tried current master (ff4acb1) and the issue here is definitely resolved. Thanks!

Fyi i got a red error message flashed "Protocol error: Server returned no threads" in the startup phase of the debugger. Worked without issues though. Perhaps querying the threads once a bit too early here? Total non issue but i figured you might be interested.

Log lines around the 'User Msg':

2020-11-25 16:27:48,400 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'telemetry', 'output': 'VS/Diagnostics/Debugger/Launch', 'data': {'VS.Diagnostics.Debugger.ImplementationName': 'Microsoft.MIDebugEngine', 'VS.Diagnostics.Debugger.EngineVersion': '16.5.10325.1', 'VS.Diagnostics.Debugger.HostVersion': '16.5.10325.1', 'VS.Diagnostics.Debugger.AdapterId': 'cppdbg', 'VS.Diagnostics.Debugger.Launch.Duration': 610, 'VS.Diagnostics.Debugger.Launch.IsCoreDump': False, 'VS.Diagnostics.Debugger.VisualizerFileUsed': True, 'VS.Diagnostics.Debugger.SourceFileMappings': 0, 'VS.Diagnostics.Debugger.MIMode': None}}, 'seq': 3}
2020-11-25 16:27:48,465 - DEBUG - Message received: {'type': 'response', 'request_seq': 1, 'success': True, 'command': 'launch', 'body': {}, 'seq': 4}
2020-11-25 16:27:48,465 - DEBUG - Message received: {'type': 'event', 'event': 'initialized', 'body': {}, 'seq': 5}
2020-11-25 16:27:48,465 - DEBUG - Sending Message: {"command": "setFunctionBreakpoints", "arguments": {"breakpoints": []}, "seq": 3, "type": "request"}
2020-11-25 16:27:48,498 - DEBUG - Message received: {'type': 'response', 'request_seq': 3, 'success': True, 'command': 'setFunctionBreakpoints', 'body': {'breakpoints': []}, 'seq': 6}
2020-11-25 16:27:48,498 - DEBUG - Breakpoints at this point: {}
2020-11-25 16:27:48,498 - DEBUG - Sending Message: {"command": "configurationDone", "seq": 4, "type": "request"}
2020-11-25 16:27:48,521 - DEBUG - Message received: {'type': 'response', 'request_seq': 4, 'success': True, 'command': 'configurationDone', 'body': {}, 'seq': 7}
2020-11-25 16:27:48,521 - DEBUG - Sending Message: {"command": "threads", "seq": 5, "type": "request"}
2020-11-25 16:27:48,521 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '=thread-group-added,id="i1"\nGNU gdb (GDB) 10.1\nCopyright (C) 2020 Free Software Foundation, Inc.\nLicense GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\nThis is free software: you are free to change and redistribute it.\nThere is NO WARRANTY, to the extent permitted by law.\nType "show copying" and "show warranty" for details.\nThis GDB was configured as "x86_64-pc-linux-gnu".\nType "show configuration" for configuration details.\nFor bug reporting instructions, please see:\n<https://www.gnu.org/software/gdb/bugs/>.\nFind the GDB manual and other documentation resources online at:\n    <http://www.gnu.org/software/gdb/documentation/>.\n\nFor help, type "help".\nType "apropos word" to search for commands related to "word".\n=cmd-param-changed,param="follow-fork-mode",value="child"\nWarning: Debuggee TargetArchitecture not detected, assuming x86_64.\n=cmd-param-changed,param="pagination",value="off"\n'}, 'seq': 8}
2020-11-25 16:27:48,548 - DEBUG - Message received: {'type': 'response', 'request_seq': 5, 'success': True, 'command': 'threads', 'body': {'threads': []}, 'seq': 9}
2020-11-25 16:27:48,548 - INFO - User Msg: Protocol error: Server returned no threads
2020-11-25 16:27:48,561 - DEBUG - Message received: {'type': 'event', 'event': 'thread', 'body': {'reason': 'started', 'threadId': 980121}, 'seq': 10}
2020-11-25 16:27:48,561 - DEBUG - Sending Message: {"command": "threads", "seq": 6, "type": "request"}
2020-11-25 16:27:48,583 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': 'Stopped due to shared library event (no libraries added or removed)\n'}, 'seq': 11}
2020-11-25 16:27:48,584 - DEBUG - Message received: {'type': 'response', 'request_seq': 6, 'success': True, 'command': 'threads', 'body': {'threads': [{'id': 980121, 'name': 'cassandra'}]}, 'seq': 12}
2020-11-25 16:27:48,584 - DEBUG - Sending Message: {"command": "stackTrace", "arguments": {"threadId": 980121}, "seq": 7, "type": "request"}
2020-11-25 16:27:48,602 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'console', 'output': "Loaded '/lib64/ld-linux-x86-64.so.2'. Symbols loaded.\n"}, 'seq': 14}
2020-11-25 16:27:48,602 - DEBUG - Message received: {'type': 'response', 'request_seq': 7, 'success': True, 'command': 'stackTrace', 'body': {'stackFrames': [], 'totalFrames': 0}, 'seq': 13}
2020-11-25 16:27:53,618 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': '[Thread debugging using libthread_db enabled]\n'}, 'seq': 15}
2020-11-25 16:27:53,619 - DEBUG - Message received: {'type': 'event', 'event': 'output', 'body': {'category': 'stdout', 'output': 'Using host libthread_db library "/usr/lib/libthread_db.so.1".\n'}, 'seq': 16}
puremourning commented 4 years ago

Protocol error: Server returned no threads

Yes, it seems that many servers have an interesting relationship with the specification, namely that they seem to think it's ok to ignore it.

You were actually getting this error before, the only change is that it's now red :)

sgoth commented 4 years ago

Haha yeah ok. I like red anyway. :)

puremourning commented 4 years ago

Actually, let me check that vimspector really is sending threads request at the right time.

puremourning commented 4 years ago

Yep, I even have a passive-aggressive comment in the code:

  def _LoadThreadsIfReady( self ):
    # NOTE: You might think we should only load threads on a stopped event,
    # but the spec is clear:
    #
    #   After a successful launch or attach the development tool requests the
    #   baseline of currently existing threads with the threads request and
    #   then starts to listen for thread events to detect new or terminated
    #   threads.
    #
    # Of course, specs are basically guidelines. MS's own cpptools simply
    # doesn't respond top threads request when attaching via gdbserver. At
    # least it would apear that way.
    #