Next: Modula-2, Previous: Pascal, Up: Supported Languages
gdb supports the Rust Programming Language. Type- and value-printing, and expression parsing, are reasonably complete. However, there are a few peculiarities and holes to be aware of.
extern crate
behaves.
That is, if gdb is stopped at a breakpoint in a function in
crate `A', module `B', then break B::f
will attempt
to set a breakpoint in a function named `f' in a crate named
`B'.
As a consequence of this approach, linespecs also cannot refer to items using `self::' or `super::'.
print ::x::y
will try to find the symbol
`K::x::y'.
However, since it is useful to be able to refer to other crates when
debugging, gdb provides the extern
extension to
circumvent this. To use the extension, just put extern
before
a path expression to refer to the otherwise unavailable “global”
scope.
In the above example, if you wanted to refer to the symbol `y' in
the crate `x', you would use print extern x::y
.
if
or match
, or lambda expressions.
Drop
trait. Objects that may be created by the evaluator will
never be destroyed.
crate::f<u32>
, where the parser would require
crate::f::<u32>
.
Self
is not available.
use
statements are not available, so some names may not be
available in the crate.