)]}'
{
  "commit": "6bafc8451e070be83664e4b4c19ae4f85ccd863b",
  "tree": "f749b63dbaa8479bb61f56a6cc58e138e1517dee",
  "parents": [
    "7928d571c5f742a10d98b0de0ef85284c5959845"
  ],
  "author": {
    "name": "Hannes Domani",
    "email": "ssbssa@yahoo.de",
    "time": "Fri Jan 17 15:50:58 2020 +0100"
  },
  "committer": {
    "name": "Hannes Domani",
    "email": "ssbssa@yahoo.de",
    "time": "Sun Feb 09 12:15:50 2020 +0100"
  },
  "message": "Use enums for human-readable exception information.\n\nChanges to $_siginfo type to this:\n\n(gdb) pt $_siginfo\ntype \u003d struct EXCEPTION_RECORD {\n    enum ExceptionCode ExceptionCode;\n    DWORD ExceptionFlags;\n    struct EXCEPTION_RECORD *ExceptionRecord;\n    PVOID ExceptionAddress;\n    DWORD NumberParameters;\n    union {\n        ULONG_PTR ExceptionInformation[15];\n        struct {...} AccessViolationInformation;\n    };\n}\n(gdb) pt $_siginfo.ExceptionCode\ntype \u003d enum ExceptionCode {FATAL_APP_EXIT \u003d 1073741845,\n    DBG_CONTROL_C \u003d 1073807365, DBG_CONTROL_BREAK \u003d 1073807368,\n    DATATYPE_MISALIGNMENT \u003d 2147483650, BREAKPOINT, SINGLE_STEP,\n    ACCESS_VIOLATION \u003d 3221225477, IN_PAGE_ERROR,\n    ILLEGAL_INSTRUCTION \u003d 3221225501, NONCONTINUABLE_EXCEPTION \u003d 3221225509,\n    INVALID_DISPOSITION, ARRAY_BOUNDS_EXCEEDED \u003d 3221225612,\n    FLOAT_DENORMAL_OPERAND, FLOAT_DIVIDE_BY_ZERO, FLOAT_INEXACT_RESULT,\n    FLOAT_INVALID_OPERATION, FLOAT_OVERFLOW, FLOAT_STACK_CHECK,\n    FLOAT_UNDERFLOW, INTEGER_DIVIDE_BY_ZERO, INTEGER_OVERFLOW,\n    PRIV_INSTRUCTION, STACK_OVERFLOW \u003d 3221225725, FAST_FAIL \u003d 3221226505}\n(gdb) pt $_siginfo.AccessViolationInformation\ntype \u003d struct {\n    enum ViolationType Type;\n    PVOID Address;\n}\n(gdb) pt $_siginfo.AccessViolationInformation.Type\ntype \u003d enum ViolationType {READ_ACCESS_VIOLATION, WRITE_ACCESS_VIOLATION,\n    DATA_EXECUTION_PREVENTION_VIOLATION \u003d 8}\n\nWhich makes it easier to understand the reason of the exception:\n\n(gdb) p $_siginfo\n$1 \u003d {\n  ExceptionCode \u003d ACCESS_VIOLATION,\n  ExceptionFlags \u003d 0,\n  ExceptionRecord \u003d 0x0,\n  ExceptionAddress \u003d 0x401632 \u003cmain+18\u003e,\n  NumberParameters \u003d 2,\n  {\n    ExceptionInformation \u003d {1, 291, 0 \u003crepeats 13 times\u003e},\n    AccessViolationInformation \u003d {\n      Type \u003d WRITE_ACCESS_VIOLATION,\n      Address \u003d 0x123\n    }\n  }\n}\n\ngdb/ChangeLog:\n\n2020-02-09  Hannes Domani  \u003cssbssa@yahoo.de\u003e\n\n\t* windows-tdep.c (struct enum_value_name): New struct.\n\t(create_enum): New function.\n\t(windows_get_siginfo_type): Create and use enum types.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6de07a90c157f167bdec4ea78beaf90631b707d7",
      "old_mode": 33188,
      "old_path": "gdb/ChangeLog",
      "new_id": "5f40634e2652c338d3a1e852849511671143f570",
      "new_mode": 33188,
      "new_path": "gdb/ChangeLog"
    },
    {
      "type": "modify",
      "old_id": "ad65b1b40305ed3c8372399e282bf6bfbdea6510",
      "old_mode": 33188,
      "old_path": "gdb/windows-tdep.c",
      "new_id": "e9787887a4af87c0faf547b916ecf71feea72dec",
      "new_mode": 33188,
      "new_path": "gdb/windows-tdep.c"
    }
  ]
}
