microsoft / microsoft/MIEngine
Specific -var-create in core dump debugging is incredible slow
Nobody has claimed this yet.
- Dominant language
- C#
- Stars
- 859
- Forks
- 233
- Avg merge
- 1d 6h
- Merged PRs (30d)
- 3
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
- Command: 1106-var-create - * "cutFrames"
- After executing the CmdAsyncInternal I lost what's going on:
-
Status of waitingOperations:
-
Step into MITransport > StreamTransport > Task.Wait(token) (execute the task?) and takes minutes to reach the next line -> return task.Result;
https://github.com/microsoft/MIEngine/blob/074837ed159e41a3e550b41eb99cdc22d97ab519/src/MICore/Transports/StreamTransport.cs#L168 -
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.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the -var-create command flow in src/MIDebugEngine/Engine.Impl/DebuggedProcess.cs and follow CmdAsyncInternal in src/MICore/Debugger.cs. Inspect the wait in src/MICore/Transports/StreamTransport.cs while reproducing the core-dump case, then compare the slow request with the other arguments. Done means identifying the cause of the delay and documenting or fixing the affected behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, csharp
- Domain
- devtools
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 28/100