[rust-dev] Debugging (rust 0.9) in Ubuntu via GDB

Michael Woerister michaelwoerister at posteo.de
Sun Jan 12 23:42:53 PST 2014


Hi,
the `break` command can be a bit particular where function names are 
concerned, especially when namespaces and generics are involved. The 
correct full name of the shuffle method would be something like 
`std::rand::TaskRng::shuffle<int>` (there is a seperate function for 
every set of concrete type parameters, so `shuffle<int>` would be 
different from `shuffle<f32>`).

My recommendation here is to either
* set the breakpoint using line numbers: break prog.rs:7
* or use the `rbreak` command which takes a regular expression as 
argument, that is, `rbreak shuffle` will match any function containing 
the string "shuffle" in its name.

Don't be shy to ask further questions if you have any :)

-Michael

On 13.01.2014 00:13, Artella Coding wrote:
> Suppose I have the following program :
>
> **********************************************
> //prog1.rs <http://prog1.rs>
> use std::rand::{task_rng, Rng};
> fn main() {
>     let names = ["Alice", "Bob", "Carol"];
>     for name in names.iter() {
>         let v = task_rng().shuffle(~[1,2,3]);
>         for num in v.iter() {
>             println!("{:s} says: {:d}", *name, *num);
>         }
>     }
> }
> **********************************************
>
> In previous versions of rust it was possible to put
> a breakpoint on "shuffle"  e.g.
>
> One would first compile via :
>
> rustc -Z debug-info prog1.rs <http://prog1.rs>
>
> and then one could proceed to put a breakpoint on "shuffle" :
>
> gdb ./prog1
> (gdb) break shuffle
> (gdb) run
>
> However now it doesn't seem possible to put a breakpoint on shuffle. 
> Why is this? Thanks.
>
>
>
> _______________________________________________
> Rust-dev mailing list
> Rust-dev at mozilla.org
> https://mail.mozilla.org/listinfo/rust-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/rust-dev/attachments/20140113/a6fcdc28/attachment.html>


More information about the Rust-dev mailing list