intfiction.org

The Interactive Fiction Community Forum
It is currently Wed Jul 23, 2014 6:46 am

All times are UTC - 6 hours [ DST ]




Post new topic Reply to topic  [ 23 posts ]  Go to page 1, 2, 3  Next
Author Message
 Post subject: Extensions for Debugging
PostPosted: Wed Feb 08, 2012 10:58 am 
Offline

Joined: Wed Oct 27, 2010 6:15 pm
Posts: 344
I've been working on some debugging extensions, which are now at the point where they could use a round of in-the-field testing. If you'd like to help, you can download them from SourceForge.

Floyd Mode, Verbose Runtime Problem Messages, and Interactive Debugger are the three that most authors would be interested in; the others are just support code. Here's a screenshot of the last:

Image

Thanks!

(Edited to add screenshot.)


Top
 Profile Send private message  
 
PostPosted: Sun Feb 12, 2012 3:17 pm 
Offline

Joined: Mon Jun 09, 2008 8:58 pm
Posts: 724
Location: Seattle
Thank goodness Aaron Reed mentioned this on planet i-f. I'm not sure how I missed this thread the first time around.

Thanks Brady, this looks like it's going to be a how-did-I-ever-live-without-it kind of tool. I'll let you know if I find anything dysfunctional.

_________________
Blog at Gamasutra :: Programmer's Guide to Inform 7 :: Seattle I-F


Top
 Profile Send private message  
 
PostPosted: Sun Feb 12, 2012 11:48 pm 
Offline

Joined: Wed Oct 27, 2010 6:15 pm
Posts: 344
Wow, thanks for the post, Aaron. I think the download count just quadrupled.

And thanks, Ron. It'd be great to get suggestions or bug reports. I probably won't resume development for a week or so though; right now I'm enjoying my first read of the parser in I7.


Top
 Profile Send private message  
 
PostPosted: Mon Mar 05, 2012 9:32 pm 
Offline

Joined: Mon Jun 09, 2008 8:58 pm
Posts: 724
Location: Seattle
For this:
Code:
Include call stack tracking by Brady Garvin.
Include verbose runtime problem messages by Brady Garvin.
Include debug file parsing by Brady Garvin.
I get this:
Quote:
In Book "Binary Input File Streams", Chapter "Public Binary Input File Stream Accessors and Mutators" in the extension Binary Input Files by Brady Garvin:

Problem. You defined an adjective by 'has a non-null stream id' intending that it would apply to 'a binary input file stream': but this isn't a thing, a kind of thing or a kind of value, and indeed doesn't have any meaning I can make sense of.

See the manual: 6.4 > Defining new adjectives


Worked fine without "debug file parsing". And, that one has no documentation.

Oh, I'm also using Jesse's Dynamic Objects extension, just to make things explode bigger, if that matters. And Editable Stored Actions, though I doubt it interferes much.

Right now I'm lost as to which extensions are the "top level" ones I need worry about, and which ones are just helpers for the others.

Also, can the "(call frame #3)" just be a concise "3:" against the left margin? And maybe squeeze " (at address 173924)" down to "@173924" or even omit it entirely unless I'm actually looking at assembly. Until then, the memory location isn't useful to me. (Or is it? I still have an un-named rule or phrase right where my program goes off the rails.)

I did read (some of the) documentation... last week-ish... but not all of it.... yet...

Further developments as things fail harder.

_________________
Blog at Gamasutra :: Programmer's Guide to Inform 7 :: Seattle I-F


Top
 Profile Send private message  
 
PostPosted: Tue Mar 06, 2012 1:41 pm 
Offline

Joined: Wed Oct 27, 2010 6:15 pm
Posts: 344
Ron Newcomb wrote:
For this:
Code:
Include call stack tracking by Brady Garvin.
Include verbose runtime problem messages by Brady Garvin.
Include debug file parsing by Brady Garvin.
I get this:
Quote:
In Book "Binary Input File Streams", Chapter "Public Binary Input File Stream Accessors and Mutators" in the extension Binary Input Files by Brady Garvin:

Problem. You defined an adjective by 'has a non-null stream id' intending that it would apply to 'a binary input file stream': but this isn't a thing, a kind of thing or a kind of value, and indeed doesn't have any meaning I can make sense of.

See the manual: 6.4 > Defining new adjectives


Worked fine without "debug file parsing". And, that one has no documentation.

Oh, I'm also using Jesse's Dynamic Objects extension, just to make things explode bigger, if that matters. And Editable Stored Actions, though I doubt it interferes much.

Okay, I'll have a chance to look at it this evening. I might need to draft some inclusion instructions like Erik did for Glimmr. Regarding the missing documentation, I am still working on it. My free time sank to about zero mid-February, which is why I pushed the release out when I did, but documentation was one of the casualties.

Ron Newcomb wrote:
Right now I'm lost as to which extensions are the "top level" ones I need worry about, and which ones are just helpers for the others.

Yes, I had this comment before and failed to address it properly. Let me write something up, and I'll run it by you to see if it helps.

Ron Newcomb wrote:
Also, can the "(call frame #3)" just be a concise "3:" against the left margin? And maybe squeeze " (at address 173924)" down to "@173924" or even omit it entirely unless I'm actually looking at assembly. Until then, the memory location isn't useful to me. (Or is it? I still have an un-named rule or phrase right where my program goes off the rails.)

I did read (some of the) documentation... last week-ish... but not all of it.... yet...

This is very doable. But I want to err on the side of verbosity in the default settings, so I'll probably tie the formatting to a preference or two. I will also document how to change preferences from the source text, so you don't have to switch settings every time the story is run.

(The addresses are printed by default mostly to distinguish like-named rules. Possibly that's less of an issue that I thought? If so, I'll drop them in the defaults.)

Ron Newcomb wrote:
Further developments as things fail harder.

Okay. Thanks, Ron! :)


Top
 Profile Send private message  
 
PostPosted: Tue Mar 06, 2012 1:47 pm 
Offline

Joined: Wed Oct 27, 2010 6:15 pm
Posts: 344
Oh, and while I'm thinking of it, if you're including Debug File Parsing and still seeing unnamed rules and phrases, you've probably found a bug. Let me know if there's something I can take a look at there.


Top
 Profile Send private message  
 
PostPosted: Tue Mar 06, 2012 8:06 pm 
Offline

Joined: Wed Oct 27, 2010 6:15 pm
Posts: 344
Oh, I see. Call Stack Tracking was giving call frame numbers even outside the debugger, where they aren't at all useful. That's now fixed. Likewise for the unnamed rule/phrase problem. You can download the patched Call Stack Tracking, Verbose Runtime Problem Messages, and Interactive Debugger here.

As for the compilation failure, I tried this:
Code:
Include Call Stack Tracking by Brady Garvin.
Include Verbose Runtime Problem Messages by Brady Garvin.
Include Debug File Parsing by Brady Garvin.
Include Version 6 of Dynamic Objects by Jesse McGrew.
Include Version 9 of Editable Stored Actions by Ron Newcomb.

The name of the symbolic link to the debug information file is "...".
The name of the symbolic link to the intermediate I6 file is "...".
The name of the symbolic link to the debugging log file is "...".

There is a room.
but it compiled quite merrily. Could you check whether there's some other factor involved?


Top
 Profile Send private message  
 
PostPosted: Tue Mar 06, 2012 11:17 pm 
Offline

Joined: Mon Jun 09, 2008 8:58 pm
Posts: 724
Location: Seattle
Re: compilation failure, I had stuck the includes mid-file, rather than at the top where they usually go. Placed at the top they worked fine.

_________________
Blog at Gamasutra :: Programmer's Guide to Inform 7 :: Seattle I-F


Top
 Profile Send private message  
 
PostPosted: Wed Mar 07, 2012 2:04 am 
Offline

Joined: Sun Mar 01, 2009 8:02 pm
Posts: 1142
I downloaded these extensions tonight and had a look at the installation instructions. I'm in a whiny, kvetchy mood, so please feel free to conclude that I'm expecting too much. But the instructions for setting up the debugger in Windows 7 -- opening a Command Prompt as administrator, making symbolic links, and all --are pretty esoteric.

Might there be a way to write an installer that would handle these steps in an automated manner? The reason I'm asking is not just because I'm a lazy snot (although I am) but because I can't quite see the average newcomer to Inform 7 wanting to jump through such finicky little hoops. The process of installing the debugger seems (to my way of thinking) to run directly counter to the whole Inform 7 ethos of "make it look like it's not really computer programming at all."

Plus, it appears the whole process of creating symbolic links will have to be redone for each game. Am I right in assuming that?

I'm only fussing about this because I really like the idea of giving Inform 7 a set of debugging tools. This package looks great! But.......


Top
 Profile Send private message  
 
PostPosted: Wed Mar 07, 2012 2:30 am 
Online
User avatar

Joined: Wed Oct 14, 2009 4:02 am
Posts: 1516
It would be nice if the IDEs had a sort of plugin system, so that extensions like these could install post-build scripts.


Top
 Profile Send private message  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 23 posts ]  Go to page 1, 2, 3  Next

All times are UTC - 6 hours [ DST ]


Who is online

Users browsing this forum: matt w and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group