Crash in Remote Performance Monitor when trying to use GC Heap function (.NET CF 3.5)



I have a generic WinCE 5.0 system (desktop, shell, etc). When I try to use
the Remote Performance Monitor tool that comes with the
NETCFv35PowerToys.msi, it crashes when I hit the 'GC Heap' button.

To reproduce, I can generate an "out of the box" wizard generated C# app
targeting .NET CF 3.5 using VS2008. I change the generated Program.cs file
to be:

using System;
using System.Linq;
using System.Collections.Generic;
using System.Windows.Forms;
using System.IO.Ports;
using System.Threading;

namespace TestRPMTools // your namespace here...
class Program
static SerialPort m_SerialPort;

/// <summary>
/// The main entry point for the application.
/// </summary>
static void Main()
m_SerialPort = new System.IO.Ports.SerialPort("COM4", 115200,
Parity.None, 8, StopBits.One);
Application.Run(new Form1());

Now, just run this program on the target (using the RPM tool), and start
hitting the GC Heap button. Sometimes it works a few times (close GC Heap
window without saving if this works), but after a few times it fails,
throwing up a message box with this text:

exception code: 0xC0000005
exception address: 0x01d3a39c
Reading: 0x00000300
Faulting Module: mscoree3_5.dll
Offset: 0x0008a39c

Does anyone have a suggestions at all as to how to attack this issue? Is
this likely to be a bug in mscoree3_5.dll? Is there something that I need
to be sure is in my WinCE nk.bin image? (Right now, .NET CF 3.5 is deployed
by VS2008 - it is not built into the nk.bin image. I have pretty up-to-date
QFEs in the nk.bin.)

Full Disclosure: Also, the above code with the serial port is something that
I reduced my program to in order to report this issue. But removing the
same code from my larger program where the issue was first discovered
doesn't fix the issue, so the above code may be a red herring. The crash
may be caused by some unrelated issue.


Thanks for any suggestions anyone might have!

- Wil




An update on this issue.

A call to Microsoft's support comes back with the answer that the Remote
Performance Monitor (RPM) for .NETCF 3.5 (and presumably the entire "Power
Toys" package that RPM comes with) is not supported by Microsoft. So
despite much hype at last year's MEDC conference on these tools, if they
don't work for you, your out of luck (at least as far as MS support).

Can anyone suggest 3rd party tools that might work better for diagnosing
managed memory leaks on .NET CF?

- Wil



Andreas He?

Hello Wil

Did you solve this error in the meantime?
I have got the same situation and do not see any solutions, my application seems having problems with memory leaks but I am not able to debug it via the RPM. Are there other tools?
What a difference always between reality and theoretical behaviour of the world...


Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question