Skip to content

Commit acc2bca

Browse files
authored
Rollup merge of rust-lang#58629 - euclio:debug-empty-str, r=alexcrichton
rust-lldb: fix crash when printing empty string Fixes rust-lang#52185. ~Re-enables the pretty-std debuginfo test and tweaks the test as necessary to get it to pass again. This reveals that lldb's formatting of enums is broken (rust-lang#58492). I also removed the emoji from the test because I couldn't get the docker image's gdb to print the emoji, just octal escapes (https://github.com/rust-lang/rust/pull/53154/files#r208263904).~
2 parents 0f6636b + 932fe17 commit acc2bca

File tree

2 files changed

+36
-0
lines changed

2 files changed

+36
-0
lines changed

src/etc/lldb_rust_formatters.py

+2
Original file line numberDiff line numberDiff line change
@@ -290,6 +290,8 @@ def render_element(i):
290290

291291

292292
def read_utf8_string(ptr_val, byte_count):
293+
if byte_count == 0:
294+
return '""'
293295
error = lldb.SBError()
294296
process = ptr_val.get_wrapped_value().GetProcess()
295297
data = process.ReadMemory(ptr_val.as_integer(), byte_count, error)

src/test/debuginfo/empty-string.rs

+34
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
// ignore-windows failing on win32 bot
2+
// compile-flags:-g
3+
// min-gdb-version: 7.7
4+
// min-lldb-version: 310
5+
6+
// === GDB TESTS ===================================================================================
7+
8+
// gdb-command: run
9+
10+
// gdb-command: print empty_string
11+
// gdb-check:$1 = ""
12+
13+
// gdb-command: print empty_str
14+
// gdb-check:$2 = ""
15+
16+
// === LLDB TESTS ==================================================================================
17+
18+
// lldb-command: run
19+
20+
// lldb-command: fr v empty_string
21+
// lldb-check:[...]empty_string = ""
22+
23+
// lldb-command: fr v empty_str
24+
// lldb-check:[...]empty_str = ""
25+
26+
fn main() {
27+
let empty_string = String::new();
28+
29+
let empty_str = "";
30+
31+
zzz(); // #break
32+
}
33+
34+
fn zzz() {}

0 commit comments

Comments
 (0)