[MonoDevelop] remote debugging a hello world application

Jerrill jerrill at gmail.com
Fri Apr 27 05:11:33 UTC 2012


I'm ultimately going to try and remote debug an application on an embedded
Linux device, but I though I would try out the process locally first and
have run into a problem.

I have the following application (debug-test.cs):

-----------------------
using System;

namespace debugtest
{
	class MainClass
	{
		public static void Main (string[] args)
		{
			Console.WriteLine ("Hello World once!"); //breakpoint here!
			Console.WriteLine ("Hello World twice!");
			Console.WriteLine ("Hello World three times!");
		}
	}
}
---------------------

I launch MonoDevelop 2.6 on Ubuntu 11.10 with the environment variable
MONODEVELOP_SDB_TEST set to 1. This gives me the Run->Run With->Custom
Command Mono Soft Debugger option. I start the debugger listening on port
127.0.0.1:10000 and get the "Waiting for debugger to connect..." window.

>From the command line I execute the following:

mono --debug --debugger-agent=transport=dt_socket,address=127.0.0.1:10000
debug-test.exe

And nothing happens.... The "Waiting for debugger to connect..." window
never goes away. I can confirm that a connection is made as follows:

# netstat -n inet
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
...
tcp       13      0 127.0.0.1:10000         127.0.0.1:44421        
ESTABLISHED
...

And when I click the Cancel button, only then does the command prompt
reappear after the following message:

debugger-agent: DWP handshake failed.

If I run the debugger without the listener running I get the following:

debugger-agent: Unable to connect to 127.0.0.1:10000

So *something* is happening, but it doesn't appear to be a debugging
session.

If I debug with Run->Run With->Mono Soft Debugger I can successfully debug.
When I inspect how this is all invoked I get the following:

#ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
...
jerrill   8159  0.1  0.6  65712 13752 pts/1    Sl+  01:03   0:00
/usr/bin/gnome-terminal --disable-factory --title MonoDevelop External
Console -e bash -c 'cd
/home/jerrill/projects/debug-test/debug-test/debug-test/bin/Debug ;
/usr/bin/mono  --debug
--debugger-agent=transport=dt_socket,address=127.0.0.1:44327
"/home/jerrill/projects/debug-test/debug-test/debug-test/bin/Debug/debug-test.exe" 
; echo; read -p "Press any key to continue..." -n1;'

jerrill   8163  0.0  0.0   2212   720 pts/1    S+   01:03   0:00
gnome-pty-helper

jerrill   8164  0.0  0.0   5396  1128 pts/3    Ss+  01:03   0:00 bash -c cd
/home/jerrill/projects/debug-test/debug-test/debug-test/bin/Debug ;
/usr/bin/mono  --debug
--debugger-agent=transport=dt_socket,address=127.0.0.1:44327
"/home/jerrill/projects/debug-test/debug-test/debug-test/bin/Debug/debug-test.exe" 
; echo; read -p "Press any key to continue..." -n1;

jerrill   8165  0.0  0.1  13924  3880 pts/3    Sl+  01:03   0:00
/usr/bin/mono --debug
--debugger-agent=transport=dt_socket,address=127.0.0.1:44327
/home/jerrill/projects/debug-test/debug-test/debug-test/bin/Debug/debug-test.exe

I can see that my assembly is being invoked nearly the same way, except for
using the hidden addin in the failing case.

Can anyone shed some light on what I'm doing wrong? 

Thank you in advance for your help!
Jerrill

--
View this message in context: http://mono.1490590.n4.nabble.com/remote-debugging-a-hello-world-application-tp4591791p4591791.html
Sent from the Mono - MonoDevelop IDE mailing list archive at Nabble.com.


More information about the Monodevelop-list mailing list