GIF89a; EcchiShell v1.0
//proc/self/root/usr/share/gdb/s%s .. (Value of type '%s')s base classRSs*is"Enter the field number of choice: (RRRQR R(R'RTRRR7R RPRRt is_base_classtcastR)R R4tappendROR6RR5(R RRRRRQt type_descthas_explorable_fieldstchoice_to_compound_field_maptcurrent_choiceRLRStfield_full_namet field_valuet literal_valuet field_desctchoice((s,/usr/share/gdb/python/gdb/command/explore.pyR‡sr                  cCs>|j}d}|tjkr'd}nd}|jƒ}tj|ƒdkrŒ|ryd||t|ƒfGHtjƒnd||fGHt S|r­d||t|ƒfGHnd||fGHt }d}i}g} x|D]ˆ} | j rðqÛn| j rd } nd } d || t| j ƒf} | j | j| fƒ| j| j | f|t|ƒ<|d }qÛWtj| ƒdGHt|ƒdkr'td ƒ} | |kr|rÏd|| d|| d|f}n#d|| d|| d|f}tj||| d tƒtS|r:tjƒq:n|r:tjƒnt S(srFunction to explore struct/class and union types. See Explorer.explore_type for more information. RWs struct/classRUis'%s is a %s of type '%s' with no fields.s'%s' is a %s with no fields.s3%s is a %s of type '%s' with the following fields: s('%s' is a %s with the following fields: s base classRSs*is"Enter the field number of choice: s %s '%s' of %sis%s '%s' of '%s'(RR R(RQR'RTRRR9R RPRXRRZRROR R6RR R8(RRRRR[RQR\R^R]RLRSRbtrhsRctnew_name((s,/usr/share/gdb/python/gdb/command/explore.pyRØsn                    (R:R;R<R=RORTRR(((s,/usr/share/gdb/python/gdb/command/explore.pyR'os   QR.cBs,eZdZed„ƒZed„ƒZRS(s>Internal class used to explore values whose type is a typedef.cCsP|jjƒ}d|t|jƒt|ƒfGHtj||j|ƒ|ƒtS(sdFunction to explore typedef values. See Explorer.explore_expr for more information. sAThe value of '%s' is of type '%s' which is a typedef of type '%s'(Rtstrip_typedefsRRRRYR (R RRt actual_type((s,/usr/share/gdb/python/gdb/command/explore.pyR)s cCsV|jƒ}|r*d|t|ƒfGHnd|t|ƒfGHtj|||ƒtS(scFunction to explore typedef types. See Explorer.explore_type for more information. s)The type of %s is a typedef of type '%s'.s(The type '%s' is a typedef of type '%s'.(RfRRRR (RRRRg((s,/usr/share/gdb/python/gdb/command/explore.pyR6s (R:R;R<R=RR(((s,/usr/share/gdb/python/gdb/command/explore.pyR.&s t ExploreUtilscBs;eZdZed„ƒZed„ƒZed„ƒZRS(sEInternal class which provides utilities for the main command classes.cCs1t|ƒdkr)tjd|ƒ‚tStSdS(s˜Utility to check if adequate number of arguments are passed to an explore command. Arguments: name: The name of the explore command. arg_str: The argument string passed to the explore command. Returns: True if adequate arguments are passed, false otherwise. Raises: gdb.GdbError if adequate arguments are not passed. is!ERROR: '%s' requires an argument.N(R R tGdbErrorR R (Rtarg_str((s,/usr/share/gdb/python/gdb/command/explore.pyt check_argsJs   cCs\ytjd|ƒjjƒSWn7tk rWytj|ƒSWqXtk rSdSXnXdS(s<A utility function to deduce the gdb.Type value from a string representing the type. Arguments: type_str: The type string from which the gdb.Type value should be deduced. Returns: The deduced gdb.Type value if possible, None otherwise. s(%s *)0N(R tparse_and_evalRR?t RuntimeErrort lookup_typeR@(ttype_str((s,/usr/share/gdb/python/gdb/command/explore.pytget_type_from_str`s   cCs*ytj|ƒSWntk r%dSXdS(sCA utility function to deduce the gdb.Value value from a string representing the value. Arguments: value_str: The value string from which the gdb.Value value should be deduced. Returns: The deduced gdb.Value value if possible, None otherwise. N(R RlRmR@(t value_str((s,/usr/share/gdb/python/gdb/command/explore.pytget_value_from_strws  (R:R;R<R=RkRpRr(((s,/usr/share/gdb/python/gdb/command/explore.pyRhGstExploreCommandcBs eZdZd„Zd„ZRS(s,Explore a value or a type valid in the current context. Usage: explore ARG - ARG is either a valid expression or a type name. - At any stage of exploration, hit the return key (instead of a choice, if any) to return to the enclosing type or value. cCs,tt|ƒjdddtjdtƒdS(NRtexploret command_classtprefix(tsuperRst__init__R t COMMAND_DATAR (tself((s,/usr/share/gdb/python/gdb/command/explore.pyRx•s cCs—tjd|ƒtkrdStj|ƒ}|dk rNtj||tƒdStj|ƒ}|dk r€tj||tƒdSt j d|ƒ‚dS(NRtsG'%s' neither evaluates to a value nor is a type in the current context.( RhRkR RrR@RRRpRR Ri(RzRjtfrom_ttyRR((s,/usr/share/gdb/python/gdb/command/explore.pytinvokešs  (R:R;R<RxR|(((s,/usr/share/gdb/python/gdb/command/explore.pyRs‰s  tExploreValueCommandcBs eZdZd„Zd„ZRS(sExplore value of an expression valid in the current context. Usage: explore value ARG - ARG is a valid expression. - At any stage of exploration, hit the return key (instead of a choice, if any) to return to the enclosing value. cCs&tt|ƒjdddtjƒdS(NRs explore valueRu(RwR}RxR Ry(Rz((s,/usr/share/gdb/python/gdb/command/explore.pyRx½scCsetjd|ƒtkrdStj|ƒ}|dkrNtjd|ƒ‚dStj||tƒdS(Ns explore values: '%s' does not evaluate to a value in the current context.( RhRkR RrR@R RiRR(RzRjR{R((s,/usr/share/gdb/python/gdb/command/explore.pyR|Ás  (R:R;R<RxR|(((s,/usr/share/gdb/python/gdb/command/explore.pyR}±s  tExploreTypeCommandcBs eZdZd„Zd„ZRS(s:Explore a type or the type of an expression valid in the current context. Usage: explore type ARG - ARG is a valid expression or a type name. - At any stage of exploration, hit the return key (instead of a choice, if any) to return to the enclosing type. cCs&tt|ƒjdddtjƒdS(NRs explore typeRu(RwR~RxR Ry(Rz((s,/usr/share/gdb/python/gdb/command/explore.pyRxÝscCs»tjd|ƒtkrdStj|ƒ}|dk rNtj||tƒdStj|ƒ}|dk r¤d|t|j ƒfGHtjt|j ƒ|j tƒdSt j d|ƒ‚dS(Ns explore types'%s' is of type '%s'.s3'%s' is not a type or value in the current context.( RhRkR RpR@RRRrRRR Ri(RzRjR{RR((s,/usr/share/gdb/python/gdb/command/explore.pyR|ás   (R:R;R<RxR|(((s,/usr/share/gdb/python/gdb/command/explore.pyR~Ðs  (R<R tsyst version_infotinputR6tobjectRRR*R,R0R'R.RhtCommandRsR}R~R2(((s,/usr/share/gdb/python/gdb/command/explore.pyts&   £-B-·!B($