[{"data":1,"prerenderedAt":109},["ShallowReactive",2],{"\u002Fcgi-inspect":3},{"id":4,"title":5,"body":6,"createdAt":96,"description":12,"draft":97,"extension":98,"image":99,"mastodonThread":99,"meta":100,"navigation":101,"path":102,"seo":103,"stem":104,"tags":105,"updatedAt":107,"__hash__":108},"content\u002FCGI Inspect.md","CGI_Inspect",{"type":7,"value":8,"toc":90},"minimark",[9,13,16,21,24,29,38,42,45,49,56,59],[10,11,12],"p",{},"CGI::Inspect info goes here.",[10,14,15],{},"This, along with Continuity::Monitor::CGI, allows you to inspect a running web application.",[17,18,20],"h2",{"id":19},"code","Code",[10,22,23],{},"The easiest way is to get it from CPAN. But if you want something a little more raw:",[25,26,28],"h1",{"id":27},"real-darcs-repo","Real Darcs Repo",[10,30,31,32],{},"darcs get ",[33,34,35],"a",{"href":35,"rel":36},"http:\u002F\u002Fthelackthereof.org\u002Fprojects\u002Fperl\u002FCGI-Inspect",[37],"nofollow",[25,39,41],{"id":40},"github-mirror","Github mirror",[10,43,44],{},"git clone git:\u002F\u002Fgithub.com\u002Fawwaiid\u002Fcgi-inspect.git",[17,46,48],{"id":47},"yapcna-2009-presentation","YAPC::NA 2009 Presentation",[10,50,51,52],{},"You can get the slides at ",[33,53,54],{"href":54,"rel":55},"http:\u002F\u002Fthelackthereof.org\u002Fprojects\u002Fperl\u002Fyapcna-2009\u002Fcgi-inspect\u002F",[37],[10,57,58],{},"Abstract:",[60,61,62,63],"blockquote",{},"\nOne of the tried and true ways of debugging is to sprinkle 'print \"Here! $val\\n\"' around and see what happens or if the program even reaches that point. Simple and effective! Carp::REPL lets you take this a step further by starting an interactive Read-Eval-Print Loop (REPL) at an arbitrary point in your program.\n",[60,64,65,66],{},"\nI've taken this technique and mixed in a splash of Continuity to build an interactive web-based REPL and inspector for your application. The REPL lets you execute arbitrary code, the inspector gives you a GUI for traversing your callstack and manipulating your variables. It works on regular applications and CGI scripts too. You just add a single \"inspect()\" where you like and you'll be whackin' those bugs DOWN!\n",[60,67,68,69,73,81],{},"\nIn this talk I'll show you how to use the tool and how it's built... and how you can add to it with plugins.\n",[17,70,72],{"id":71},"ppw-2008-presentation","PPW 2008 Presentation",[10,74,75,76,80],{},"I presented the earlier incarnation of this module, Continuity::Monitor::CGI, at PPW 2008 to about 30 people. If you missed it you can get the ",[33,77,79],{"href":78},"\u002Fppw-2008-continuity-monitor-slides","PPW 2008 Continuity-Monitor Slides",". Here is the abstract:",[60,82,83,84],{},"\nOne of the tried and true ways of debugging is to sprinkle 'print \"Here! $val\\n\"' around and see what happens or if the program even reaches that point. Simple and effective! Carp::REPL lets you take this a step further by starting an interactive read-eval-print loop (REPL) at an arbitrary point in your program.\n",[60,85,86,87],{},"\nI've taken this technique and mixed in a splash of Continuity to build an interactive web-based REPL and inspector for your application. It works on CGI scripts too (barring some fixable browser timeouts :) ). If you're nice to it, it might even let you edit your source file, reload it, and continue execution. You just add a single \"inspect()\" where you like and you'll be whackin' those bugs DOWN!\n",[60,88,89],{},"\nIn this talk I'll show you how to use the tool and how it's built... and how you can add to it. And by then it'll be on CPAN :) ",{"title":91,"searchDepth":92,"depth":92,"links":93},"",2,[94,95],{"id":19,"depth":92,"text":20},{"id":47,"depth":92,"text":48},"2009-05-30T01:24-04:00",false,"md",null,{},true,"\u002Fcgi-inspect",{"title":5,"description":12},"CGI Inspect",[106],"project","2011-01-19T22:14-05:00","UH15OBirfFooD7VF-TnaDxxtfnfYSyr8AQ8SNnRyCEU",1778988310493]