[BangPypers] BangPypers Digest, Vol 29, Issue 31

Jeffrey Jose jeffjosejeff at gmail.com
Sun Jan 31 13:44:36 CET 2010


Hi Anand,

I'm sorry I dont have any experience with sys.settrace(). I'm a big fan of
pdb.set_trace() and it serves me well. I'll let someone else answer your
specific question.

Jeff

On Sat, Jan 30, 2010 at 11:53 AM, <learningpython at aol.com> wrote:

>  Hi Jeff,
>
> I am successful in debugging pdb.set_trace()
> but sys.settrace(), not sure how to add, i am trying in various function
> with argument as the function name
> as per ref:
> http://www.dalkescientific.com/writings/diary/archive/2005/04/20/tracing_python_code.html
>
> I work in multifile environment( say thousands ) and i am not sure where
> exactly is the right place to call.
> ex: I have a def config(value) i used this command sys.settrace(config)
> but my eclipse cribs ..
>
> Any suggestions please.
>
> Regards
> -- Anand
>
>
>
>  -----Original Message-----
> From: learningpython at aol.com
> To: bangpypers at python.org
> Cc: jeffjosejeff at gmail.com
> Sent: Sat, Jan 30, 2010 6:18 pm
> Subject: Re: BangPypers Digest, Vol 29, Issue 31
>
>   Hi Jeff,
>
> Apologies for the delay, Unfortunately this email has gone to my spam
> folder and could only see fortunately.
> I am really thankful for the response.
>
> What is the website i could log in to see the responses please i have
> forgotten over the period of time.
>
> python.org from there i am trying to go to bangalore but cannot go past
> the subscription page ..http://mail.python.org/mailman/listinfo/bangpypers
>
>
>   Should i use the function
>
> import pdb; pdb.set_trace() in every function or should i create a def or class and call the instance separately. Sorry i am naive.
>
>
>
>
> Thanks in advance
>
>
>
>
> Cheers
>
>
> -- Anand
>
>
>  -----Original Message-----
> From: bangpypers-request at python.org
> To: bangpypers at python.org
> Sent: Mon, Jan 25, 2010 12:00 am
> Subject: BangPypers Digest, Vol 29, Issue 31
>
>  Send BangPypers mailing list submissions to
>
>
>     bangpypers at python.org
>
>
>
>
> To subscribe or unsubscribe via the World Wide Web, visit
>
>
>     http://mail.python.org/mailman/listinfo/bangpypers
>
>
> or, via email, send a message with subject or body 'help' to
>
>
>     bangpypers-request at python.org
>
>
>
>
> You can reach the person managing the list at
>
>
>     bangpypers-owner at python.org
>
>
>
>
> When replying, please edit your Subject line so it is more specific
>
>
> than "Re: Contents of BangPypers digest..."
>
>
>
>
>
>
> Today's Topics:
>
>
>
>
>    1. Re: January user group meeting (Arvind Jamuna Dixit)
>
>
>    2. Re: January user group meeting (Noufal Ibrahim)
>
>
>    3. Python Maintainence code: Debugging,  Tracing and Profiling
>
>
>       help (learningpython at aol.com)
>
>
>    4. Re: Python Maintainence code: Debugging,  Tracing and
>
>
>       Profiling help (Jeffrey Jose)
>
>
>
>
>
>
> ----------------------------------------------------------------------
>
>
>
>
> Message: 1
>
>
> Date: Sat, 23 Jan 2010 20:12:13 +0530
>
>
> From: Arvind Jamuna Dixit <ardsrk at gmail.com>
>
>
> To: Bangalore Python Users Group - India <bangpypers at python.org>
>
>
> Subject: Re: [BangPypers] January user group meeting
>
>
> Message-ID:
>
>
>     <3d62196a1001230642m4c87571akd1bc91436c167d00 at mail.gmail.com>
>
>
> Content-Type: text/plain; charset=ISO-8859-1
>
>
>
>
> How did the meet go. Couldn't come as I got stuck in MG Road traffic.
>
>
>
>
> On Fri, Jan 22, 2010 at 5:19 PM, Noufal Ibrahim <noufal at gmail.com> wrote:
>
>
>
>
> > Okay. This is set in stone. Hope to see you all there!
>
>
> >
>
>
> > On Wed, Jan 20, 2010 at 11:26 AM, Noufal Ibrahim <noufal at gmail.com> wrote:
>
>
> > > So are we decided?
>
>
> > >
>
>
> > > Date : Jan 23
>
>
> > > Time : 1530
>
>
> > > Venue : ThoughtWorks, Diamond District
>
>
> > > Topics : Baiju - Buildbot
>
>
> > >              Noufal - py.test.
>
>
> > >
>
>
> > > Fine? Vishal had a -1 for 23. If there many others, we can change the
>
>
> > date
>
>
> > > to 24th.
>
>
> > >
>
>
> > >
>
>
> > >
>
>
> > > --
>
>
> > > ~noufal
>
>
> > > http://nibrahim.net.in
>
>
> > >
>
>
> >
>
>
> >
>
>
> >
>
>
> > --
>
>
> > ~noufal
>
>
> > http://nibrahim.net.in
>
>
> > _______________________________________________
>
>
> > BangPypers mailing list
>
>
> > BangPypers at python.org
>
>
> > http://mail.python.org/mailman/listinfo/bangpypers
>
>
> >
>
>
>
>
>
>
>
>
> --
>
>
> Arvind
>
>
>
>
>
>
> ------------------------------
>
>
>
>
> Message: 2
>
>
> Date: Sat, 23 Jan 2010 21:48:28 +0530
>
>
> From: Noufal Ibrahim <noufal at gmail.com>
>
>
> To: Bangalore Python Users Group - India <bangpypers at python.org>
>
>
> Subject: Re: [BangPypers] January user group meeting
>
>
> Message-ID:
>
>
>     <9963e56e1001230818k371ce2a3lfda7be0addbeec47 at mail.gmail.com>
>
>
> Content-Type: text/plain; charset=ISO-8859-1
>
>
>
>
> On Sat, Jan 23, 2010 at 8:12 PM, Arvind Jamuna Dixit <ardsrk at gmail.com> wrote:
>
>
> > How did the meet go. Couldn't come as I got stuck in MG Road traffic.[..]
>
>
>
>
> Pretty well. Baiju's presentation on using using buildout to easily
>
>
> configure buildbot was nice. I also learnt that if you 'activate' a
>
>
> virtualenv, you get a 'deactivate' command to go back to your system
>
>
> wide install. Neat. :)
>
>
>
>
> --
>
>
> ~noufal
>
> http://nibrahim.net.in
>
>
>
>
>
>
> ------------------------------
>
>
>
>
> Message: 3
>
>
> Date: Sat, 23 Jan 2010 18:04:20 -0500
>
>
> From: learningpython at aol.com
>
>
> To: bangpypers at python.org
>
>
> Subject: [BangPypers] Python Maintainence code: Debugging,  Tracing and
>
>
>     Profiling help
>
>
> Message-ID: <8CC6A97879CFBD3-124C-2081B at webmail-d010.sysops.aol.com>
>
>
> Content-Type: text/plain; charset="us-ascii"
>
>
>
>
>
>
>
>
>
>
>
>  Hi Experts,
>
>
>
>
> I am back to python after a while of just formal introduction. Thistime i have
>
>
> to manage a huge files with numerous functions, i amdebugging a issue right now
>
>
> and would require to understand the flow ofthe code.
>
>
>
>
> Please can you help me on what can i do to have better understanding ofthe
>
>
> profiling of classes, defs invoked each time and how to read them.
>
>
>
>
> The ones i plan to do is to insert lot of prints in every class, defs ex: print
>
>
> self.__class__.__name__ in every def, to see the flow which is tedious and time
>
>
> consuming as the size of files and project is huge.
>
>
>
>
> Any suggestions please and advice please.
>
>
>
>
> PS: how to post to comp.lang.python newsgroup please??
>
>
>
>
>
>
>
> Cheers
>
>
> Anand
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> ------------------------------
>
>
>
>
> Message: 4
>
>
> Date: Sun, 24 Jan 2010 13:35:13 +0530
>
>
> From: Jeffrey Jose <jeffjosejeff at gmail.com>
>
>
> To: Bangalore Python Users Group - India <bangpypers at python.org>
>
>
> Subject: Re: [BangPypers] Python Maintainence code: Debugging,  Tracing
>
>
>     and     Profiling help
>
>
> Message-ID:
>
>
>     <cae1cffe1001240005i49a7a5bel51cae75b73f3a54d at mail.gmail.com>
>
>
> Content-Type: text/plain; charset=ISO-8859-1
>
>
>
>
> Hi Anand,
>
>
>
>
> I can talk a lil bit about your 2 queries. Debugging and seeing the flow of
>
>
> the program.
>
>
>
>
> *A. Debugging*
>
>
>
>
> Surprisingly both of them come under the same banner. One of the reasons you
>
>
> debug is to see how the code progresses. For debugging I highly recommend
>
>
> Python Debugger. It would look a lot odd the first time you invoke it, but
>
>
> trust me with a few neat tricks you'd be using it all the time.
>
>
>
>
> There's just one thing you need to do to summon the Python Debugger. Insert
>
>
> this one line in your code.
>
>
>
>
> import pdb; pdb.set_trace()
>
>
>
>
> The next time you run the code, it would drop into the debugger (you just
>
>
> set a trace point). When you have the debugger prompt, you have access to
>
>
> all the variables, stacktrace etc. You need to know a few commands to get
>
>
> around.
>
>
>
>
> c -> Continue (till the end of the program or till the next breakpoint)
>
>
> n -> Execute next step
>
>
> l -> See where you are
>
>
> s -> Step into a function.
>
>
>
>
> I accept this is not a natural way of doing things.. That's where we come to
>
>
> the 'with-a-few-tricks-you'd-be-doing-this-all-the-time'
>
>
> And the trick is this. Invoke Ipython from pdb. The good thing is you get
>
>
> tab-competition (which pdb lacks). You can try out all kinds of things.
>
>
> Introspect, import other modules, try and see the next line and see what its
>
>
> output 'would be'. Its sweet. I highly recommend you take a look at this.
>
>
>
>
> Starting ipython from
>
>
> pdb<http://libreamoi.com/index.php/starting-ipython-from-pdb/>- <http://libreamoi.com/index.php/starting-ipython-from-pdb/%3E->
>
> http://libreamoi.com/index.php/starting-ipython-from-pdb/
>
>
> Hit Ctrl-D to exit from Ipython to go to pdb again and hit 'c' to continue
>
>
> the program. While you're at pdb, you can still go into ipython again.
>
>
>
>
> Remember Ipython is a regular prompt, so you cant do debugger-y things like
>
>
> Step Into, Continue etc. For that you'll have to come 'out' of Ipython to
>
>
> pdb. You can go back to Ipython anytime.
>
>
>
>
> *B. Seeing Your Program Flow*
>
>
>
>
> If I understand you correctly, I've seen this problem hit me lot of times.
>
>
> If you're working on others code, and all of a sudden you wanna
>
>
> understand/fix them - you'd be sitting there thinking - Damn, *how* does
>
>
> this code work. I can see a lot of functions and I get what it does. But
>
>
> when does this one get called. I see this main call from main() .. but is
>
>
> there another place where it gets called ?. If so what are the arguments.
>
>
> What does it return on this one specific call etc.
>
>
>
>
> While its technically possible to do next-next-next using Python Debugger to
>
>
> step through the program and sometimes that's all can you do.
>
>
> But there's a much better way than inserting
>
>
>
>
> print "Called me!"
>
>
> print "Done with me!"
>
>
>
>
> etc.
>
>
>
>
> The idea here is to use sys.settrace() to insert to a utility function which
>
>
> gets called before any important events. Events include,
>
>
> # execution of any line (that means all the time)
>
>
> # calling a function
>
>
> # return from a function
>
>
> # encountering an exception
>
>
>
>
> This means your utility function can go .. hmm .. is this a function call ?
>
>
> .. if so gimme the name of the caller and name of the function and let me
>
>
> print it.
>
>
>
>
> When you run the code you'd get a huge output with prints which shows the
>
>
> flow of the program.
>
>
> Again, refer this page for a better understanding.
>
>
> Tracing Your Program As It Runs -
>
> http://blog.doughellmann.com/2009/11/pymotw-sys-part-5-tracing-your-program.html
>
>
> One caution : Do Not Abuse sys.settrace() Use sys.settrace() for debugging
>
>
> only. You might be tempted to do crazy things like .. during every function
>
>
> call .. I'll authorize the user or something. That better be done using
>
>
> different methods. Just saying :)
>
>
>
>
>
>
> Unfortunately, the place where I work doesnt care much about performance (or
>
>
> unnecessary optimization) for the python code. So I cant help you there.
>
>
> I'll let others chip in for those stuff.
>
>
>
>
> HTH
>
>
> Jeff
>
>
>
>
>
>
> On Sun, Jan 24, 2010 at 4:34 AM, <learningpython at aol.com> wrote:
>
>
>
>
> >
>
>
> >
>
>
> >
>
>
> >  Hi Experts,
>
>
> >
>
>
> > I am back to python after a while of just formal introduction. Thistime i
>
>
> > have to manage a huge files with numerous functions, i am debugging a issue
>
>
> > right now and would require to understand the flow ofthe code.
>
>
> >
>
>
> > Please can you help me on what can i do to have better understanding ofthe
>
>
> > profiling of classes, defs invoked each time and how to read them.
>
>
> >
>
>
> > The ones i plan to do is to insert lot of prints in every class, defs ex:
>
>
> > print self.__class__.__name__ in every def, to see the flow which is tedious
>
>
> > and time consuming as the size of files and project is huge.
>
>
> >
>
>
> > Any suggestions please and advice please.
>
>
> >
>
>
> > PS: how to post to comp.lang.python newsgroup please??
>
>
> >
>
>
> >
>
>
> > Cheers
>
>
> > Anand
>
>
> >
>
>
> >
>
>
> >
>
>
> >
>
>
> >
>
>
> > _______________________________________________
>
>
> > BangPypers mailing list
>
>
> > BangPypers at python.org
>
>
> > http://mail.python.org/mailman/listinfo/bangpypers
>
>
> >
>
>
>
>
>
>
> ------------------------------
>
>
>
>
> _______________________________________________
>
>
> BangPypers mailing list
>
> BangPypers at python.org
>
> http://mail.python.org/mailman/listinfo/bangpypers
>
>
>
>
>
>
> End of BangPypers Digest, Vol 29, Issue 31
>
>
> ******************************************
>
>


More information about the BangPypers mailing list