author | Jan Vrany <jan.vrany@fit.cvut.cz> |
Thu, 07 Feb 2019 15:18:41 +0000 | |
changeset 175 | a04e1a36e888 |
parent 110 | 727d8a9e6d5d |
permissions | -rw-r--r-- |
101
d8fee2af20b2
Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
1 |
#include <stdio.h> |
d8fee2af20b2
Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
2 |
|
d8fee2af20b2
Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
3 |
typedef struct _data { |
d8fee2af20b2
Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
4 |
int i; |
d8fee2af20b2
Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
5 |
char c[20]; |
d8fee2af20b2
Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
6 |
union { |
d8fee2af20b2
Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
7 |
struct { |
d8fee2af20b2
Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
8 |
int a; |
d8fee2af20b2
Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
9 |
int b; |
d8fee2af20b2
Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
10 |
} as_i; |
d8fee2af20b2
Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
11 |
struct { |
d8fee2af20b2
Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
12 |
float f; |
d8fee2af20b2
Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
13 |
float g; |
d8fee2af20b2
Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
14 |
} as_f; |
d8fee2af20b2
Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
15 |
}; |
d8fee2af20b2
Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
16 |
} data; |
d8fee2af20b2
Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
17 |
|
104
4add55336dfe
Variable objects: automagically update values whenever changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
101
diff
changeset
|
18 |
void set_data_i(data *d, int i) { |
4add55336dfe
Variable objects: automagically update values whenever changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
101
diff
changeset
|
19 |
d->i = i; |
4add55336dfe
Variable objects: automagically update values whenever changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
101
diff
changeset
|
20 |
} |
4add55336dfe
Variable objects: automagically update values whenever changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
101
diff
changeset
|
21 |
|
4add55336dfe
Variable objects: automagically update values whenever changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
101
diff
changeset
|
22 |
void set_data_f(data *d, float f) { |
4add55336dfe
Variable objects: automagically update values whenever changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
101
diff
changeset
|
23 |
d->as_f.f = f; |
4add55336dfe
Variable objects: automagically update values whenever changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
101
diff
changeset
|
24 |
} |
4add55336dfe
Variable objects: automagically update values whenever changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
101
diff
changeset
|
25 |
|
4add55336dfe
Variable objects: automagically update values whenever changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
101
diff
changeset
|
26 |
|
101
d8fee2af20b2
Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
27 |
int main(int argc, char **argv) { |
d8fee2af20b2
Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
28 |
data d = { |
d8fee2af20b2
Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
29 |
1, |
d8fee2af20b2
Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
30 |
"Hello World!", |
d8fee2af20b2
Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
31 |
{ |
d8fee2af20b2
Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
32 |
{ |
d8fee2af20b2
Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
33 |
(int)10, |
d8fee2af20b2
Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
34 |
(int)20 |
d8fee2af20b2
Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
35 |
} |
d8fee2af20b2
Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
36 |
} |
d8fee2af20b2
Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
37 |
}; |
104
4add55336dfe
Variable objects: automagically update values whenever changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
101
diff
changeset
|
38 |
set_data_i(&d, 12); |
4add55336dfe
Variable objects: automagically update values whenever changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
101
diff
changeset
|
39 |
set_data_f(&d, 0.1); |
106
12c96f17fc53
Variable objects: invalidate variable object when thread on inferior terminates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
104
diff
changeset
|
40 |
set_data_i(&d, 24); |
101
d8fee2af20b2
Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
41 |
return d.i; |
d8fee2af20b2
Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
42 |
} |