This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[patch] Fix gdb.python/py-finish-breakpoint.exp new FAIL on x86_64-m32 [Re: [RFC] Python Finish Breakpoints]


On Tue, 20 Dec 2011 21:54:47 +0100, Kevin Pouget wrote:
> Great! I'll fix this last bits and commit it in the next few days

+Continuing.
+process 23029 is executing new program: /bin/echo
+warning: Selected architecture i386:x86-64 is not compatible with reported target architecture i386
+Architecture of file not recognized.
+(gdb) FAIL: gdb.python/py-finish-breakpoint.exp: catch out of scope after exec

On x86_64 with -m32 testcases compilation.

OK to check in this patch?


Thanks,
Jan


gdb/testsuite/
2011-12-24  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.python/py-finish-breakpoint.c (test_exec_exit): Change the
	parameter to self_exec, adjust the function.
	(main): Check for argv[1] "exit".  Use argv[0] for test_exec_exit.
	* gdb.python/py-finish-breakpoint.exp (set var self_exec = 0): New test.
	(set var do_exit = 0): Remove test.
	(newline at end of file): Add one.

--- a/gdb/testsuite/gdb.python/py-finish-breakpoint.c
+++ b/gdb/testsuite/gdb.python/py-finish-breakpoint.c
@@ -59,12 +59,12 @@ call_longjmp (jmp_buf *buf)
 }
 
 void
-test_exec_exit (int do_exit)
+test_exec_exit (const char *self_exec)
 {
-  if (do_exit)
+  if (self_exec == NULL)
     exit (0);
   else
-    execl ("/bin/echo", "echo", "-1", (char *)0);
+    execl (self_exec, self_exec, "exit", (char *)0);
 }
 
 int main (int argc, char *argv[])
@@ -74,6 +74,9 @@ int main (int argc, char *argv[])
   int bar = 42;
   int i, j;
 
+  if (argc == 2 && strcmp (argv[1], "exit") == 0)
+    return 0;
+
   do_nothing ();
 
   i = 0;
@@ -94,7 +97,7 @@ int main (int argc, char *argv[])
   else
     j += 1; /* after longjmp.  */
 
-  test_exec_exit (1);
+  test_exec_exit (argv[0]);
 
   return j; /* Break at end.  */
 }
--- a/gdb/testsuite/gdb.python/py-finish-breakpoint.exp
+++ b/gdb/testsuite/gdb.python/py-finish-breakpoint.exp
@@ -247,6 +247,7 @@ if ![runto "test_exec_exit"] then {
     return 0
 }
 
+gdb_test_no_output "set var self_exec = 0" "switch to exit() test"
 gdb_test "python SimpleFinishBreakpoint(gdb.newest_frame())" "SimpleFinishBreakpoint init" "set FinishBP after the exit()"
 gdb_test "continue" "SimpleFinishBreakpoint out of scope.*" "catch out of scope after exit"
 
@@ -259,7 +260,6 @@ if ![runto "test_exec_exit"] then {
     return 0
 }     
 
-gdb_test_no_output "set var do_exit = 0" "switch to execve() test"
 gdb_test "python SimpleFinishBreakpoint(gdb.newest_frame())" "SimpleFinishBreakpoint init" "set FinishBP after the exec"
 gdb_test "catch exec" "Catchpoint.*\(exec\).*" "catch exec"
-gdb_test "continue" "SimpleFinishBreakpoint out of scope.*" "catch out of scope after exec"
\ No newline at end of file
+gdb_test "continue" "SimpleFinishBreakpoint out of scope.*" "catch out of scope after exec"


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]