[dylan] LLDB integration
Bruce Mitchener <[email protected]> Wed, 25 Jun 2014 00:08:42 +0700
| Newsgroups | gmane.comp.lang.dylan.gwydion.devel |
|---|---|
| Message-ID | <CA+esKjPoh4+idiNQRtH=bZZ2GqMjxZMtyTzbXMo+cbbq2oYKXA@mail.gmail.com> |
--===============0262042479==
Content-Type: multipart/alternative; boundary=f46d043c8046074ab204fc9803c9
--f46d043c8046074ab204fc9803c9
Content-Type: text/plain; charset=UTF-8
As some of you know, I've been working on providing support for Dylan when
debugging with LLDB using the LLDB Python API.
As a sneak peak at what is possible, check out the display of local
variables & arguments with their slots to a depth of 2 below.
This and more is coming soon to Open Dylan's master branch ...
- Bruce
(lldb) frame variable -D 2
(dylan_value) mepargs_ = 0xbfffd4d0 {<simple-object-vector>: size: 2} {
[0] = 0x00000009 {<integer>: 2}
[1] = 0x02862eb0 {<byte-char-file-stream>} {
[outer-stream] = 0x02862eb0 {<byte-char-file-stream>}
[private-stream-element-type-value] = 0x001884d8 {<class>}
[private-stream-direction-value] = 0x00000005 {<integer>: 1}
[private-stream-lock-value] = 0x00188374 {<boolean>: False}
[sequence-type] = 0x028b6000 {<buffer>}
[to-element-mapper] = 0x00188374 {<boolean>: False}
[from-element-mapper] = 0x028b6000 {<buffer>}
[to-sequence-mapper] = 0x00000001 {<integer>: 0}
[from-sequence-mapper] = 0x00000001 {<integer>: 0}
[initial-position] = 0x00000001 {<integer>: 0}
[current-position] = 0x00000001 {<integer>: 0}
[final-position] = 0x028a0260 {<native-file-accessor>}
[actual-stream-input-buffer] = 0x001889b8 {<class>}
[actual-stream-output-buffer] = 0x00544400 {<simple-method>}
[stream-shared-buffer] = 0x00544414 {<simple-method>}
[stream-locator] = 0x0054af98 {<simple-closure-method>}
[accessor] = 0x0054afb0 {<simple-closure-method>}
}
}
(dylan_value) e_ = 0x0018a284 {<absent-engine-node>} {
[properties] = 0x00000001 {<integer>: 0}
[engine-node-callback] = 0x0003a200 {}
[engine-node-entry-point] = 0x001620d0 {}
}
(dylan_value) parent_ = 0x00547ac4 {<incremental-generic-function>:
read-line} {
[xep] = 0x00161340 {}
[function-signature] = 0x00547cf4 {<keyword-signature+values>} {
[signature-properties] = 0x02040805 {<integer>: 8454657}
[signature-required] = 0x00548150 {<simple-object-vector>: size: 1}
[signature-keys] = 0x005480c4 {<simple-object-vector>: size: 1}
[signature-key-types] = 0x00188e18 {<simple-object-vector>: size: 256}
[signature-values] = 0x005482b0 {<simple-object-vector>: size: 2}
}
[%gf-cache] = 0x00000001 {<integer>: 0}
[debug-name] = 0x005482dc {<byte-string>: size: 9, data: read-line} {
[string-element] = 0x00000025 {<integer>: 9}
}
[generic-function-methods] = 0x00547d0c {<pair>} {
[head] = 0x005467bc {<keyword-method>}
[tail] = 0x005482f0 {<pair>}
}
[discriminator] = 0x02aebbe0 {<monomorphic-by-class-discriminator>} {
[properties] = 0x010100a9 {<integer>: 4210730}
[engine-node-callback] = 0x0018b918 {<unbound>}
[engine-node-entry-point] = 0x00166080 {}
[monomorphic-by-class-discriminator-key] = 0x0054ac1d {<integer>:
1387271}
[monomorphic-by-class-discriminator-next] = 0x02aebc00
{<implicit-keyed-single-method-engine-node>}
}
[incremental-gf-module] = 0x0053fba0 {<module>} {
[namespace-name] = 0x0053fbf4 {<byte-string>: size: 7, data: streams}
[home-library] = 0x0053fbb0 {<library>}
}
[incremental-gf-domain-info] = 0x00188374 {<boolean>: False}
[incremental-gf-method-libraries] = 0x00188394 {<simple-object-vector>:
size: 0}
[incremental-gf-properties] = 0x00000019 {<integer>: 6}
}
(dylan_value) T3 = 0x00000000 {}
--f46d043c8046074ab204fc9803c9
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr">As some of you know, I've been working on providing su=
pport for Dylan when debugging with LLDB using the LLDB Python API.<div><br=
></div><div>As a sneak peak at what is possible, check out the display of l=
ocal variables & arguments with their slots to a depth of 2 below.</div=
>
<div><br></div><div>This and more is coming soon to Open Dylan's master=
branch ...</div><div><br></div><div>=C2=A0- Bruce</div><div><br></div><div=
><div>(lldb) frame variable -D 2</div><div>(dylan_value) mepargs_ =3D 0xbff=
fd4d0 {<simple-object-vector>: size: 2} {</div>
<div>=C2=A0 [0] =3D 0x00000009 {<integer>: 2}</div><div>=C2=A0 [1] =
=3D 0x02862eb0 {<byte-char-file-stream>} {</div><div>=C2=A0 =C2=A0 [o=
uter-stream] =3D 0x02862eb0 {<byte-char-file-stream>}</div><div>=C2=
=A0 =C2=A0 [private-stream-element-type-value] =3D 0x001884d8 {<class>=
;}</div>
<div>=C2=A0 =C2=A0 [private-stream-direction-value] =3D 0x00000005 {<int=
eger>: 1}</div><div>=C2=A0 =C2=A0 [private-stream-lock-value] =3D 0x0018=
8374 {<boolean>: False}</div><div>=C2=A0 =C2=A0 [sequence-type] =3D 0=
x028b6000 {<buffer>}</div>
<div>=C2=A0 =C2=A0 [to-element-mapper] =3D 0x00188374 {<boolean>: Fal=
se}</div><div>=C2=A0 =C2=A0 [from-element-mapper] =3D 0x028b6000 {<buffe=
r>}</div><div>=C2=A0 =C2=A0 [to-sequence-mapper] =3D 0x00000001 {<int=
eger>: 0}</div><div>=C2=A0 =C2=A0 [from-sequence-mapper] =3D 0x00000001 =
{<integer>: 0}</div>
<div>=C2=A0 =C2=A0 [initial-position] =3D 0x00000001 {<integer>: 0}</=
div><div>=C2=A0 =C2=A0 [current-position] =3D 0x00000001 {<integer>: =
0}</div><div>=C2=A0 =C2=A0 [final-position] =3D 0x028a0260 {<native-file=
-accessor>}</div><div>=C2=A0 =C2=A0 [actual-stream-input-buffer] =3D 0x0=
01889b8 {<class>}</div>
<div>=C2=A0 =C2=A0 [actual-stream-output-buffer] =3D 0x00544400 {<simple=
-method>}</div><div>=C2=A0 =C2=A0 [stream-shared-buffer] =3D 0x00544414 =
{<simple-method>}</div><div>=C2=A0 =C2=A0 [stream-locator] =3D 0x0054=
af98 {<simple-closure-method>}</div>
<div>=C2=A0 =C2=A0 [accessor] =3D 0x0054afb0 {<simple-closure-method>=
}</div><div>=C2=A0 }</div><div>}</div><div>(dylan_value) e_ =3D 0x0018a284 =
{<absent-engine-node>} {</div><div>=C2=A0 [properties] =3D 0x00000001=
{<integer>: 0}</div>
<div>=C2=A0 [engine-node-callback] =3D 0x0003a200 {}</div><div>=C2=A0 [engi=
ne-node-entry-point] =3D 0x001620d0 {}</div><div>}</div><div>(dylan_value) =
parent_ =3D 0x00547ac4 {<incremental-generic-function>: read-line} {<=
/div><div>=C2=A0 [xep] =3D 0x00161340 {}</div>
<div>=C2=A0 [function-signature] =3D 0x00547cf4 {<keyword-signature+valu=
es>} {</div><div>=C2=A0 =C2=A0 [signature-properties] =3D 0x02040805 {&l=
t;integer>: 8454657}</div><div>=C2=A0 =C2=A0 [signature-required] =3D 0x=
00548150 {<simple-object-vector>: size: 1}</div>
<div>=C2=A0 =C2=A0 [signature-keys] =3D 0x005480c4 {<simple-object-vecto=
r>: size: 1}</div><div>=C2=A0 =C2=A0 [signature-key-types] =3D 0x00188e1=
8 {<simple-object-vector>: size: 256}</div><div>=C2=A0 =C2=A0 [signat=
ure-values] =3D 0x005482b0 {<simple-object-vector>: size: 2}</div>
<div>=C2=A0 }</div><div>=C2=A0 [%gf-cache] =3D 0x00000001 {<integer>:=
0}</div><div>=C2=A0 [debug-name] =3D 0x005482dc {<byte-string>: size=
: 9, data: read-line} {</div><div>=C2=A0 =C2=A0 [string-element] =3D 0x0000=
0025 {<integer>: 9}</div>
<div>=C2=A0 }</div><div>=C2=A0 [generic-function-methods] =3D 0x00547d0c {&=
lt;pair>} {</div><div>=C2=A0 =C2=A0 [head] =3D 0x005467bc {<keyword-m=
ethod>}</div><div>=C2=A0 =C2=A0 [tail] =3D 0x005482f0 {<pair>}</di=
v><div>=C2=A0 }</div><div>=C2=A0 [discriminator] =3D 0x02aebbe0 {<monomo=
rphic-by-class-discriminator>} {</div>
<div>=C2=A0 =C2=A0 [properties] =3D 0x010100a9 {<integer>: 4210730}</=
div><div>=C2=A0 =C2=A0 [engine-node-callback] =3D 0x0018b918 {<unbound&g=
t;}</div><div>=C2=A0 =C2=A0 [engine-node-entry-point] =3D 0x00166080 {}</di=
v><div>=C2=A0 =C2=A0 [monomorphic-by-class-discriminator-key] =3D 0x0054ac1=
d {<integer>: 1387271}</div>
<div>=C2=A0 =C2=A0 [monomorphic-by-class-discriminator-next] =3D 0x02aebc00=
{<implicit-keyed-single-method-engine-node>}</div><div>=C2=A0 }</div=
><div>=C2=A0 [incremental-gf-module] =3D 0x0053fba0 {<module>} {</div=
><div>=C2=A0 =C2=A0 [namespace-name] =3D 0x0053fbf4 {<byte-string>: s=
ize: 7, data: streams}</div>
<div>=C2=A0 =C2=A0 [home-library] =3D 0x0053fbb0 {<library>}</div><di=
v>=C2=A0 }</div><div>=C2=A0 [incremental-gf-domain-info] =3D 0x00188374 {&l=
t;boolean>: False}</div><div>=C2=A0 [incremental-gf-method-libraries] =
=3D 0x00188394 {<simple-object-vector>: size: 0}</div>
<div>=C2=A0 [incremental-gf-properties] =3D 0x00000019 {<integer>: 6}=
</div><div>}</div><div>(dylan_value) T3 =3D 0x00000000 {}</div></div><div><=
br></div></div>
--f46d043c8046074ab204fc9803c9--
--===============0262042479==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
_______________________________________________
hackers mailing list
[email protected]
https://lists.opendylan.org/mailman/listinfo/hackers
--===============0262042479==--