gdb/
authorJan Kratochvil <jan.kratochvil@redhat.com>
Fri, 21 Sep 2012 18:53:15 +0000 (18:53 +0000)
committerJan Kratochvil <jan.kratochvil@redhat.com>
Fri, 21 Sep 2012 18:53:15 +0000 (18:53 +0000)
Fix disassemble without parameters in tailcall frame.
* cli/cli-cmds.c (disassemble_current_function): Use
get_frame_address_in_block.

gdb/testsuite/
Fix disassemble without parameters in tailcall frame.
* gdb.arch/amd64-entry-value.exp (down, disassemble): New tests.

gdb/ChangeLog
gdb/cli/cli-cmds.c
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.arch/amd64-entry-value.exp

index 7aba5e8b8b4921c9517247be3e7577b4c1c3e466..31454abcb50c106f7b7c3bc22ec69f82aeaf5c11 100644 (file)
@@ -1,3 +1,9 @@
+2012-09-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+       Fix disassemble without parameters in tailcall frame.
+       * cli/cli-cmds.c (disassemble_current_function): Use
+       get_frame_address_in_block.
+
 2012-09-21  Tom Tromey  <tromey@redhat.com>
 
        * c-typeprint.c (c_type_print_base) <TYPE_CODE_STRUCT,
index 2e988045d0f95d554b466eda3790b22418607d71..dcf53694f409db9db989fd752a34e2f8c6a20754 100644 (file)
@@ -1091,7 +1091,7 @@ disassemble_current_function (int flags)
 
   frame = get_selected_frame (_("No frame selected."));
   gdbarch = get_frame_arch (frame);
-  pc = get_frame_pc (frame);
+  pc = get_frame_address_in_block (frame);
   if (find_pc_partial_function (pc, &name, &low, &high) == 0)
     error (_("No function contains program counter for selected frame."));
 #if defined(TUI)
index 36f1c726d0ca33fe59e812ecb55c06c547ea4e73..5139cc706ff574dddccd12fcc7aae5c751ab2bf8 100644 (file)
@@ -1,3 +1,8 @@
+2012-09-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+       Fix disassemble without parameters in tailcall frame.
+       * gdb.arch/amd64-entry-value.exp (down, disassemble): New tests.
+
 2012-09-21  Andrew Burgess  <aburgess@broadcom.com>
 
        * gdb.dwarf2/dw2-op-out-param.S: New file.
index dd22d42f619347e2752a3d86b816a7ea998c0950..455b7a7331d525d46b1fdb591cba96d8e7d37874 100644 (file)
@@ -213,6 +213,25 @@ gdb_test {p $sp0 == $sp} " = true"
 gdb_test "frame 3" "\r\n#3 .*"
 gdb_test {p $sp0 + sizeof (void *) == $sp} " = true"
 
+# Test $pc adjustment which is now right after the function end.
+# Also verify the current PC indicator "=> " is not displayed anywhere.
+gdb_test "down" "\r\n#2 .*"
+set test "disassemble"
+gdb_test_multiple $test $test {
+    -re "^$test\r\n" {
+       exp_continue
+    }
+    -re "^Dump of assembler code for function b\\(int, double\\):\r\n" {
+       exp_continue
+    }
+    -re "^   0x\[^\r\n\]*\r\n" {
+       exp_continue
+    }
+    -re "^End of assembler dump\\.\r\n$gdb_prompt $" {
+       pass $test
+    }
+}
+
 
 # Test partial-ambiguous virtual tail call frames chain.