views:

757

answers:

2

Hi!

I have some PDAs (windows mobile) to test my application. One of them is HTC Touch Dual, and it have some bugs in debugging. There is another ARMv6 device I can use, but it's far far away. So I can't use USB cable, but can use TCP/IP (internet, not intranet).

Do you know, how can I connect to remote windows mobile device to debug application on it?

We tried different ways and now we know this:

  1. ActiveSync is bad. It disables all external connections to device and it's impossible (or just I don't know how) to remotely debug device while it's connected via ActiveSync.
  2. We have created VPN, connected device via wi-fi to remote PC, and setup routes to device be accessible over VPN. At this step device can be connected without ActiveSync (MSDN) from Visual Studio on remote PC. But connection from Visual Studio on my PC was not available - "device not ready". I can ping device, but can't connect it from Visual Studio.

I've checked following things:

  • binaries versions to connect without ActiveSync to be correct as said in MSDN article above
  • routers/firewalls don't block anything
  • device is ready to debug
  • sniffed packets to device looks similar in case of remote PC connection and my PC connection, but somehow my PC establish only 1 connection, while remote 2

I think, VPN and PDA connection without ActiveSync was very close to get remote debug, but something goes wrong with it. Maybe I just need some sleep now :)

And the questions are:

  1. Do you know, how to debug remote winCE application in a simplier way?
  2. What a problem can be with "VPN method" if it's the simplest way?

Thank you.

+2  A: 

You can achieve this via CoreCon... After Microsoft moved from EVC to Visual Studio they deprecated Platform Manager in favour of CoreCon.

Take a look under C:\Program Files\Common Files\Microsoft Shared\CoreCon\1.0\Target\wce400[targetarch].

Basically you run ConmanClient2.exe and then CMAccept.exe which opens a window of time in which you can establish a TCP/IP connection via the IDE.

You can override the need for CMAccept.exe via adding the reg key HKEY_LOCAL_MACHINE\System\CoreConOverrideSecurity=DWORD:0x01.

After CoreCon is running on your target device, you need to point the IDE to the Device via the 'Device Options'/'Properties'/'Transport'/'Configure'/'Use specific IP address'. Simply set the IP to that of the device.

I have found CoreCon much faster and reliable than the old EVC infrastructure - the debugger definitely benefits from it. It has its fair share of limitations, but it doesn't depend directly on ActiveSync which more than makes up for it! :)

David Thornley
+2  A: 

This article on debugging without activesync may be of use.

ctacke
Does the exe listed in this document support visual studio 2008? It only mentions 2005. I tried with 2008 and it did not work. But I don't know if I did something wrong or if it is just not compatible.
Vaccano
It should work fine, though you might need to check the CoreCon file version becasue the VS08 and VS05 corecon binaries (conmanclient2.exe, cmaccept.exe) are not cross-compatible.
ctacke