Rust-lldb not printing out local variables


#1

Hi everyone, I am trying to debug my program using rust-lldb on my Mac. For some reason, when I stop at a breakpoint and try to print out a variable, or, for that matter, all of the stack variables, nothing is returned.

Debug symbols are in the executable (as I can see the source in rust-lldb). The attached screenshot is an example of what I am seeing. Any reason why this could be happening?

Thanks very much!


Rust debugger's question
#2

Any suggestions on what could be happening? I’m using Rust 1.5 and lldb built on 12/1/15.


#3

Is there any change in behaviour if you use plain lldb instead of the rust-lldb wrapper?


#4

Huh for some reason now, using the “list” command in lldb or rust-lldb doesn’t display anything anymore. It seems it’s not loading any symbols anymore. I am building my program using cargo build and then running the debugger as [rust-]lldb target/debug/(executable_name) – (args) Is there a new option I have to include to get it to include symbols? I’m not using the --release option…

The program still runs fine when using the run command from lldb. Of note, a separate installation of gdb on my Mac seems to somewhat work with my program. It can load the symbols from the program but it can’t load any library symbols. I’d like to avoid using gdb if I can…


#5

Also of note, lldb works fine with C/C++ programs…


#6

Same here - I’m using LLDB shipped with Xcode 7.3 on Mac OS X 10.11.4 (latest at the point of writing). The ‘frame variable’ debugger command shows nothing, nor does ‘print’ with an explict symbol name. It doesn’t matter if I start LLDB directly or via the ‘rust-lldb’ script. GDB installed via Homebrew works in that it correctly lists locals for a stack frame and shows their values, pretty-printed or otherwise.

Using Linux virtual machines, I’ve confirmed that both LLDB (3.4 on Ubuntu 14.04 LTS, 3.7 on Fedora 23 Workstation) and GDB work (see above for definition of ‘work’) on Linux.

I’ve yet to try using a different LLDB version on a Mac - I’d rather avoid that, given that the one shipped by Apple seems recent. If I end up doing that, I’ll post the exact version numbers used.

And the LLDB version shipped by Apple is lldb-350.0.21.3. I’ve built the latest LLDB from source - its version number is lldb-360.99.0 - and it doesn’t work either. I’m currently debugging the latter with the former, as this is not necessarily a Rust problem, it may be actually be specific to LLDB on Mac OS X with non-clang languages.


#7

I’m seeing the same issue on Mac with all the same versions as @cynic.


#8

BTW here’s a tracking issue https://github.com/rust-lang/rust/issues/32520.


#9

It turned out to be a problem with LLDB 3.8+ (Apple Xcode builds use different version numbers it seems, 350 being 3.8 and 360 being 3.9). A more recent issue is here: https://github.com/rust-lang/rust/issues/33062