Avoid producing broken non-native core files
authorMaciej W. Rozycki <macro@codesourcery.com>
Thu, 24 Oct 2013 19:37:49 +0000 (20:37 +0100)
committerTom Tromey <tromey@sourceware.org>
Fri, 25 Oct 2013 14:03:00 +0000 (14:03 +0000)
gdb/
* linux-tdep.c (linux_corefile_thread_callback): Propagate any
failure from register information collection.

gdb/testsuite/
* lib/gdb.exp (gdb_gcore_cmd): Also handle a "Target does not
support core file generation" reply.

gdb/ChangeLog
gdb/linux-tdep.c
gdb/testsuite/ChangeLog
gdb/testsuite/lib/gdb.exp

index 6466028..b0b6ff8 100644 (file)
@@ -1,5 +1,10 @@
 2013-10-24  Maciej W. Rozycki  <macro@codesourcery.com>
 
+       * linux-tdep.c (linux_corefile_thread_callback): Propagate any
+       failure from register information collection.
+
+2013-10-24  Maciej W. Rozycki  <macro@codesourcery.com>
+
        * linux-tdep.c (linux_corefile_thread_data): Remove `num_notes'
        member.
        (linux_corefile_thread_callback): Update accordingly.
index 5bca076..304fe09 100644 (file)
@@ -1209,14 +1209,15 @@ linux_corefile_thread_callback (struct thread_info *info, void *data)
                                       args->note_data, args->note_size,
                                       args->stop_signal);
 
-      if (siginfo_data != NULL)
-       {
+      /* Don't return anything if we got no register information above,
+         such a core file is useless.  */
+      if (args->note_data != NULL)
+       if (siginfo_data != NULL)
          args->note_data = elfcore_write_note (args->obfd,
                                                args->note_data,
                                                args->note_size,
                                                "CORE", NT_SIGINFO,
                                                siginfo_data, siginfo_size);
-       }
 
       do_cleanups (old_chain);
     }
index 1edfc93..003208d 100644 (file)
@@ -1,3 +1,8 @@
+2013-10-24  Maciej W. Rozycki  <macro@codesourcery.com>
+
+       * lib/gdb.exp (gdb_gcore_cmd): Also handle a "Target does not
+       support core file generation" reply.
+
 2013-10-21  Jose E. Marchesi  <jose.marchesi@oracle.com>
 
        PR gdb/15986
index bde4e48..e4a6134 100644 (file)
@@ -3183,7 +3183,7 @@ proc gdb_gcore_cmd {core test} {
            verbose -log "'gcore' command undefined in gdb_gcore_cmd"
        }
 
-       -re "Can't create a corefile\[\r\n\]+$gdb_prompt $" {
+       -re "(?:Can't create a corefile|Target does not support core file generation\\.)\[\r\n\]+$gdb_prompt $" {
            unsupported $test
        }
     }