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.

Tomas

From: ironruby-core-boun...@rubyforge.org 
[mailto:ironruby-core-boun...@rubyforge.org] On Behalf Of Ivan Porto Carrero
Sent: Monday, March 23, 2009 3:18 PM
To: ironruby-core@rubyforge.org
Subject: Re: [Ironruby-core] Debugging ruby code in a host

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 
http://github.com/casualjim/ironrubymvc/blob/57cfa96ae7ce03c55e25eeb74a20d1500760b414/IronRubyMvc/Core/VirtualPathStreamContentProvider.cs

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 Matousek 
<tomas.matou...@microsoft.com<mailto:tomas.matou...@microsoft.com>>

The file you are setting breakpoint to needs to exists on the disk for Visual 
Studio debugger to work.



Tomas



From: 
ironruby-core-boun...@rubyforge.org<mailto:ironruby-core-boun...@rubyforge.org> 
[mailto:ironruby-core-boun...@rubyforge.org<mailto:ironruby-core-boun...@rubyforge.org>]
 On Behalf Of Ivan Porto Carrero
Sent: Monday, March 23, 2009 2:14 PM

To: ironruby-core@rubyforge.org<mailto:ironruby-core@rubyforge.org>
Subject: Re: [Ironruby-core] Debugging ruby code in a host



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?

http://github.com/casualjim/ironrubymvc/blob/57cfa96ae7ce03c55e25eeb74a20d1500760b414/IronRubyMvc/Core/RubyEngine.cs#L352

I use http://gist.github.com/74979 to set a breakpoint.



2009/3/23 Tomas Matousek 
<tomas.matou...@microsoft.com<mailto:tomas.matou...@microsoft.com>>

Is DebugMode property of the ScriptRuntimeSetup of the ScriptRuntime you run 
the script in set to true?



Tomas



From: 
ironruby-core-boun...@rubyforge.org<mailto:ironruby-core-boun...@rubyforge.org> 
[mailto:ironruby-core-boun...@rubyforge.org<mailto:ironruby-core-boun...@rubyforge.org>]
 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.NET<http://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? :)

Thanks
Ivan

_______________________________________________
Ironruby-core mailing list
Ironruby-core@rubyforge.org<mailto:Ironruby-core@rubyforge.org>
http://rubyforge.org/mailman/listinfo/ironruby-core



_______________________________________________
Ironruby-core mailing list
Ironruby-core@rubyforge.org<mailto:Ironruby-core@rubyforge.org>
http://rubyforge.org/mailman/listinfo/ironruby-core

_______________________________________________
Ironruby-core mailing list
Ironruby-core@rubyforge.org
http://rubyforge.org/mailman/listinfo/ironruby-core

Reply via email to