-
<c       s     d  Z    d k Z  d k Z  d k Z  d d d g Z 	 d Z  d f  d     YZ d   Z d f  d     YZ d	   Z	 d
 e f d     YZ
 ,d   Z 1d   Z 5d   Z d S(   s   Debugger basicsNs   BdbQuits   Bdbs
   Breakpoints   bdb.BdbQuitc      s   t  Z d  Z   d   Z  d   Z # d   Z + d   Z 9 d   Z ? d   Z L d   Z	 R d   Z
 \ d	   Z g d
   Z x d   Z { d   Z  d   Z  d   Z  d   Z  d   Z  d   Z  d   Z  d   Z  d   Z  d   Z  d   Z  d e d  Z  d   Z  d   Z  d   Z 	d   Z d   Z d   Z  d   Z! #d    Z" )d!   Z# ;d" d#  Z$ We e d$  Z% je e d%  Z& }d&   Z' d'   Z( RS((   s   Generic Python debugger base class.

    This class takes care of details of the trace facility;
    a derived class should implement user interaction.
    The standard debugger class (pdb.Pdb) is an example.
    c    s     h  |  _  h  |  _ d  S(   N(   s   selfs   breakss   fncache(   s   self(    (    s   /usr/lib/python2.2/bdb.pys   __init__ s   c    s     | d | d d !d j o  | Sn  |  i i |  }  | o>  t i i |  }  t i i |  }   | |  i | <n ! | Sd  S(   Ns   <i   is   >(	   s   filenames   selfs   fncaches   gets   canonics   oss   paths   abspaths   normcase(   s   selfs   filenames   canonic(    (    s   /usr/lib/python2.2/bdb.pys   canonic s   c    sP   # $ d  k  } % | i   & t |  _ ' t |  _ ( t |  _ ) d |  _ d  S(   Ni    (   s	   linecaches
   checkcaches   Nones   selfs   botframes	   stopframes   returnframes   quitting(   s   selfs	   linecache(    (    s   /usr/lib/python2.2/bdb.pys   reset# s   c    s   + , |  i o - d  Sn . | d j o / |  i |  Sn 0 | d j o 1 |  i | |  Sn 2 | d j o 3 |  i | |  Sn 4 | d j o 5 |  i | |  Sn 6 d G| GH7 |  i	 Sd  S(   Ns   lines   calls   returns	   exceptions*   bdb.Bdb.dispatch: unknown debugging event:(
   s   selfs   quittings   events   dispatch_lines   frames   dispatch_calls   args   dispatch_returns   dispatch_exceptions   trace_dispatch(   s   selfs   frames   events   arg(    (    s   /usr/lib/python2.2/bdb.pys   trace_dispatch+ s   c    sb   9 : |  i |  p |  i |  o. ; |  i |  < |  i o < t  n n = |  i Sd  S(   N(   s   selfs	   stop_heres   frames
   break_heres	   user_lines   quittings   BdbQuits   trace_dispatch(   s   selfs   frame(    (    s   /usr/lib/python2.2/bdb.pys   dispatch_line9 s
   # c    s   ? A |  i t j o C | |  _ D |  i Sn E |  i |  p |  i |  o G d  Sn H |  i | |  I |  i	 o I t
  n J |  i Sd  S(   N(   s   selfs   botframes   Nones   frames   trace_dispatchs	   stop_heres   break_anywheres	   user_calls   args   quittings   BdbQuit(   s   selfs   frames   arg(    (    s   /usr/lib/python2.2/bdb.pys   dispatch_call? s   $ c    se   L M |  i |  p | |  i j o1 N |  i | |  O |  i o O t  n n P |  i Sd  S(   N(	   s   selfs	   stop_heres   frames   returnframes   user_returns   args   quittings   BdbQuits   trace_dispatch(   s   selfs   frames   arg(    (    s   /usr/lib/python2.2/bdb.pys   dispatch_returnL s
   # c    sU   R S |  i |  o1 T |  i | |  U |  i o U t  n n V |  i Sd  S(   N(   s   selfs	   stop_heres   frames   user_exceptions   args   quittings   BdbQuits   trace_dispatch(   s   selfs   frames   arg(    (    s   /usr/lib/python2.2/bdb.pys   dispatch_exceptionR s
    c    s   \ ] |  i t j o ^ d Sn _ | |  i j o ` d Sn a xO a | t j	 o | |  i j	 o. b | |  i j o c d Sn d | i } qE We d Sd  S(   Ni   i    (   s   selfs	   stopframes   Nones   frames   botframes   f_back(   s   selfs   frame(    (    s   /usr/lib/python2.2/bdb.pys	   stop_here\ s     c    s   g h |  i | i i  } i |  i i |  o j d Sn k | i } l | |  i | j o m d Sn o t
 | | |  \ } } p | oK q | i |  _ r | o | i o s |  i t | i   n t d Sn v d Sd  S(   Ni    i   (   s   selfs   canonics   frames   f_codes   co_filenames   filenames   breakss   has_keys   f_linenos   linenos	   effectives   bps   flags   numbers	   currentbps	   temporarys   do_clears   str(   s   selfs   frames   flags   bps   linenos   filename(    (    s   /usr/lib/python2.2/bdb.pys
   break_hereg s   
c    s   x y t  d  d  S(   Ns)   subclass of bdb must implement do_clear()(   s   NotImplementedError(   s   selfs   arg(    (    s   /usr/lib/python2.2/bdb.pys   do_clearx s   c    s)   { | |  i i |  i | i i   Sd  S(   N(   s   selfs   breakss   has_keys   canonics   frames   f_codes   co_filename(   s   selfs   frame(    (    s   /usr/lib/python2.2/bdb.pys   break_anywhere{ s   c    s      d S(   sn   This method is called when there is the remote possibility
        that we ever need to stop in this function.N(    (   s   selfs   frames   argument_list(    (    s   /usr/lib/python2.2/bdb.pys	   user_call s   c    s      d S(   s9   This method is called when we stop or break at this line.N(    (   s   selfs   frame(    (    s   /usr/lib/python2.2/bdb.pys	   user_line s   c    s      d S(   s5   This method is called when a return trap is set here.N(    (   s   selfs   frames   return_value(    (    s   /usr/lib/python2.2/bdb.pys   user_return s   c    s    | \ } } }   d S(   sm   This method is called if an exception occurs,
        but only if we are to stop at or just below this level.N(   s   exc_types	   exc_values   exc_traceback(   s   selfs   frames   .4s   exc_types	   exc_values   exc_traceback(    (    s   /usr/lib/python2.2/bdb.pys   user_exception s   c    s.      t  |  _  t  |  _  d |  _ d S(   s   Stop after one line of code.i    N(   s   Nones   selfs	   stopframes   returnframes   quitting(   s   self(    (    s   /usr/lib/python2.2/bdb.pys   set_step s   c    s.      | |  _  t |  _  d |  _ d S(   s2   Stop on the next line in or below the given frame.i    N(   s   frames   selfs	   stopframes   Nones   returnframes   quitting(   s   selfs   frame(    (    s   /usr/lib/python2.2/bdb.pys   set_next s   c    s1      | i |  _  | |  _  d |  _ d S(   s)   Stop when returning from the given frame.i    N(   s   frames   f_backs   selfs	   stopframes   returnframes   quitting(   s   selfs   frame(    (    s   /usr/lib/python2.2/bdb.pys
   set_return s   c    s      y  d d Wn#   t  i   d i i } n X |  i    x6  | o+  |  i | _  | |  _	  | i } qQ W |  i
    t  i |  i  d S(   s   Start debugging from here.i   s    i   N(   s   syss   exc_infos   tb_frames   f_backs   frames   selfs   resets   trace_dispatchs   f_traces   botframes   set_steps   settrace(   s   selfs   frame(    (    s   /usr/lib/python2.2/bdb.pys	   set_trace s    
c    s     |  i |  _  t |  _  d |  _  |  i o  t i t   y  d d Wn#   t i	   d i
 i } n X x4  | o | |  i j	 o  | `  | i } q Wn d  S(   Ni    i   s    i   (   s   selfs   botframes	   stopframes   Nones   returnframes   quittings   breakss   syss   settraces   exc_infos   tb_frames   f_backs   frames   f_trace(   s   selfs   frame(    (    s   /usr/lib/python2.2/bdb.pys   set_continue s    	c    s>     |  i |  _  t |  _  d |  _  t i t  d  S(   Ni   (   s   selfs   botframes	   stopframes   Nones   returnframes   quittings   syss   settrace(   s   self(    (    s   /usr/lib/python2.2/bdb.pys   set_quit s   i    c 	   s     |  i |  }  d  k }  | i | |  }  | o  d | | f Sn  |  i i |  o  g  |  i | <n  |  i | }  | | j o  | i
 |  n  t | | | |  } d  S(   Ns   Line %s:%d does not exist(   s   selfs   canonics   filenames	   linecaches   getlines   linenos   lines   breakss   has_keys   lists   appends
   Breakpoints	   temporarys   conds   bp(	   s   selfs   filenames   linenos	   temporarys   conds   bps	   linecaches   lists   line(    (    s   /usr/lib/python2.2/bdb.pys	   set_break s   c    s     |  i |  }  |  i i |  o  d | Sn  | |  i | j o  d | | f Sn  x, t i | | f D ] }  | i	   q W t i i | | f  o  |  i | i
 |  n  |  i | o  |  i | =n d  S(   Ns   There are no breakpoints in %ss   There is no breakpoint at %s:%d(   s   selfs   canonics   filenames   breakss   has_keys   linenos
   Breakpoints   bplists   bps   deleteMes   remove(   s   selfs   filenames   linenos   bp(    (    s   /usr/lib/python2.2/bdb.pys   clear_break s    	c    s     y  t  |  } Wn   d | Sn X y  t i | } Wn!  t j
 o  d | Sn X | o  d | Sn  |  i | i	 | i
  d  S(   Ns"   Non-numeric breakpoint number (%s)s#   Breakpoint number (%d) out of ranges   Breakpoint (%d) already deleted(   s   ints   args   numbers
   Breakpoints
   bpbynumbers   bps
   IndexErrors   selfs   clear_breaks   files   line(   s   selfs   args   bps   number(    (    s   /usr/lib/python2.2/bdb.pys   clear_bpbynumber s   c    s     |  i |  } |  i i |  o d | Sn xR |  i | D]@ } t i | | f } x | D] } | i
   qu WqL W|  i | =d  S(   Ns   There are no breakpoints in %s(   s   selfs   canonics   filenames   breakss   has_keys   lines
   Breakpoints   bplists   blists   bps   deleteMe(   s   selfs   filenames   blists   bps   line(    (    s   /usr/lib/python2.2/bdb.pys   clear_all_file_breaks s    	
 	c    sa   	
|  i o d Sn x/ t i D]! } | o | i   n q) Wh  |  _ d  S(   Ns   There are no breakpoints(   s   selfs   breakss
   Breakpoints
   bpbynumbers   bps   deleteMe(   s   selfs   bp(    (    s   /usr/lib/python2.2/bdb.pys   clear_all_breaks	s    	
c    s@   |  i |  } |  i i |  o | |  i | j Sd  S(   N(   s   selfs   canonics   filenames   breakss   has_keys   lineno(   s   selfs   filenames   lineno(    (    s   /usr/lib/python2.2/bdb.pys	   get_breaks   c    s[   |  i |  } |  i i |  o% | |  i | j o t i | | f p g  Sd  S(   N(   s   selfs   canonics   filenames   breakss   has_keys   linenos
   Breakpoints   bplist(   s   selfs   filenames   lineno(    (    s   /usr/lib/python2.2/bdb.pys
   get_breakss   c    sH   |  i |  } |  i i |  o |  i | Sn !g  Sd  S(   N(   s   selfs   canonics   filenames   breakss   has_key(   s   selfs   filename(    (    s   /usr/lib/python2.2/bdb.pys   get_file_breakss   c    s   #$|  i Sd  S(   N(   s   selfs   breaks(   s   self(    (    s   /usr/lib/python2.2/bdb.pys   get_all_breaks#s   c    s  )*g  } +| o | i | j o ,| i } n -xU -| t j	 oD .| i | | i f  /| |  i	 j o 0Pn 1| i
 } q< W2| i   3t d t |  d  } 4x= 4| t j	 o, 5| i | i | i f  6| i } q W7| | f Sd  S(   Ni    i   (   s   stacks   ts   tb_frames   fs   tb_nexts   Nones   appends   f_linenos   selfs   botframes   f_backs   reverses   maxs   lens   is	   tb_lineno(   s   selfs   fs   ts   is   stack(    (    s   /usr/lib/python2.2/bdb.pys	   get_stack)s    	  s   : c    s  ;<d  k  } d  k } =| \ } } >|  i | i i  } ?| d | d } @| i i o A| | i i } n C| d } D| i i d  o E| i d } n
 Gt } H| o I| | i |  } n K| d } L| i i d  o7 M| i d }	 N| d } O| | i |	  } n P| i | |  }
 Q|
 o Q| | |
 i   } n R| Sd  S(   Ns   (s   )s   <lambda>s   __args__s   ()s
   __return__s   ->(   s	   linecaches   reprs   frame_linenos   frames   linenos   selfs   canonics   f_codes   co_filenames   filenames   ss   co_names   f_localss   has_keys   argss   Nones   rvs   getlines   lines   lprefixs   strip(   s   selfs   frame_linenos   lprefixs   argss   reprs   filenames	   linecaches   ss   linenos   rvs   lines   frame(    (    s   /usr/lib/python2.2/bdb.pys   format_stack_entry;s*   	

 c    s   WX| e j o Yd  k } Z| i } n [| e j o \| } n ]|  i   ^e i |  i	  _e
 | e i  o `| d } n az4 by c| | | UWn de j
 o
 en XWd  fgd |  _ he i e  Xd  S(   Ns   
i   (   s   globalss   Nones   __main__s   __dict__s   localss   selfs   resets   syss   settraces   trace_dispatchs
   isinstances   cmds   typess   CodeTypes   BdbQuits   quitting(   s   selfs   cmds   globalss   localss   __main__(    (    s   /usr/lib/python2.2/bdb.pys   runWs"   c    s   jk| t j o ld  k } m| i } n n| t j o o| } n p|  i   qt i |  i	  rt
 | t i  o s| d } n tz: uy vt | | |  SWn wt j
 o
 xn XWd  yzd |  _ {t i t  Xd  S(   Ns   
i   (   s   globalss   Nones   __main__s   __dict__s   localss   selfs   resets   syss   settraces   trace_dispatchs
   isinstances   exprs   typess   CodeTypes   evals   BdbQuits   quitting(   s   selfs   exprs   globalss   localss   __main__(    (    s   /usr/lib/python2.2/bdb.pys   runevaljs"   c    s   }|  i | | |  d  S(   N(   s   selfs   runs   cmds   globalss   locals(   s   selfs   cmds   globalss   locals(    (    s   /usr/lib/python2.2/bdb.pys   runctx}s   c    s   |  i   t i |  i  t } z9 y t | |  } Wn t
 j
 o
 n XWd  d |  _ t i t  X| Sd  S(   Ni   (   s   selfs   resets   syss   settraces   trace_dispatchs   Nones   ress   applys   funcs   argss   BdbQuits   quitting(   s   selfs   funcs   argss   res(    (    s   /usr/lib/python2.2/bdb.pys   runcalls   	()   s   __name__s
   __module__s   __doc__s   __init__s   canonics   resets   trace_dispatchs   dispatch_lines   dispatch_calls   dispatch_returns   dispatch_exceptions	   stop_heres
   break_heres   do_clears   break_anywheres	   user_calls	   user_lines   user_returns   user_exceptions   set_steps   set_nexts
   set_returns	   set_traces   set_continues   set_quits   Nones	   set_breaks   clear_breaks   clear_bpbynumbers   clear_all_file_breakss   clear_all_breakss	   get_breaks
   get_breakss   get_file_breakss   get_all_breakss	   get_stacks   format_stack_entrys   runs   runevals   runctxs   runcall(    (    (    s   /usr/lib/python2.2/bdb.pys   Bdb sL   


c      s   t    i   d  S(   N(   s   Bdbs	   set_trace(    (    (    s   /usr/lib/python2.2/bdb.pys	   set_traces   c      st   t  Z d  Z d Z h  Z e g Z d e d  Z d   Z d   Z	 d   Z
 d   Z RS(   s  Breakpoint class

    Implements temporary breakpoints, ignore counts, disabling and
    (re)-enabling, and conditionals.

    Breakpoints are indexed by number through bpbynumber and by
    the file,line tuple using bplist.  The former points to a
    single instance of class Breakpoint.  The latter points to a
    list of such instances since there may be more than one
    breakpoint per line.

    i   i    c    s   | |  _  | |  _ | |  _ | |  _ d |  _ d |  _ d |  _ t i	 |  _
 t i	 d t _	 |  i i |   |  i i | | f  o! |  i | | f i |   n |  g |  i | | f <d  S(   Ni   i    (   s   files   selfs   lines	   temporarys   conds   enableds   ignores   hitss
   Breakpoints   nexts   numbers
   bpbynumbers   appends   bplists   has_key(   s   selfs   files   lines	   temporarys   cond(    (    s   /usr/lib/python2.2/bdb.pys   __init__s   !c    si   |  i |  i f } t |  i |  i <|  i | i |   |  i | o |  i | =n d  S(   N(	   s   selfs   files   lines   indexs   Nones
   bpbynumbers   numbers   bplists   remove(   s   selfs   index(    (    s   /usr/lib/python2.2/bdb.pys   deleteMes
   c    s   d |  _ d  S(   Ni   (   s   selfs   enabled(   s   self(    (    s   /usr/lib/python2.2/bdb.pys   enables   c    s   d |  _ d  S(   Ni    (   s   selfs   enabled(   s   self(    (    s   /usr/lib/python2.2/bdb.pys   disables   c    s  |  i o d } n
 d } |  i o | d } n | d } d |  i | |  i |  i f GH|  i o d |  i f GHn |  i o d |  i GHn |  i	 oB |  i	 d j o d	 } n
 d
 } d |  i	 | f GHn d  S(   Ns   del  s   keep s   yess   no s   %-4dbreakpoint    %s at %s:%ds   	stop only if %ss   	ignore next %d hitsi   s   ss    s!   	breakpoint already hit %d time%s(   s   selfs	   temporarys   disps   enableds   numbers   files   lines   conds   ignores   hitss   ss(   s   selfs   disps   ss(    (    s   /usr/lib/python2.2/bdb.pys   bpprints    	! 	(   s   __name__s
   __module__s   __doc__s   nexts   bplists   Nones
   bpbynumbers   __init__s   deleteMes   enables   disables   bpprint(    (    (    s   /usr/lib/python2.2/bdb.pys
   Breakpoints   		c    sf  t  i |  | f } x3t d t |   D]} | | } | i	 d j o
 q5 n | i
 d | _
 | i oA | i d j o | i d | _ q5 n | d f Sn yj t | i | i | i  } | o; | i d j o 	| i d | _ n | d f Sn Wn | d f Sn Xq5 Wt t f Sd S(   s   Determine which breakpoint for this file:line is to be acted upon.

    Called only if we know there is a bpt at this
    location.  Returns breakpoint that was triggered and a flag
    that indicates if it is ok to delete a temporary bp.

    i    i   N(   s
   Breakpoints   bplists   files   lines	   possibless   ranges   lens   is   bs   enableds   hitss   conds   ignores   evals   frames	   f_globalss   f_localss   vals   None(   s   files   lines   frames   bs   vals   is	   possibles(    (    s   /usr/lib/python2.2/bdb.pys	   effectives.    	


s   Tdbc      s;   t  Z d   Z d   Z &d   Z (d   Z RS(   Nc    s>   | i i } | o d } n d G| G| GHd  S(   Ns   ???s   +++ call(   s   frames   f_codes   co_names   names   args(   s   selfs   frames   argss   name(    (    s   /usr/lib/python2.2/bdb.pys	   user_calls    c    s    d  k  } !| i i } "| o "d } n #|  i | i i  } $| i	 | | i
  } %d G| G| i
 G| Gd G| i   GHd  S(   Ns   ???s   +++s   :(   s	   linecaches   frames   f_codes   co_names   names   selfs   canonics   co_filenames   fns   getlines   f_linenos   lines   strip(   s   selfs   frames	   linecaches   names   lines   fn(    (    s   /usr/lib/python2.2/bdb.pys	   user_lines    c    s   &'d G| GHd  S(   Ns
   +++ return(   s   retval(   s   selfs   frames   retval(    (    s   /usr/lib/python2.2/bdb.pys   user_return&s   c    s    ()d G| GH*|  i   d  S(   Ns   +++ exception(   s	   exc_stuffs   selfs   set_continue(   s   selfs   frames	   exc_stuff(    (    s   /usr/lib/python2.2/bdb.pys   user_exception(s   (   s   __name__s
   __module__s	   user_calls	   user_lines   user_returns   user_exception(    (    (    s   /usr/lib/python2.2/bdb.pys   Tdbs   	c    s6   ,-d G|  Gd GH.t |  d  } /d G| GHd  S(   Ns   foo(s   )i
   s   bar returned(   s   ns   bars   x(   s   ns   x(    (    s   /usr/lib/python2.2/bdb.pys   foo,s   c    s"   12d G|  Gd GH3|  d Sd  S(   Ns   bar(s   )i   (   s   a(   s   a(    (    s   /usr/lib/python2.2/bdb.pys   bar1s   c     s#   56t    }  7|  i d  d  S(   Ns   import bdb; bdb.foo(10)(   s   Tdbs   ts   run(   s   t(    (    s   /usr/lib/python2.2/bdb.pys   test5s   (   s   __doc__s   syss   oss   typess   __all__s   BdbQuits   Bdbs	   set_traces
   Breakpoints	   effectives   Tdbs   foos   bars   test(   s   bars	   effectives   __all__s   Bdbs   Tdbs	   set_traces   syss   BdbQuits
   Breakpoints   tests   foos   oss   types(    (    s   /usr/lib/python2.2/bdb.pys   ? s   	 Q3