This is the mail archive of the gdb-prs@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]

[Bug server/18130] New: gdbserver event loop is terminated by exception


https://sourceware.org/bugzilla/show_bug.cgi?id=18130

            Bug ID: 18130
           Summary: gdbserver event loop is terminated by exception
           Product: gdb
           Version: HEAD
            Status: NEW
          Severity: normal
          Priority: P2
         Component: server
          Assignee: unassigned at sourceware dot org
          Reporter: qiyao at gcc dot gnu.org

On arm-linux, when I set hardware watchpoint on some address which doesn't meet
the kernel alignment requirement, like this,

(gdb) ./gdb -ex "target remote arm-linux:2346" -ex "b main" -ex "c" -ex "watch
*(buf.byte + 1 + 1)@1" -ex "stepi" -ex "quit"
gdb/testsuite/gdb.base/watchpoint-reuse-slot

the gdbserver is terminated like this:

Killing process(es): 9846
input_interrupt, count = 1 c = 36 ('$')
Can't determine port: Bad file descriptor.
Exiting

in gdbserver/linux-arm-low.c:arm_prepare_to_resume, hardware debugging
registers are updated by ptrace (PTRACE_SETHBPREGS), and if something is wrong,
exception is thrown out by perror_with_name.

      if (ptrace (PTRACE_SETHBPREGS, pid,
              (PTRACE_TYPE_ARG3) -((i << 1) + 2),
              &proc_info->wpts[i].control) < 0)
        perror_with_name ("Unexpected error setting watchpoint");
      }

The exception isn't caught and event loop is terminated as a result.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


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