author | Jan Vrany <jan.vrany@fit.cvut.cz> |
Tue, 10 Mar 2015 10:00:55 +0000 | |
changeset 71 | 016b716773e3 |
parent 56 | 20989de12cfb |
child 82 | 7ee72b7a498f |
permissions | -rw-r--r-- |
40
0ce76b671515
Some more support for stack frames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
1 |
"{ Package: 'jv:libgdbs' }" |
0ce76b671515
Some more support for stack frames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
2 |
|
55
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
3 |
"{ NameSpace: Smalltalk }" |
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
4 |
|
51
2fa20404923c
Introduced GDBThreadGroupType.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
45
diff
changeset
|
5 |
GDBTransientObject subclass:#GDBFrame |
55
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
6 |
instanceVariableNames:'thread level addr func file fullname line from variables' |
40
0ce76b671515
Some more support for stack frames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
7 |
classVariableNames:'' |
0ce76b671515
Some more support for stack frames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
8 |
poolDictionaries:'' |
0ce76b671515
Some more support for stack frames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
9 |
category:'GDB-Core' |
0ce76b671515
Some more support for stack frames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
10 |
! |
0ce76b671515
Some more support for stack frames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
11 |
|
71
016b716773e3
GDBFrame: fix for framew with empty variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
56
diff
changeset
|
12 |
|
40
0ce76b671515
Some more support for stack frames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
13 |
!GDBFrame class methodsFor:'accessing - GDB value descriptors'! |
0ce76b671515
Some more support for stack frames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
14 |
|
45
deb908479a37
Code refactored to use Magritte to meta-describe GDB objects.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
43
diff
changeset
|
15 |
description |
deb908479a37
Code refactored to use Magritte to meta-describe GDB objects.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
43
diff
changeset
|
16 |
^ (super description) |
deb908479a37
Code refactored to use Magritte to meta-describe GDB objects.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
43
diff
changeset
|
17 |
define:#level as:Integer; |
deb908479a37
Code refactored to use Magritte to meta-describe GDB objects.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
43
diff
changeset
|
18 |
define:#func as:String; |
deb908479a37
Code refactored to use Magritte to meta-describe GDB objects.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
43
diff
changeset
|
19 |
define:#file as:String; |
deb908479a37
Code refactored to use Magritte to meta-describe GDB objects.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
43
diff
changeset
|
20 |
define:#fullname as:String; |
deb908479a37
Code refactored to use Magritte to meta-describe GDB objects.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
43
diff
changeset
|
21 |
define:#line as:Integer; |
deb908479a37
Code refactored to use Magritte to meta-describe GDB objects.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
43
diff
changeset
|
22 |
define:#from as:String; |
deb908479a37
Code refactored to use Magritte to meta-describe GDB objects.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
43
diff
changeset
|
23 |
define:#addr as:Integer; |
40
0ce76b671515
Some more support for stack frames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
24 |
yourself |
0ce76b671515
Some more support for stack frames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
25 |
|
0ce76b671515
Some more support for stack frames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
26 |
"Created: / 16-09-2014 / 23:59:51 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
0ce76b671515
Some more support for stack frames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
27 |
! ! |
0ce76b671515
Some more support for stack frames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
28 |
|
0ce76b671515
Some more support for stack frames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
29 |
!GDBFrame methodsFor:'accessing'! |
0ce76b671515
Some more support for stack frames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
30 |
|
0ce76b671515
Some more support for stack frames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
31 |
addr |
0ce76b671515
Some more support for stack frames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
32 |
^ addr |
0ce76b671515
Some more support for stack frames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
33 |
! |
0ce76b671515
Some more support for stack frames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
34 |
|
0ce76b671515
Some more support for stack frames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
35 |
file |
0ce76b671515
Some more support for stack frames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
36 |
^ file |
0ce76b671515
Some more support for stack frames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
37 |
! |
0ce76b671515
Some more support for stack frames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
38 |
|
0ce76b671515
Some more support for stack frames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
39 |
from |
0ce76b671515
Some more support for stack frames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
40 |
^ from |
0ce76b671515
Some more support for stack frames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
41 |
! |
0ce76b671515
Some more support for stack frames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
42 |
|
0ce76b671515
Some more support for stack frames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
43 |
fullname |
0ce76b671515
Some more support for stack frames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
44 |
^ fullname |
0ce76b671515
Some more support for stack frames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
45 |
! |
0ce76b671515
Some more support for stack frames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
46 |
|
0ce76b671515
Some more support for stack frames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
47 |
func |
0ce76b671515
Some more support for stack frames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
48 |
^ func |
0ce76b671515
Some more support for stack frames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
49 |
! |
0ce76b671515
Some more support for stack frames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
50 |
|
0ce76b671515
Some more support for stack frames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
51 |
level |
0ce76b671515
Some more support for stack frames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
52 |
^ level |
0ce76b671515
Some more support for stack frames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
53 |
! |
0ce76b671515
Some more support for stack frames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
54 |
|
0ce76b671515
Some more support for stack frames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
55 |
line |
0ce76b671515
Some more support for stack frames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
56 |
^ line |
43
22236b6d1d9a
Remove threads from thread group when threadgroup terminates.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
41
diff
changeset
|
57 |
! |
22236b6d1d9a
Remove threads from thread group when threadgroup terminates.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
41
diff
changeset
|
58 |
|
22236b6d1d9a
Remove threads from thread group when threadgroup terminates.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
41
diff
changeset
|
59 |
thread |
22236b6d1d9a
Remove threads from thread group when threadgroup terminates.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
41
diff
changeset
|
60 |
^ thread |
55
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
61 |
! |
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
62 |
|
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
63 |
variables |
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
64 |
self ensureIsValid. |
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
65 |
variables isNil ifTrue:[ |
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
66 |
variables := GDBTransientDataHolder debugger: debugger factory:[ |
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
67 |
| result | |
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
68 |
|
56
20989de12cfb
More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
55
diff
changeset
|
69 |
result := debugger send: (GDBMI_stack_list_variables new arguments: { '--thread' . thread id . '--frame' . level . '--simple-values' }). |
71
016b716773e3
GDBFrame: fix for framew with empty variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
56
diff
changeset
|
70 |
(result propertyAt: #variables) ? #() |
56
20989de12cfb
More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
55
diff
changeset
|
71 |
do:[ :each | each setFrame: self ]; |
55
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
72 |
yourself |
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
73 |
]. |
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
74 |
]. |
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
75 |
^ variables value |
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
76 |
|
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
77 |
"Created: / 27-02-2015 / 14:56:22 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
71
016b716773e3
GDBFrame: fix for framew with empty variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
56
diff
changeset
|
78 |
"Modified: / 09-03-2015 / 23:43:23 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
40
0ce76b671515
Some more support for stack frames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
79 |
! ! |
0ce76b671515
Some more support for stack frames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
80 |
|
41
fb48207b6104
Fixes in thread's stack mangement. Dispatch events to applications using their UI event loop.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
40
diff
changeset
|
81 |
!GDBFrame methodsFor:'printing & storing'! |
fb48207b6104
Fixes in thread's stack mangement. Dispatch events to applications using their UI event loop.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
40
diff
changeset
|
82 |
|
55
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
83 |
displayString |
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
84 |
^ String streamContents: [ :aStream | |
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
85 |
level printOn:aStream base: 10 size: 2 fill: Character space. |
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
86 |
aStream nextPutAll:' '. |
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
87 |
addr printOn:aStream. |
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
88 |
aStream nextPutAll:' '. |
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
89 |
func printOn:aStream. |
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
90 |
aStream nextPutAll:' ('. |
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
91 |
file printOn:aStream. |
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
92 |
aStream nextPutAll:', line: '. |
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
93 |
line printOn:aStream. |
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
94 |
aStream nextPutAll:')'. |
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
95 |
]. |
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
96 |
|
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
97 |
"Created: / 27-02-2015 / 15:20:40 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
98 |
! |
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
99 |
|
41
fb48207b6104
Fixes in thread's stack mangement. Dispatch events to applications using their UI event loop.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
40
diff
changeset
|
100 |
printOn:aStream |
fb48207b6104
Fixes in thread's stack mangement. Dispatch events to applications using their UI event loop.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
40
diff
changeset
|
101 |
"append a printed representation if the receiver to the argument, aStream" |
fb48207b6104
Fixes in thread's stack mangement. Dispatch events to applications using their UI event loop.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
40
diff
changeset
|
102 |
|
55
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
103 |
super printOn: aStream. |
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
104 |
aStream nextPutAll:'('. |
41
fb48207b6104
Fixes in thread's stack mangement. Dispatch events to applications using their UI event loop.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
40
diff
changeset
|
105 |
level printOn:aStream base: 10 size: 2 fill: Character space. |
fb48207b6104
Fixes in thread's stack mangement. Dispatch events to applications using their UI event loop.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
40
diff
changeset
|
106 |
aStream nextPutAll:' '. |
fb48207b6104
Fixes in thread's stack mangement. Dispatch events to applications using their UI event loop.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
40
diff
changeset
|
107 |
addr printOn:aStream. |
fb48207b6104
Fixes in thread's stack mangement. Dispatch events to applications using their UI event loop.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
40
diff
changeset
|
108 |
aStream nextPutAll:' '. |
fb48207b6104
Fixes in thread's stack mangement. Dispatch events to applications using their UI event loop.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
40
diff
changeset
|
109 |
func printOn:aStream. |
55
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
110 |
aStream nextPutAll:' - '. |
41
fb48207b6104
Fixes in thread's stack mangement. Dispatch events to applications using their UI event loop.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
40
diff
changeset
|
111 |
file printOn:aStream. |
55
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
112 |
aStream nextPutAll:':'. |
41
fb48207b6104
Fixes in thread's stack mangement. Dispatch events to applications using their UI event loop.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
40
diff
changeset
|
113 |
line printOn:aStream. |
fb48207b6104
Fixes in thread's stack mangement. Dispatch events to applications using their UI event loop.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
40
diff
changeset
|
114 |
aStream nextPutAll:')'. |
fb48207b6104
Fixes in thread's stack mangement. Dispatch events to applications using their UI event loop.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
40
diff
changeset
|
115 |
|
55
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
116 |
"Modified: / 27-02-2015 / 15:21:13 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
41
fb48207b6104
Fixes in thread's stack mangement. Dispatch events to applications using their UI event loop.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
40
diff
changeset
|
117 |
! ! |
fb48207b6104
Fixes in thread's stack mangement. Dispatch events to applications using their UI event loop.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
40
diff
changeset
|
118 |
|
71
016b716773e3
GDBFrame: fix for framew with empty variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
56
diff
changeset
|
119 |
!GDBFrame class methodsFor:'documentation'! |
016b716773e3
GDBFrame: fix for framew with empty variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
56
diff
changeset
|
120 |
|
016b716773e3
GDBFrame: fix for framew with empty variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
56
diff
changeset
|
121 |
version_HG |
016b716773e3
GDBFrame: fix for framew with empty variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
56
diff
changeset
|
122 |
|
016b716773e3
GDBFrame: fix for framew with empty variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
56
diff
changeset
|
123 |
^ '$Changeset: <not expanded> $' |
016b716773e3
GDBFrame: fix for framew with empty variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
56
diff
changeset
|
124 |
! ! |
016b716773e3
GDBFrame: fix for framew with empty variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
56
diff
changeset
|
125 |