Ñò 55€Lc @sddkZddkZddkZddklZddklZddkZdeifd„ƒYZ dei fd„ƒYZ e ƒdS(iÿÿÿÿN(t FrameIterator(t FrameWrappertReverseBacktraceParametercBs#eZdZdZdZd„ZRS(s·The new-backtrace command can show backtraces in 'reverse' order. This means that the innermost frame will be printed last. Note that reverse backtraces are more expensive to compute.s%Enable or disable reverse backtraces.s9Show whether backtraces will be printed in reverse order.cCs,tii|dtitiƒt|_dS(Nsreverse-backtrace(tgdbt Parametert__init__t COMMAND_STACKt PARAM_BOOLEANtFalsetvalue(tself((s./usr/share/gdb/python/gdb/command/backtrace.pyR!s(t__name__t __module__t__doc__tset_doctshow_docR(((s./usr/share/gdb/python/gdb/command/backtrace.pyRstFilteringBacktracecBs2eZdZd„Zd„Zd„Zd„ZRS(s Print backtrace of all stack frames, or innermost COUNT frames. With a negative argument, print outermost -COUNT frames. Use of the 'full' qualifier also prints the values of the local variables. Use of the 'raw' qualifier avoids any filtering by loadable modules. cCs)tii|dtiƒtƒ|_dS(Ns new-backtrace(RtCommandRRRtreverse(R ((s./usr/share/gdb/python/gdb/command/backtrace.pyR.scCs2g}x|D]}|i|ƒq W|iƒ|S(N(tappendR(R titertresulttitem((s./usr/share/gdb/python/gdb/command/backtrace.pyt reverse_iter4s  cCs,g}x|D]}|i|ƒq W||S(N(R(R RtxRR((s./usr/share/gdb/python/gdb/command/backtrace.pytfinal_n;s c Csd}d}t}t}xe|idƒD]T}|djoq(q(|djo t}q(|djo t}q(t|ƒ}q(Wtiƒiƒ}tit t |ƒƒ} |oti i | ƒ} nti tidƒ| ƒ} |iio|i| ƒ} n|djo|i| |ƒ} n'|djoti| d|ƒ} nx=| D]5} tiid| dƒ| diti|ƒqRWdS(Nit ttrawtfulls#%-2di(tTrueRtsplittintRtselected_threadt newest_framet itertoolstimapRRt backtracetcreate_frame_filtertiziptcountRR RRtislicetsyststdouttwritetdescribe( R targtfrom_ttytiR(tfilterRtwordR"Rtpair((s./usr/share/gdb/python/gdb/command/backtrace.pytinvokeAs:         (R R R RRRR4(((s./usr/share/gdb/python/gdb/command/backtrace.pyR's    ( Rt gdb.backtraceR#tgdb.FrameIteratorRtgdb.FrameWrapperRR*RRRR(((s./usr/share/gdb/python/gdb/command/backtrace.pyts    C