rust-lldb: fix crash when printing empty string

This commit is contained in:
Andy Russell 2019-02-21 20:21:50 -05:00
parent 7f19f161f2
commit 9e5def9616
No known key found for this signature in database
GPG Key ID: BE2221033EDBC374
2 changed files with 37 additions and 0 deletions

View File

@ -290,6 +290,8 @@ def print_array_of_values(array_name, data_ptr_val, length, internal_dict):
def read_utf8_string(ptr_val, byte_count):
if byte_count == 0:
return '""'
error = lldb.SBError()
process = ptr_val.get_wrapped_value().GetProcess()
data = process.ReadMemory(ptr_val.as_integer(), byte_count, error)

View File

@ -0,0 +1,35 @@
// ignore-windows failing on win32 bot
// ignore-android: FIXME(#10381)
// compile-flags:-g
// min-gdb-version: 7.7
// min-lldb-version: 310
// === GDB TESTS ===================================================================================
// gdb-command: run
// gdb-command: print empty_string
// gdb-check:$1 = ""
// gdb-command: print empty_str
// gdb-check:$2 = ""
// === LLDB TESTS ==================================================================================
// lldb-command: run
// lldb-command: fr v empty_string
// lldb-check:[...]empty_string = ""
// lldb-command: fr v empty_str
// lldb-check:[...]empty_str = ""
fn main() {
let empty_string = String::new();
let empty_str = "";
zzz(); // #break
}
fn zzz() {}