Repository navigation
Specific -var-create in core dump debugging is incredible slow #1479
Description
Hello.
Summary
Debugging a C++ Core dump spent too much time waiting for the result of an specific -var-create (cutFrames).
The context is explained in this thread in C++ debugger extension.
- Details here - issue cpptools-12772
GDB command line does not suffer of this problem, overall debug took ~2 minutes.
Gathering debug info from MIENGINE
I was able to setup the debugger to debug OpenDebugAD7 process.
- Stepping through the code flow
| Results results = await MICommandFactory.VarCreate(n, thread.Id, (uint)level, 0, ResultClass.None); |
- Command: 1106-var-create - * "cutFrames"
- After executing the CmdAsyncInternal I lost what's going on:
MIEngine/src/MICore/Debugger.cs
Lines 875 to 887 in 074837e
| public async Task<Results> CmdAsync(string command, ResultClass expectedResultClass) | |
| { | |
| await _commandLock.AquireShared(); | |
| try | |
| { | |
| return await CmdAsyncInternal(command, expectedResultClass); | |
| } | |
| finally | |
| { | |
| _commandLock.ReleaseShared(); | |
| } | |
| } |
-
Step into MITransport > StreamTransport > Task.Wait(token) (execute the task?) and takes minutes to reach the next line -> return task.Result;
task.Wait(token); -
After it returned, continuing stepping over I see this information on the overall status of the Debugger. There are two different exceptions, but I dont know if they're real or important at all for MICore.LocalTransport. _InvalidOperation*, process must exist before requested information can be determined.
- Nexts steps shows a ParseIssue? for it also shows the same for the other args (which seems to respond quickly)

Could you help me to identify what's going on? Any idea?
Thanks.


Activity
borjamunozf commentedon Oct 6, 2024
Investigation ongoing:
Running this sequence of cmds:
the faulty var-create - * "cutFrames" takes ~5-6 minutes!
I will open a bug/ticket in GDB/MI also, let's see if I can get any help :/