[1/1] Fix internal warning when "gdb -p xxx" (test)
Commit Message
We found that the issue can be found by regression test.
So make a patch to make attach.exp can test "gdb -p xxx".
Thanks,
Hui
2014-03-19 Hui Zhu <hui@codesourcery.com>
* gdb.base/attach.exp (do_command_attach_tests): New.
Comments
On 03/19/2014 04:03 AM, Hui Zhu wrote:
> + eval "spawn $GDB $INTERNAL_GDBFLAGS $GDBFLAGS --pid=$testpid"
> + expect {
> + -re "Reading symbols from.*$gdb_prompt $" {
> + pass "starting with --pid=$testpid"
Don't add the $testpid to the PASS/FAIL line, as it'll change between
testsuite runs, making gdb.sum diffs harder.
> + }
> + timeout { fail "(timeout) starting with --pid=$testpid" }
Instead of repeating the text, write:
set test "starting with --pid"
expect {
-re "Reading symbols from.*$gdb_prompt $" {
pass "$test"
}
timeout {
fail "$test (timeout)"
}
}
Otherwise OK.
Thanks!
@@ -384,6 +384,48 @@ proc do_call_attach_tests {} {
remote_exec build "kill -9 ${testpid}"
}
+proc do_command_attach_tests {} {
+ global gdb_prompt
+ global binfile
+ global verbose
+ global GDB
+ global INTERNAL_GDBFLAGS
+ global GDBFLAGS
+
+ if ![isnative] then {
+ unsupported "command attach test"
+ return 0
+ }
+
+ # Start the program running and then wait for a bit, to be sure
+ # that it can be attached to.
+
+ set testpid [eval exec $binfile &]
+ exec sleep 2
+ if { [istarget "*-*-cygwin*"] } {
+ # testpid is the Cygwin PID, GDB uses the Windows PID, which might be
+ # different due to the way fork/exec works.
+ set testpid [ exec ps -e | gawk "{ if (\$1 == $testpid) print \$4; }" ]
+ }
+
+ gdb_exit
+ if $verbose>1 then {
+ send_user "Spawning $GDB $INTERNAL_GDBFLAGS $GDBFLAGS --pid=$testpid\n"
+ }
+
+ eval "spawn $GDB $INTERNAL_GDBFLAGS $GDBFLAGS --pid=$testpid"
+ expect {
+ -re "Reading symbols from.*$gdb_prompt $" {
+ pass "starting with --pid=$testpid"
+ }
+ timeout { fail "(timeout) starting with --pid=$testpid" }
+ }
+
+ # Get rid of the process
+
+ remote_exec build "kill -9 ${testpid}"
+}
+
# Start with a fresh gdb
@@ -404,4 +446,8 @@ gdb_start
gdb_reinitialize_dir $srcdir/$subdir
do_call_attach_tests
+# Test "gdb --pid"
+
+do_command_attach_tests
+
return 0