Uploaded image for project: 'Core ReactOS'
  1. Core ReactOS
  2. CORE-5698

kdbg: support for hardware breakpoints not fully compliant with specification

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • Minor
    • None
    • NTCore
    • None
    • Operating System: ReactOS
      Platform: x86 Hardware

    Description

      KGDB's support of hardware breakpoints does not seem to fully match the hardware definition.

      According to Wikipedia's info on the debug registers (http://en.wikipedia.org/wiki/X86_debug_register):
      "Bits 16-17 (DR0), 20-21 (DR1), 24-25 (DR2), 28-29 (DR3), define when breakpoints trigger. Each breakpoint has a two-bit entry that specifies whether they break on
      execution (00b), data write (01b), data read or write (11b). 10b is defined to mean break on IO read or write but no hardware supports it."

      ==> KDBG has a fourth option "read" which is not in the above list. It maps to 11b just like "read-write". Since it's redundant, it should be removed. The other option (10b) which is not supported in hardware of course won't need to be supported by KGDB either.

      Continuing with Wikipedia:
      "Bits 18-19 (DR0), 22-23 (DR1), 26-27 (DR2), 30-31 (DR3), define how large area of memory is watched by breakpoints. Again each breakpoint has a two-bit entry that specifies whether they watch one (00b), two (01b), eight (10b) or four (11b) bytes."

      ==> KGDB currently supports byte, word and dword, but qword should also be supported (10b).

      Attachments

        Activity

          People

            bug zilla Bug Zilla
            hackdog hackdog
            Votes:
            1 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: