Redux: Windbg/1394 as slow as a aged dog on barbiturates.

This bites me every 3 months or so.

It can take between 5 and 30 minutes to return to the Windbg> prompt (particularly after a crash)

  • My symbol path is entirely local (cache*;g:\path)
  • Debugging (CTRL/ALT-V shows no traffic)
  • Debug->Resolve unqualified symbols: unticked.

Last time this happened I just gave up and used VMs (which can be less than satisfactory, byt kdvm is pretty cool). Then I bought a new external 1394 and things became much better. Suddenly last night things started being dead slow again.

This does *not* happen using KDVM debugging with everything else (for instance the symbol cache) being the same.

Any suggestions would be more than welcome.

A couple of busy stacks are show below.

dbghelp!DBI1::fReadSymRec
dbghelp!GSI1::NextSym
dbghelp!CAllPubNameTrav::next
dbghelp!CDiaEnumTraversal >::Next
dbghelp!diaGetGlobals
dbghelp!diaGetSymbols
dbghelp!diaEnumSymbols
dbghelp!modEnumSymbols
dbghelp!ModLoop
dbghelp!EnumSymbols
dbghelp!SymEnumSymbolsW
dbgeng!EnumSymbolInfoRaw
dbgeng!GetOffsetFromSym
dbgeng!GetSimpleSymOffset
dbgeng!TargetInfo::GetUnloadedModuleMemoryInfo
dbgeng!NtUserUnloadedModuleInfo::Initialize
dbgeng!ProcessInfo::AddUnloadedImages
dbgeng!ProcessInfo::AddAllTargetUnloadedImages
dbgeng!ProcModIter::Start
dbgeng!DebugClient::GetModuleNames
ext!DebugFailureAnalysis::BuildModuleAliases
ext!BcFillAnalysis
ext!BcAnalyze
ext!AnalyzeBugCheck
ext!analyze
dbgeng!ExtensionInfo::CallA
dbgeng!ExtensionInfo::Call
dbgeng!ExtensionInfo::CallAny
dbgeng!CallBugCheckExtension
dbgeng!HandleBPWithStatus
dbgeng!PrepareForCalls
dbgeng!RawWaitForEvent
dbgeng!DebugClient::WaitForEvent
windbg!EngineLoop
kernel32!BaseThreadInitThunk
ntdll!RtlUserThreadStart

msvcrt!DName::operator+=
msvcrt!DName::operator+
msvcrt!UnDecorator::getScope
msvcrt!UnDecorator::getDecoratedName
msvcrt!UnDecorator::operator char * __ptr64
msvcrt!_unDName
dbghelp!UndecorateWrapper::match
dbghelp!CAllPubNameTrav::next
dbghelp!CDiaEnumTraversal >::Next
dbghelp!diaGetGlobals
dbghelp!diaGetSymbols
dbghelp!diaEnumSymbols
dbghelp!modEnumSymbols
dbghelp!ModLoop
dbghelp!EnumSymbols
dbghelp!SymEnumSymbolsW
dbgeng!FindTypeInfoInMod
dbgeng!TypeInfoFound
dbgeng!TypedData::FindType
dbgeng!CppEvalExpression::CollectTypeOrSymbolName
dbgeng!CppEvalExpression::Term
dbgeng!CppEvalExpression::Postfix
dbgeng!CppEvalExpression::Unary
dbgeng!CppEvalExpression::Cast
dbgeng!CppEvalExpression::ClassMemberRef
dbgeng!CppEvalExpression::Multiplicative
dbgeng!CppEvalExpression::Additive
dbgeng!CppEvalExpression::Shift
dbgeng!CppEvalExpression::Relational
dbgeng!CppEvalExpression::Equality
dbgeng!CppEvalExpression::BitwiseAnd
dbgeng!CppEvalExpression::BitwiseXor
dbgeng!CppEvalExpression::BitwiseOr
dbgeng!CppEvalExpression::LogicalAnd
dbgeng!CppEvalExpression::LogicalOr
dbgeng!CppEvalExpression::Conditional
dbgeng!CppEvalExpression::Assignment
dbgeng!CppEvalExpression::Expression
dbgeng!CppEvalExpression::Evaluate
dbgeng!EvalExpression::EvalCurrent
dbgeng!EvalCurrentAndOutput
dbgeng!EvaluateTypedExpr
dbgeng!ProcessCommands
dbgeng!ProcessCommandsAndCatch
dbgeng!Execute
dbgeng!DebugClient::ExecuteWide
windbg!EvalToStateBuffer::ReadState
windbg!StateBuffer::Update
windbg!EvalToBuffer
windbg!ProcessCommand
windbg!ProcessEngineCommands
windbg!EngineLoop
kernel32!BaseThreadInitThunk
ntdll!RtlUserThreadStart

I should add the windbg is pegging the cpu it is running on. Also the "!sym
noisy trace” shows lines of this type which I am not sure I have seen
before:

DBGHELP: XYZ.sys not found in transform

I am not sure that this is relevant since the traces come in bursts with
huge delays between.

Note also this oddity:

Loading symbols for fffff880`019a7000 mup.sys -> mup.sys
DBGHELP: mup - public symbols
C:\WinDDK\7600.16385.1\Debuggers\sym\mup.pdb\B27020B169714E07BDDF87C73CBFE8562\mup.pdb
[snip]
DBGHELP: C:\WinDDK\7600.16385.1\Debuggers\mup.sys - file not found
DBGHELP: mup.sys not found in transform
DBGHELP:
C:\WinDDK\7600.16385.1\Debuggers\sym\mup.sys\4A5BC20112000\mup.sys – OK

Why the mutiple load? I see several of these…

Don’t know if this will help but has helped me in the past.

Make sure your PATH evnironment variable has no ‘dead end’ paths.
Move any directory that Windbg uses to the front of the PATH.

Larry C

(For completeness).

And suddenly it is fast again with no change to configuration.

Thanks for the input, I’ll keep all these posts against the next time things go wrong…

Rod

“Rod Widdowson” wrote in message news:xxxxx@windbg…
This bites me every 3 months or so.

It can take between 5 and 30 minutes to return to the Windbg> prompt (particularly after a crash)
- My symbol path is entirely local (cache*;g:\path)
- Debugging (CTRL/ALT-V shows no traffic)
- Debug->Resolve unqualified symbols: unticked.

Last time this happened I just gave up and used VMs (which can be less than satisfactory, byt kdvm is pretty cool). Then I bought a new external 1394 and things became much better. Suddenly last night things started being dead slow again.

This does not happen using KDVM debugging with everything else (for instance the symbol cache) being the same.

Any suggestions would be more than welcome.

A couple of busy stacks are show below.

dbghelp!DBI1::fReadSymRec
dbghelp!GSI1::NextSym
dbghelp!CAllPubNameTrav::next
dbghelp!CDiaEnumTraversal >::Next
dbghelp!diaGetGlobals
dbghelp!diaGetSymbols
dbghelp!diaEnumSymbols
dbghelp!modEnumSymbols
dbghelp!ModLoop
dbghelp!EnumSymbols
dbghelp!SymEnumSymbolsW
dbgeng!EnumSymbolInfoRaw
dbgeng!GetOffsetFromSym
dbgeng!GetSimpleSymOffset
dbgeng!TargetInfo::GetUnloadedModuleMemoryInfo
dbgeng!NtUserUnloadedModuleInfo::Initialize
dbgeng!ProcessInfo::AddUnloadedImages
dbgeng!ProcessInfo::AddAllTargetUnloadedImages
dbgeng!ProcModIter::Start
dbgeng!DebugClient::GetModuleNames
ext!DebugFailureAnalysis::BuildModuleAliases
ext!BcFillAnalysis
ext!BcAnalyze
ext!AnalyzeBugCheck
ext!analyze
dbgeng!ExtensionInfo::CallA
dbgeng!ExtensionInfo::Call
dbgeng!ExtensionInfo::CallAny
dbgeng!CallBugCheckExtension
dbgeng!HandleBPWithStatus
dbgeng!PrepareForCalls
dbgeng!RawWaitForEvent
dbgeng!DebugClient::WaitForEvent
windbg!EngineLoop
kernel32!BaseThreadInitThunk
ntdll!RtlUserThreadStart

msvcrt!DName::operator+=
msvcrt!DName::operator+
msvcrt!UnDecorator::getScope
msvcrt!UnDecorator::getDecoratedName
msvcrt!UnDecorator::operator char * __ptr64
msvcrt!_unDName
dbghelp!UndecorateWrapper::match
dbghelp!CAllPubNameTrav::next
dbghelp!CDiaEnumTraversal >::Next
dbghelp!diaGetGlobals
dbghelp!diaGetSymbols
dbghelp!diaEnumSymbols
dbghelp!modEnumSymbols
dbghelp!ModLoop
dbghelp!EnumSymbols
dbghelp!SymEnumSymbolsW
dbgeng!FindTypeInfoInMod
dbgeng!TypeInfoFound
dbgeng!TypedData::FindType
dbgeng!CppEvalExpression::CollectTypeOrSymbolName
dbgeng!CppEvalExpression::Term
dbgeng!CppEvalExpression::Postfix
dbgeng!CppEvalExpression::Unary
dbgeng!CppEvalExpression::Cast
dbgeng!CppEvalExpression::ClassMemberRef
dbgeng!CppEvalExpression::Multiplicative
dbgeng!CppEvalExpression::Additive
dbgeng!CppEvalExpression::Shift
dbgeng!CppEvalExpression::Relational
dbgeng!CppEvalExpression::Equality
dbgeng!CppEvalExpression::BitwiseAnd
dbgeng!CppEvalExpression::BitwiseXor
dbgeng!CppEvalExpression::BitwiseOr
dbgeng!CppEvalExpression::LogicalAnd
dbgeng!CppEvalExpression::LogicalOr
dbgeng!CppEvalExpression::Conditional
dbgeng!CppEvalExpression::Assignment
dbgeng!CppEvalExpression::Expression
dbgeng!CppEvalExpression::Evaluate
dbgeng!EvalExpression::EvalCurrent
dbgeng!EvalCurrentAndOutput
dbgeng!EvaluateTypedExpr
dbgeng!ProcessCommands
dbgeng!ProcessCommandsAndCatch
dbgeng!Execute
dbgeng!DebugClient::ExecuteWide
windbg!EvalToStateBuffer::ReadState
windbg!StateBuffer::Update
windbg!EvalToBuffer
windbg!ProcessCommand
windbg!ProcessEngineCommands
windbg!EngineLoop
kernel32!BaseThreadInitThunk
ntdll!RtlUserThreadStart