--- a/memspy/Engine/Source/Helpers/MemSpyEngineHelperStack.cpp Tue Aug 31 16:45:49 2010 +0300
+++ b/memspy/Engine/Source/Helpers/MemSpyEngineHelperStack.cpp Wed Sep 01 12:37:10 2010 +0100
@@ -250,22 +250,36 @@
if ( r == KErrNone )
{
- while ( r == KErrNone )
- {
- iEngine.Sink().OutputBinaryDataL( KStackDataPrefix, pData.Ptr(), (const TUint8*) info.iUserStackBase, pData.Length() );
- //
- if ( remaining > 0 )
+ if ( aType == EMemSpyDriverDomainUser ) {
+ while ( r == KErrNone )
{
- info.iUserStackBase += pData.Length();
- r = iEngine.Driver().GetStackDataNext( aThread.Id(), pData, remaining, aType, aEntireStack );
+ iEngine.Sink().OutputBinaryDataL( KStackDataPrefix, pData.Ptr(), (const TUint8*) info.iUserStackBase, pData.Length() );
+ //
+ if ( remaining > 0 )
+ {
+ info.iUserStackBase += pData.Length();
+ r = iEngine.Driver().GetStackDataNext( aThread.Id(), pData, remaining, aType, aEntireStack );
+ }
+ else
+ {
+ break;
+ }
}
- else
- {
- break;
+ }
+ else if ( aType == EMemSpyDriverDomainKernel ) {
+ while ( r == KErrNone ) {
+
+ iEngine.Sink().OutputBinaryDataL( KStackDataPrefix, pData.Ptr(), (const TUint8*) info.iSupervisorStackBase, pData.Length() );
+ //
+ if ( remaining > 0 ) {
+ info.iSupervisorStackBase += pData.Length();
+ r = iEngine.Driver().GetStackDataNext( aThread.Id(), pData, remaining, aType, aEntireStack );
}
- }
+ else {
+ break;
+ }
+ }
}
-
}
CleanupStack::PopAndDestroy( data );
@@ -276,6 +290,7 @@
iEngine.Sink().OutputLineFormattedL( KMemSpyMarkerStackData, &KMemSpySinkTagClose, (TUint) aThread.Id() );
iEngine.Sink().DataStreamEndL();
}
+}
EXPORT_C void CMemSpyEngineHelperStack::OutputStackInfoForDeviceL()