Skip to content

Specific -var-create in core dump debugging is incredible slow #1479

Open
@borjamunozf

Description

@borjamunozf

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.

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:

public async Task<Results> CmdAsync(string command, ResultClass expectedResultClass)
{
await _commandLock.AquireShared();
try
{
return await CmdAsyncInternal(command, expectedResultClass);
}
finally
{
_commandLock.ReleaseShared();
}
}

  • Status of waitingOperations:
    Pasted image 20241003003909

  • Step into MITransport > StreamTransport > Task.Wait(token) (execute the task?) and takes minutes to reach the next line -> return task.Result;

  • 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.

imagen

  • Nexts steps shows a ParseIssue? for it also shows the same for the other args (which seems to respond quickly)
    imagen

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions