[Mono-dev] Debugging with MonoDevelop

Bartosz Przygoda thechives at gmail.com
Tue Nov 20 07:14:18 UTC 2012


The breakpoints in soft debugger are implemented as segfault signals,
so in some scenarios you may attach VS debugger after breakpoint is
being hit. Though it's probably not very helpful in your scenario, as
you want to debug why it crashes:)

Looks like the runtime is unable to handle those segfaults in your
build somehow?
From: Francois Schelling
Sent: 20/11/2012 02:23
To: mono-devel-list at lists.ximian.com
Subject: Re: [Mono-dev] Debugging with MonoDevelop
Hi,

I've just did a test by running everything in Win32 (x86) and this is
working.  With my Mono build, my test app and my test assembly
compiled in x86, I'm able to attach to the my C# assembly, put
breakpoints and debug it.  So the issue seems to come from the Mono
library build in x64.  Anyone have been able to Debug with MonoDevelop
with an x64 version on Mono 3.0.1?

Also, it seems that I'm unable to launch my c++ app from Visual Studio
and attach to the assembly with MonoDevelop.  I'm only able to debug
if I launch my app manually from explorer.  Anyone know how to achieve
that?

Francois Schelling
Senior Programmer
Square Enix Montréal
fschelling at square-enix-montreal.com

-----Original Message-----
From: Francois Schelling
Sent: 19 November 2012 14:15
To: Francois Schelling; Andres G. Aragoneses; mono-devel-list at lists.ximian.com
Subject: RE: [Mono-dev] Debugging with MonoDevelop

Hi again,

I've tried to repro the same setup on a small test app and still have
the result.  Here my c++ code.  On the C# assembly, I only have one
class with an empty Main.  When putting a break point, it triggers and
exception, without breakpoint, everything is fine.

I'm using Mono 3.0.1 for Windows and using a custom x64 build of Mono
3.0 for my Mono library.  I'm building my c# assembly with MonoDevelop
using Mono / .Net 4.0 as the Target framework.

void InitMono()
{
	mono_set_assemblies_path("./");
	if(debugMono)
	{
		// Debugging w/Embedded Mono how to set breakpoints in C# code?
		static const char* options[] = {
			  "--soft-breakpoints",
			  "--debugger-agent=transport=dt_socket,address=127.0.0.1:10000"
			};
		mono_jit_parse_options(sizeof(options)/sizeof(char*), (char**)options);
		mono_debug_init(MONO_DEBUG_FORMAT_MONO);
	}

	m_MainMonoDomain = mono_jit_init_version("MainDomain", "v4.0.30128");
	m_GameMonoDomain = mono_domain_create_appdomain("GameDomain", NULL);
	if(debugMono)
	{
		mono_debug_domain_create(m_GameMonoDomain);
	}

	m_GameMonoAssembly = mono_domain_assembly_open(m_GameMonoDomain,
"MonoGame.exe");
	if(!m_GameMonoAssembly)
	{
		printf("Error: Cannot find assembly MonoGame.exe");
		return false;
	}
	
	m_GameMonoImage = mono_assembly_get_image(m_GameMonoAssembly);
	if (!m_GameMonoImage)
	{
		printf("Error: Cannot create image for assembly GameMono.exe");
		return false;
	}
	char* args[1];
	args[0] = "game-mono.exe";
	mono_jit_exec(m_GameMonoDomain, m_GameMonoAssembly, 1, args); }


Francois Schelling
Senior Programmer
Square Enix Montréal
fschelling at square-enix-montreal.com







-----Original Message-----
From: mono-devel-list-bounces at lists.ximian.com
[mailto:mono-devel-list-bounces at lists.ximian.com] On Behalf Of
Francois Schelling
Sent: 16 November 2012 11:47
To: Andres G. Aragoneses; mono-devel-list at lists.ximian.com
Subject: Re: [Mono-dev] Debugging with MonoDevelop

I've got two questions:

1- I'm now able to generate the mdb file by compiling with
MonoDevelop.  But I had to install Mono 3.0.1 for Windows in order to
add a new .NET runtimes in MonoDevelop.  But I'm currently building my
own Mono version since I need it to be in x64.  Is it the right way to
do it our mixing the use of these two mono versions is wrong?

2- I'm now able to attach the MonoDevelop to my mono domain but when a
breakpoint is triggered, my main app crashed on:
	- Unhandled exception at 0x774d8e3d in engine.exe: 0xC0000005: Access
violation writing location 0x00000000000c0a98
  and I got the following message in MonoDevelop
	- System.NullReferenceException has been thrown.

Francois Schelling
Senior Programmer
Square Enix Montréal
fschelling at square-enix-montreal.com

-----Original Message-----
From: mono-devel-list-bounces at lists.ximian.com
[mailto:mono-devel-list-bounces at lists.ximian.com] On Behalf Of Andres
G. Aragoneses
Sent: 16 November 2012 08:54
To: mono-devel-list at lists.ximian.com
Subject: Re: [Mono-dev] Debugging with MonoDevelop


IIRC, MS.NET compiler generates .pdb files, while Mono's generates
.mdb files. So using MonoDevelop + MS.NET won't help. Use MonoDevelop
in Linux, or install Mono for Windows (and configure MonoDevelop to
build with Mono, not .NET).

On 16/11/12 13:25, Francois Schelling wrote:
> Thanks for the link.   What I'm missing is the .mdb file.  How do you generate that?  I'm currently building a C# solution I've created with VS Studio 2010 on Windows and I can compile it with both VS or MonoDevelop.
>
> Francois Schelling
> Senior Programmer
> Square Enix Montréal
> fschelling at square-enix-montreal.com
>
>
>
>
>
>
>
> -----Original Message-----
> From: mono-devel-list-bounces at lists.ximian.com
> [mailto:mono-devel-list-bounces at lists.ximian.com] On Behalf Of
> Guillaume George
> Sent: 16 November 2012 01:59
> To: mono-devel-list at lists.ximian.com
> Subject: Re: [Mono-dev] Debugging with MonoDevelop
>
> Hi,
>
> I have just worked on this topic this morning.
> You will find a nice article about this right there :
> http://www.jeffongames.com/2012/03/debugging-embedded-mono/
>
> Regards,
>
>
>
> --
> View this message in context:
> http://mono.1490590.n4.nabble.com/Debugging-with-MonoDevelop-tp4657403
> p4657406.html Sent from the Mono - Dev mailing list archive at
> Nabble.com.
> _______________________________________________
> Mono-devel-list mailing list
> Mono-devel-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list
>
> ______________________________________________________________________
> This email has been scanned by the MessageLabs
> ______________________________________________________________________
>
> ______________________________________________________________________
> This email has been scanned by the MessageLabs
> ______________________________________________________________________
>


_______________________________________________
Mono-devel-list mailing list
Mono-devel-list at lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list

______________________________________________________________________
This email has been scanned by the MessageLabs
______________________________________________________________________

______________________________________________________________________
This email has been scanned by the MessageLabs
______________________________________________________________________
_______________________________________________
Mono-devel-list mailing list
Mono-devel-list at lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list

______________________________________________________________________
This email has been scanned by the MessageLabs
______________________________________________________________________

______________________________________________________________________
This email has been scanned by the MessageLabs
______________________________________________________________________
_______________________________________________
Mono-devel-list mailing list
Mono-devel-list at lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


More information about the Mono-devel-list mailing list