author | Jan Vrany <jan.vrany@fit.cvut.cz> |
Thu, 09 Apr 2015 15:04:14 +0100 | |
changeset 4 | ca45a88235bd |
parent 2 | ef575a931434 |
permissions | -rw-r--r-- |
0
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
1 |
import gdb |
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
2 |
import stx.support |
2
ef575a931434
Improved command `btx` (backtrace)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
0
diff
changeset
|
3 |
import stx.util |
ef575a931434
Improved command `btx` (backtrace)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
0
diff
changeset
|
4 |
|
0
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
5 |
|
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
6 |
class CFrameDecorator ( stx.support.Decorator ): |
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
7 |
"""An abstract gdb.Frame decorator""" |
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
8 |
|
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
9 |
@staticmethod |
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
10 |
def decorate(frame): |
4
ca45a88235bd
Minor fixes in GDB scripts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2
diff
changeset
|
11 |
function = frame.function() |
ca45a88235bd
Minor fixes in GDB scripts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2
diff
changeset
|
12 |
if function == None: |
ca45a88235bd
Minor fixes in GDB scripts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2
diff
changeset
|
13 |
return CFrameDecorator_jit(frame) |
ca45a88235bd
Minor fixes in GDB scripts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2
diff
changeset
|
14 |
if function.name == '__jInterpret': |
0
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
15 |
return CFrameDecorator_jInterpret(frame) |
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
16 |
else: |
2
ef575a931434
Improved command `btx` (backtrace)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
0
diff
changeset
|
17 |
c , s = stx.util.demangle(frame.name()) |
ef575a931434
Improved command `btx` (backtrace)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
0
diff
changeset
|
18 |
if (c != None): |
ef575a931434
Improved command `btx` (backtrace)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
0
diff
changeset
|
19 |
if (s != None): |
4
ca45a88235bd
Minor fixes in GDB scripts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2
diff
changeset
|
20 |
return CFrameDecorator_stcMethod(frame, c, s) |
0
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
21 |
return CFrameDecorator(frame) |
4
ca45a88235bd
Minor fixes in GDB scripts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2
diff
changeset
|
22 |
|
0
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
23 |
def __str__(self): |
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
24 |
kind = self.kind() |
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
25 |
if kind != None: |
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
26 |
kind = "%2s" % kind |
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
27 |
else: |
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
28 |
kind = ' ' |
4
ca45a88235bd
Minor fixes in GDB scripts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2
diff
changeset
|
29 |
return "%3s 0x%8x %s ( %s)" % ( |
ca45a88235bd
Minor fixes in GDB scripts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2
diff
changeset
|
30 |
kind , |
ca45a88235bd
Minor fixes in GDB scripts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2
diff
changeset
|
31 |
self.pc(), |
ca45a88235bd
Minor fixes in GDB scripts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2
diff
changeset
|
32 |
self.name() , |
0
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
33 |
self.args_string() ) |
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
34 |
|
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
35 |
def older(self): |
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
36 |
older = self._obj.older() |
4
ca45a88235bd
Minor fixes in GDB scripts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2
diff
changeset
|
37 |
if older == None: |
ca45a88235bd
Minor fixes in GDB scripts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2
diff
changeset
|
38 |
return None |
0
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
39 |
# special case, because of longjmp(), parent frame-point might point |
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
40 |
# to clean area, filled by 0xa5a5a5a5 (malloc() does this) |
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
41 |
if older.pc() != 0xa5a5a5a5: |
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
42 |
return CFrameDecorator.decorate(older) |
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
43 |
else: |
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
44 |
return None |
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
45 |
|
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
46 |
def newer(self): |
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
47 |
return CFrameDecorator.decorate(self._obj.newer()) |
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
48 |
|
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
49 |
def kind(self): |
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
50 |
"""Returns 3 char identification of frame kind or None""" |
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
51 |
return None # generic frame |
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
52 |
|
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
53 |
def function_block(self): |
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
54 |
"""Returns a top-level block (i.e., block for the function)""" |
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
55 |
b = self._obj.block() |
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
56 |
while b.function == None: |
4
ca45a88235bd
Minor fixes in GDB scripts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2
diff
changeset
|
57 |
b = b.superblock |
0
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
58 |
return b |
4
ca45a88235bd
Minor fixes in GDB scripts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2
diff
changeset
|
59 |
|
0
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
60 |
def args_string(self): |
4
ca45a88235bd
Minor fixes in GDB scripts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2
diff
changeset
|
61 |
"""Returns a string representation of arguments""" |
0
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
62 |
s = '' |
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
63 |
for sym in self.function_block(): |
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
64 |
if sym.is_argument: |
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
65 |
s = s + self.arg_string(sym) + ' ' |
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
66 |
return s |
4
ca45a88235bd
Minor fixes in GDB scripts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2
diff
changeset
|
67 |
|
0
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
68 |
def arg_string(self, sym): |
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
69 |
"""Given an argument symbol, returns its string representation""" |
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
70 |
val = self._obj.read_var(sym, self._obj.block()) |
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
71 |
return "%s=%s" % ( sym.print_name , val ) |
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
72 |
|
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
73 |
class CFrameDecorator_jInterpret ( CFrameDecorator ): |
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
74 |
|
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
75 |
def kind(self): |
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
76 |
return "J-I" |
2
ef575a931434
Improved command `btx` (backtrace)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
0
diff
changeset
|
77 |
|
4
ca45a88235bd
Minor fixes in GDB scripts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2
diff
changeset
|
78 |
class CFrameDecorator_jit ( CFrameDecorator ): |
ca45a88235bd
Minor fixes in GDB scripts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2
diff
changeset
|
79 |
|
ca45a88235bd
Minor fixes in GDB scripts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2
diff
changeset
|
80 |
def kind(self): |
ca45a88235bd
Minor fixes in GDB scripts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2
diff
changeset
|
81 |
return "?-J" |
ca45a88235bd
Minor fixes in GDB scripts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2
diff
changeset
|
82 |
|
ca45a88235bd
Minor fixes in GDB scripts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2
diff
changeset
|
83 |
def function_block(self): |
ca45a88235bd
Minor fixes in GDB scripts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2
diff
changeset
|
84 |
return [] |
ca45a88235bd
Minor fixes in GDB scripts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2
diff
changeset
|
85 |
|
ca45a88235bd
Minor fixes in GDB scripts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2
diff
changeset
|
86 |
def name(self): |
ca45a88235bd
Minor fixes in GDB scripts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2
diff
changeset
|
87 |
return "???" |
ca45a88235bd
Minor fixes in GDB scripts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2
diff
changeset
|
88 |
|
ca45a88235bd
Minor fixes in GDB scripts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2
diff
changeset
|
89 |
|
2
ef575a931434
Improved command `btx` (backtrace)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
0
diff
changeset
|
90 |
class CFrameDecorator_stcMethod ( CFrameDecorator ): |
ef575a931434
Improved command `btx` (backtrace)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
0
diff
changeset
|
91 |
def __init__(self, frame, className = None, selectorValue = None): |
ef575a931434
Improved command `btx` (backtrace)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
0
diff
changeset
|
92 |
CFrameDecorator.__init__(self, frame) |
ef575a931434
Improved command `btx` (backtrace)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
0
diff
changeset
|
93 |
c = className |
ef575a931434
Improved command `btx` (backtrace)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
0
diff
changeset
|
94 |
s = selectorValue |
ef575a931434
Improved command `btx` (backtrace)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
0
diff
changeset
|
95 |
if (c == None or s == None): |
ef575a931434
Improved command `btx` (backtrace)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
0
diff
changeset
|
96 |
c, s = stx.util.demangle(frame.name()) |
ef575a931434
Improved command `btx` (backtrace)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
0
diff
changeset
|
97 |
self.klassName = c |
4
ca45a88235bd
Minor fixes in GDB scripts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2
diff
changeset
|
98 |
self.selectorValue = s |
2
ef575a931434
Improved command `btx` (backtrace)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
0
diff
changeset
|
99 |
|
ef575a931434
Improved command `btx` (backtrace)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
0
diff
changeset
|
100 |
def name(self): |
ef575a931434
Improved command `btx` (backtrace)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
0
diff
changeset
|
101 |
return "%s >> #%s" % ( self.klassName, self.selectorValue ) |
ef575a931434
Improved command `btx` (backtrace)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
0
diff
changeset
|
102 |
|
ef575a931434
Improved command `btx` (backtrace)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
0
diff
changeset
|
103 |
|
ef575a931434
Improved command `btx` (backtrace)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
0
diff
changeset
|
104 |
def kind(self): |
4
ca45a88235bd
Minor fixes in GDB scripts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2
diff
changeset
|
105 |
return "S-C" |
ca45a88235bd
Minor fixes in GDB scripts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2
diff
changeset
|
106 |
|
0
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
107 |
class Backtrace ( gdb.Command ): |
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
108 |
''' |
4
ca45a88235bd
Minor fixes in GDB scripts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2
diff
changeset
|
109 |
Prints a VM backtrace. |
0
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
110 |
|
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
111 |
Print additional information for well-known VM functions such |
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
112 |
as __interpret, __jinterpret, etc. |
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
113 |
''' |
4
ca45a88235bd
Minor fixes in GDB scripts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2
diff
changeset
|
114 |
|
0
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
115 |
def __init__ ( self ): |
2
ef575a931434
Improved command `btx` (backtrace)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
0
diff
changeset
|
116 |
super (Backtrace, self).__init__("btx", gdb.COMMAND_STACK) |
4
ca45a88235bd
Minor fixes in GDB scripts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2
diff
changeset
|
117 |
|
0
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
118 |
def invoke ( self , args , from_tty ): |
2
ef575a931434
Improved command `btx` (backtrace)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
0
diff
changeset
|
119 |
try: |
ef575a931434
Improved command `btx` (backtrace)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
0
diff
changeset
|
120 |
argv = gdb.string_to_argv(args) |
ef575a931434
Improved command `btx` (backtrace)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
0
diff
changeset
|
121 |
limit = None |
ef575a931434
Improved command `btx` (backtrace)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
0
diff
changeset
|
122 |
if len(argv) == 1: |
ef575a931434
Improved command `btx` (backtrace)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
0
diff
changeset
|
123 |
limit = int(argv[0]) |
4
ca45a88235bd
Minor fixes in GDB scripts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2
diff
changeset
|
124 |
fno = 0 |
2
ef575a931434
Improved command `btx` (backtrace)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
0
diff
changeset
|
125 |
frame = CFrameDecorator.decorate(gdb.newest_frame()) |
ef575a931434
Improved command `btx` (backtrace)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
0
diff
changeset
|
126 |
framesel = gdb.selected_frame() |
4
ca45a88235bd
Minor fixes in GDB scripts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2
diff
changeset
|
127 |
while ( frame != None ) and ( limit == None or fno < limit ): |
2
ef575a931434
Improved command `btx` (backtrace)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
0
diff
changeset
|
128 |
if frame.target() == framesel: |
ef575a931434
Improved command `btx` (backtrace)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
0
diff
changeset
|
129 |
star = '*' |
ef575a931434
Improved command `btx` (backtrace)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
0
diff
changeset
|
130 |
else: |
ef575a931434
Improved command `btx` (backtrace)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
0
diff
changeset
|
131 |
star = ' ' |
ef575a931434
Improved command `btx` (backtrace)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
0
diff
changeset
|
132 |
print "%s%3d %s" % (star, fno , frame ) |
ef575a931434
Improved command `btx` (backtrace)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
0
diff
changeset
|
133 |
frame = frame.older() |
ef575a931434
Improved command `btx` (backtrace)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
0
diff
changeset
|
134 |
fno = fno +1 |
ef575a931434
Improved command `btx` (backtrace)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
0
diff
changeset
|
135 |
except: |
ef575a931434
Improved command `btx` (backtrace)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
0
diff
changeset
|
136 |
import traceback |
ef575a931434
Improved command `btx` (backtrace)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
0
diff
changeset
|
137 |
import sys |
ef575a931434
Improved command `btx` (backtrace)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
0
diff
changeset
|
138 |
traceback.print_exc(file=sys.stdout) |
0
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
139 |
|
2c329a84bd89
Initial import of GDB support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
140 |
Backtrace() |