author | Jan Vrany <jan.vrany@fit.cvut.cz> |
Sat, 28 Feb 2015 08:34:19 +0100 | |
changeset 56 | 20989de12cfb |
parent 55 | 437ee6413c74 |
child 71 | 016b716773e3 |
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 |
|
0ce76b671515
Some more support for stack frames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
12 |
!GDBFrame class methodsFor:'accessing - GDB value descriptors'! |
0ce76b671515
Some more support for stack frames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
13 |
|
45
deb908479a37
Code refactored to use Magritte to meta-describe GDB objects.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
43
diff
changeset
|
14 |
description |
deb908479a37
Code refactored to use Magritte to meta-describe GDB objects.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
43
diff
changeset
|
15 |
^ (super description) |
deb908479a37
Code refactored to use Magritte to meta-describe GDB objects.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
43
diff
changeset
|
16 |
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
|
17 |
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
|
18 |
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
|
19 |
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
|
20 |
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
|
21 |
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
|
22 |
define:#addr as:Integer; |
40
0ce76b671515
Some more support for stack frames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
23 |
yourself |
0ce76b671515
Some more support for stack frames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
24 |
|
0ce76b671515
Some more support for stack frames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
25 |
"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
|
26 |
! ! |
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 |
!GDBFrame methodsFor:'accessing'! |
0ce76b671515
Some more support for stack frames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
29 |
|
0ce76b671515
Some more support for stack frames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
30 |
addr |
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 |
! |
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 |
file |
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 |
! |
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 |
from |
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 |
! |
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 |
fullname |
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 |
! |
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 |
func |
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 |
! |
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 |
level |
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 |
! |
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 |
line |
0ce76b671515
Some more support for stack frames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
55 |
^ line |
43
22236b6d1d9a
Remove threads from thread group when threadgroup terminates.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
41
diff
changeset
|
56 |
! |
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 |
thread |
22236b6d1d9a
Remove threads from thread group when threadgroup terminates.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
41
diff
changeset
|
59 |
^ thread |
55
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
60 |
! |
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 |
variables |
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
63 |
self ensureIsValid. |
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
64 |
variables isNil ifTrue:[ |
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
65 |
variables := GDBTransientDataHolder debugger: debugger factory:[ |
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
66 |
| result | |
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
67 |
|
56
20989de12cfb
More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
55
diff
changeset
|
68 |
result := debugger send: (GDBMI_stack_list_variables new arguments: { '--thread' . thread id . '--frame' . level . '--simple-values' }). |
55
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
69 |
(result propertyAt: #variables) |
56
20989de12cfb
More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
55
diff
changeset
|
70 |
do:[ :each | each setFrame: self ]; |
55
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
71 |
yourself |
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
72 |
]. |
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 |
^ variables value |
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
75 |
|
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
76 |
"Created: / 27-02-2015 / 14:56:22 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
56
20989de12cfb
More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
55
diff
changeset
|
77 |
"Modified: / 28-02-2015 / 01:04:36 / 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
|
78 |
! ! |
0ce76b671515
Some more support for stack frames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
79 |
|
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
|
80 |
!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
|
81 |
|
55
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
82 |
displayString |
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
83 |
^ String streamContents: [ :aStream | |
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
84 |
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
|
85 |
aStream nextPutAll:' '. |
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
86 |
addr printOn:aStream. |
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
87 |
aStream nextPutAll:' '. |
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
88 |
func printOn:aStream. |
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
89 |
aStream nextPutAll:' ('. |
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
90 |
file printOn:aStream. |
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
91 |
aStream nextPutAll:', line: '. |
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
92 |
line printOn:aStream. |
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
93 |
aStream nextPutAll:')'. |
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
94 |
]. |
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 |
"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
|
97 |
! |
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
98 |
|
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
|
99 |
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
|
100 |
"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
|
101 |
|
55
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
102 |
super printOn: aStream. |
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
103 |
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
|
104 |
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
|
105 |
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
|
106 |
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
|
107 |
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
|
108 |
func printOn:aStream. |
55
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
109 |
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
|
110 |
file printOn:aStream. |
55
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
111 |
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
|
112 |
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
|
113 |
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
|
114 |
|
55
437ee6413c74
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
115 |
"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
|
116 |
! ! |
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 |