With my IronRubyMVC implementation I’m far enough to figure out that I
need
to be able to put breakpoints in my ruby code
Now the question is how, because I think I tried all of the ways that
are
described in the wiki but had no success. I have a debug version of
IronRuby
and I’m using it in a C# ASP.NET MVC project with the
System.Web.Mvc.IronRuby dll as a reference. The web application hosts
the
scriptruntime etc. Now what do I need to do to make visual studio break
on
the breakpoint I define?
In merging the latest git pushes into the linux branch I’ve seen a pdb
generator does that mean I can actually get to more meaningful stack
traces
etc. again the question how springs to mind?
Is DebugMode property of the ScriptRuntimeSetup of the ScriptRuntime you
run the script in set to true?
Tomas
From: [email protected]
[mailto:[email protected]] On Behalf Of Ivan Porto
Carrero
Sent: Monday, March 23, 2009 12:32 PM
To: ironruby-core
Subject: [Ironruby-core] Debugging ruby code in a host
Hi
With my IronRubyMVC implementation I’m far enough to figure out that I
need to be able to put breakpoints in my ruby code
Now the question is how, because I think I tried all of the ways that
are described in the wiki but had no success. I have a debug version of
IronRuby and I’m using it in a C# ASP.NEThttp://ASP.NET MVC project
with the System.Web.Mvc.IronRuby dll as a reference. The web application
hosts the scriptruntime etc. Now what do I need to do to make visual
studio break on the breakpoint I define?
In merging the latest git pushes into the linux branch I’ve seen a pdb
generator does that mean I can actually get to more meaningful stack
traces etc. again the question how springs to mind?
With my IronRubyMVC implementation I’m far enough to figure out that I
need to be able to put breakpoints in my ruby code
Now the question is how, because I think I tried all of the ways that
are described in the wiki but had no success. I have a debug version of
IronRuby and I’m using it in a C# ASP.NEThttp://ASP.NET MVC project
with the System.Web.Mvc.IronRuby dll as a reference. The web application
hosts the scriptruntime etc. Now what do I need to do to make visual
studio break on the breakpoint I define?
In merging the latest git pushes into the linux branch I’ve seen a pdb
generator does that mean I can actually get to more meaningful stack
traces etc. again the question how springs to mind?
Yes… I’ll try again… maybe I missed something.
I should really say that the file that has the ruby code is an assembly
resource that gets read through an AssemblyReaderStreamContentProvider.
Should I be providing that content differently?
That will tell the DLR to generate debuggable code.
From: [email protected]
[[email protected]] on behalf of Ivan Porto C.
[[email protected]]
Sent: Monday, March 23, 2009 12:32 PM
To: ironruby-core
Subject: [Ironruby-core] Debugging ruby code in a host
Hi
With my IronRubyMVC implementation I’m far enough to figure out that I
need to be able to put breakpoints in my ruby code
Now the question is how, because I think I tried all of the ways that
are described in the wiki but had no success. I have a debug version of
IronRuby and I’m using it in a C# ASP.NEThttp://ASP.NET MVC project
with the System.Web.Mvc.IronRuby dll as a reference. The web application
hosts the scriptruntime etc. Now what do I need to do to make visual
studio break on the breakpoint I define?
In merging the latest git pushes into the linux branch I’ve seen a pdb
generator does that mean I can actually get to more meaningful stack
traces etc. again the question how springs to mind?
Yes… I’ll try again… maybe I missed something.
I should really say that the file that has the ruby code is an assembly
resource that gets read through an AssemblyReaderStreamContentProvider.
Should I be providing that content differently?
With my IronRubyMVC implementation I’m far enough to figure out that I
need to be able to put breakpoints in my ruby code
Now the question is how, because I think I tried all of the ways that
are described in the wiki but had no success. I have a debug version of
IronRuby and I’m using it in a C# ASP.NEThttp://ASP.NET MVC project
with the System.Web.Mvc.IronRuby dll as a reference. The web application
hosts the scriptruntime etc. Now what do I need to do to make visual
studio break on the breakpoint I define?
In merging the latest git pushes into the linux branch I’ve seen a pdb
generator does that mean I can actually get to more meaningful stack
traces etc. again the question how springs to mind?
Ok it works when I use
Engine.RequireRubyFile(“C:\path\to\file\controller.rb”)
but not when i use a custom streamcontent provider that knows how to
deal
with virtual paths.
like
Anyway I’ll take the stream content providers out and just put something
in
that handles mappath to allow debugging.
But now the question becomes When would I want to use a
StreamContentProvider and when should I have to create a PAL ? Would
using
a PAL be a better idea to when hosting it in a webserver?
PAL provides more general virtualization of file system (though still
not complete). By using custom content providers for a ScriptSource it
only affects one particular ScriptSource while PAL is used by other API
as well. For example, File#open goes thru PAL:
context.DomainManager.Platform.OpenInputFileStream(path, fileMode,
access, share);
Also, content of required files is read via PAL: see
Microsoft.Scripting\SourceFileContentProvider.cs.
So, PAL allows the host to make basic file IO operations work – you can,
for example, build virtual file system based on Isolated Storage or some
database table. The virtualization is not complete, we are looking for
reasonable set of API that it make sense to virtualize. If you find
something you would need let us know.
Sadly, Visual Studio debugger requires source files to be physical files
on disk. If you need to debug some code stored in a database you need to
save it to a file. You might want to do so only when DebugMode is on. If
it is not, PDBs are not generated anyways so the code is not debuggable
by VS.
Ok it works when I use
Engine.RequireRubyFile(“C:\path\to\file\controller.rb”)
but not when i use a custom streamcontent provider that knows how to
deal with virtual paths.
like
Anyway I’ll take the stream content providers out and just put something
in that handles mappath to allow debugging.
But now the question becomes When would I want to use a
StreamContentProvider and when should I have to create a PAL ? Would
using a PAL be a better idea to when hosting it in a webserver?
2009/3/23 Tomas M.
<[email protected]mailto:[email protected]>
The file you are setting breakpoint to needs to exists on the disk for
Visual Studio debugger to work.
Yes… I’ll try again… maybe I missed something.
I should really say that the file that has the ruby code is an assembly
resource that gets read through an AssemblyReaderStreamContentProvider.
Should I be providing that content differently?
With my IronRubyMVC implementation I’m far enough to figure out that I
need to be able to put breakpoints in my ruby code
Now the question is how, because I think I tried all of the ways that
are described in the wiki but had no success. I have a debug version of
IronRuby and I’m using it in a C# ASP.NEThttp://ASP.NET MVC project
with the System.Web.Mvc.IronRuby dll as a reference. The web application
hosts the scriptruntime etc. Now what do I need to do to make visual
studio break on the breakpoint I define?
In merging the latest git pushes into the linux branch I’ve seen a pdb
generator does that mean I can actually get to more meaningful stack
traces etc. again the question how springs to mind?