From 14278e1fdbe045df184d6dd546ff6a1e9e3c3797 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Thu, 3 Aug 2017 16:53:22 -0600 Subject: Change gdb_realpath to return a unique_xmalloc_ptr This changes gdb_realpath to return a unique_xmalloc_ptr and fixes up the callers. This allows removing some cleanups. This change by itself caused xfullpath.exp to fail; and attempting to fix that ran into various problems (like .get() being optimized out); so this patch also rewrites xfullpath.exp to be a C++ selftest instead. ChangeLog 2017-08-22 Tom Tromey * exec.c (exec_file_attach): Update. * linux-thread-db.c (try_thread_db_load): Update. * guile/scm-safe-call.c (gdbscm_safe_source_script): Update. * utils.c (gdb_realpath): Change return type. (gdb_realpath_keepfile): Update. (gdb_realpath_check_trailer, gdb_realpath_tests): New functions. (_initialize_utils): Register the new self test. * source.c (openp): Update. (find_and_open_source): Update. * nto-tdep.c (nto_find_and_open_solib): Update. * main.c (set_gdb_data_directory): Update. (captured_main_1): Update. * dwarf2read.c (dwarf2_get_dwz_file): Update (dw2_map_symbol_filenames): Update. * auto-load.c (auto_load_safe_path_vec_update): Update. (filename_is_in_auto_load_safe_path_vec): Change type of "filename_realp". (auto_load_objfile_script): Update. (file_is_auto_load_safe): Update. Use std::string. * utils.h (gdb_realpath): Return a gdb::unique_xmalloc_ptr. testsuite/ChangeLog 2017-08-22 Tom Tromey * gdb.gdb/xfullpath.exp: Remove. --- gdb/main.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'gdb/main.c') diff --git a/gdb/main.c b/gdb/main.c index 886e17f..a0646ed 100644 --- a/gdb/main.c +++ b/gdb/main.c @@ -120,7 +120,7 @@ set_gdb_data_directory (const char *new_datadir) warning (_("%s is not a directory."), new_datadir); xfree (gdb_datadir); - gdb_datadir = gdb_realpath (new_datadir); + gdb_datadir = gdb_realpath (new_datadir).release (); /* gdb_realpath won't return an absolute path if the path doesn't exist, but we still want to record an absolute path here. If the user entered @@ -1083,7 +1083,8 @@ captured_main_1 (struct captured_main_args *context) the same as the $HOME/.gdbinit file (it should exist, also). */ if (local_gdbinit) { - auto_load_local_gdbinit_pathname = gdb_realpath (local_gdbinit); + auto_load_local_gdbinit_pathname + = gdb_realpath (local_gdbinit).release (); if (!inhibit_gdbinit && auto_load_local_gdbinit && file_is_auto_load_safe (local_gdbinit, -- cgit v1.1