diff -r 7fdc9a71d314 -r 8ad140f3dd41 memspy/Engine/Source/Helpers/MemSpyEngineHelperActiveObject.cpp --- a/memspy/Engine/Source/Helpers/MemSpyEngineHelperActiveObject.cpp Wed Sep 15 13:53:27 2010 +0300 +++ b/memspy/Engine/Source/Helpers/MemSpyEngineHelperActiveObject.cpp Wed Oct 13 16:17:58 2010 +0300 @@ -68,7 +68,7 @@ EXPORT_C CMemSpyEngineActiveObjectArray* CMemSpyEngineHelperActiveObject::ActiveObjectListL( const CMemSpyThread& aThread ) { - //RDebug::Printf("CMemSpyEngineHelperActiveObject::ActiveObjectListL() - START"); + //RDebug::Printf("CMemSpyEngineHelperActiveObject::ActiveObjectListLC() - START"); CMemSpyEngineActiveObjectArray* array = CMemSpyEngineActiveObjectArray::NewLC(); // Is the thread's process already suspended? If not, we need to do it now. @@ -76,7 +76,7 @@ const TBool isSuspended = ( iEngine.SuspendedProcessId() == parentProcessId ); if ( !isSuspended ) { - //RDebug::Printf("CMemSpyEngineHelperActiveObject::ActiveObjectListL() - suspending process"); + //RDebug::Printf("CMemSpyEngineHelperActiveObject::ActiveObjectListLC() - suspending process"); iEngine.ProcessSuspendLC( parentProcessId ); } @@ -84,7 +84,7 @@ CleanupStack::PushL( TCleanupItem( CleanupHeapWalk, this ) ); // Get the thread info - //RDebug::Printf("CMemSpyEngineHelperActiveObject::ActiveObjectListL() - getting thread info..."); + //RDebug::Printf("CMemSpyEngineHelperActiveObject::ActiveObjectListLC() - getting thread info..."); TMemSpyDriverThreadInfo threadInfo; TInt err = iEngine.Driver().GetThreadInfo( aThread.Id(), threadInfo ); User::LeaveIfError( err ); @@ -95,15 +95,15 @@ #endif // Get the heap info - we need this for verification purposes - //RDebug::Printf("CMemSpyEngineHelperActiveObject::ActiveObjectListL() - getting heap info..."); + //RDebug::Printf("CMemSpyEngineHelperActiveObject::ActiveObjectListLC() - getting heap info..."); err = iEngine.Driver().GetHeapInfoUser( iHeapInfo, aThread.Id() ); User::LeaveIfError( err ); - //RDebug::Printf("CMemSpyEngineHelperActiveObject::ActiveObjectListL() - allocated cell header length is: %d", iHeapInfo.iHeapCellHeaderLengthAllocated); + //RDebug::Printf("CMemSpyEngineHelperActiveObject::ActiveObjectListLC() - allocated cell header length is: %d", iHeapInfo.iHeapCellHeaderLengthAllocated); // Do we have a ROM-based scheduler pointer? - if ( scheduler != NULL && iHeapInfo.Type() != TMemSpyHeapInfo::ETypeUnknown ) + if ( scheduler != NULL && iHeapInfo.Type() == TMemSpyHeapInfo::ETypeRHeap ) { - //RDebug::Printf("CMemSpyEngineHelperActiveObject::ActiveObjectListL() - scheduler: 0x%08x", scheduler); + //RDebug::Printf("CMemSpyEngineHelperActiveObject::ActiveObjectListLC() - scheduler: 0x%08x", scheduler); // Let's try to get the scheduler's heap cell... HBufC8* data = SchedulerHeapCellDataLC( scheduler, aThread.Id() ); @@ -114,14 +114,14 @@ } // Tidy up - CleanupStack::PopAndDestroy(this); // heap walk cleanup item + CleanupStack::PopAndDestroy(); // heap walk cleanup item if ( !isSuspended ) { - CleanupStack::PopAndDestroy(); // will resume the process we suspended earlier + iEngine.ProcessResume(); } // CleanupStack::Pop( array ); - //RDebug::Printf("CMemSpyEngineHelperActiveObject::ActiveObjectListL() - END"); + //RDebug::Printf("CMemSpyEngineHelperActiveObject::ActiveObjectListLC() - END"); return array; } @@ -149,9 +149,9 @@ //RDebug::Printf("CMemSpyEngineHelperActiveObject::SchedulerHeapCellDataLC() - err: %d, cellLength: %d, cellAllocationNumber: %d, cellType: %d", err, cellLength, cellAllocationNumber, cellType); User::LeaveIfError( err ); - if (cellType & EMemSpyDriverAllocatedCellMask) + if ( cellType == EMemSpyDriverGoodAllocatedCell ) { - const TInt payloadLength = cellLength; + const TInt payloadLength = cellLength - iHeapInfo.AsRHeap().MetaData().HeaderSizeAllocated(); HBufC8* data = HBufC8::NewLC( payloadLength ); TPtr8 pData( data->Des() ); // @@ -281,9 +281,9 @@ //RDebug::Printf("CMemSpyEngineHelperActiveObject::ReadActiveObjectDataL() - err: %d, cellLength: %d, cellAllocationNumber: %d, cellType: %d", err, cellLength, cellAllocationNumber, cellType); User::LeaveIfError( err ); - if (cellType & EMemSpyDriverAllocatedCellMask) + if ( cellType == EMemSpyDriverGoodAllocatedCell ) { - const TInt payloadLength = cellLength; + const TInt payloadLength = cellLength - iHeapInfo.AsRHeap().MetaData().HeaderSizeAllocated(); //RDebug::Printf("CMemSpyEngineHelperActiveObject::ReadActiveObjectDataL() - payloadLength: %d", payloadLength); // const TInt payloadLength = Max( 512, cellLength - iHeapInfo.iHeapCellHeaderLengthAllocated ); // Prevent negative payload lengths?