)]}'
{
  "commit": "7344b43edea10448ca2a4d9b6c3e645c2b026724",
  "tree": "d5961af938e5ce108530fa6836af60c2bb809db8",
  "parents": [
    "9d7308031d4ae3dc47fef6387f36d47c0f7b9c4e"
  ],
  "author": {
    "name": "p-szafonimateusz",
    "email": "p-szafonimateusz@xiaomi.com",
    "time": "Mon Jul 06 19:32:30 2026 +0200"
  },
  "committer": {
    "name": "Xiang Xiao",
    "email": "xiaoxiang781216@gmail.com",
    "time": "Tue Aug 04 22:34:04 2026 +0800"
  },
  "message": "add advanced debugging tools\n\nAdd advanced debug features: coredump collection and GDB integration.\nCoredump backends: GDB, fastboot, ymodem, local file, syslog. GDB\nsupports target-remote and simulator PID-attach, plus auto-planted\ncrash breakpoints for automatic coredump generation.\n\nSigned-off-by: p-szafonimateusz \u003cp-szafonimateusz@xiaomi.com\u003e\nCo-authored-by: wangmingrong1 \u003cwangmingrong1@xiaomi.com\u003e\nCo-authored-by: v-zhanhaixiang \u003cv-zhanhaixiang@xiaomi.com\u003e\nCo-authored-by: nijie3 \u003cnijie3@xiaomi.com\u003e\nCo-authored-by: chenjiahua1 \u003cchenjiahua1@xiaomi.com\u003e\nCo-authored-by: yangao1 \u003cyangao1@xiaomi.com\u003e\nCo-authored-by: v-zouweiwei \u003cv-zouweiwei@xiaomi.com\u003e\nCo-authored-by: v-yangjing26 \u003cv-yangjing26@xiaomi.com\u003e\nCo-authored-by: v-wuguohui1 \u003cv-wuguohui1@xiaomi.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ce8ef9f1b5db071d569d2773ad6896708aded2f9",
      "old_mode": 33188,
      "old_path": "Documentation/config-yaml.rst",
      "new_id": "5b2ffb87d4868bd564445d43b93bba910a2e02e3",
      "new_mode": 33188,
      "new_path": "Documentation/config-yaml.rst"
    },
    {
      "type": "modify",
      "old_id": "a5531e6475e3f88058445d3da1f6940d8512901b",
      "old_mode": 33188,
      "old_path": "Documentation/config.yaml",
      "new_id": "208aa94bdb25100ff19ac586074a9db62d5fb691",
      "new_mode": 33188,
      "new_path": "Documentation/config.yaml"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c415fa986a7d597e942a57c698637ea35b3ecdfa",
      "new_mode": 33188,
      "new_path": "Documentation/debug/coredump.rst"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c567b13218a7757c7f592412e70df447692f6a7a",
      "new_mode": 33188,
      "new_path": "Documentation/debug/gdb.rst"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "01e8657b024c857822b2cb5f665a123770233854",
      "new_mode": 33188,
      "new_path": "Documentation/debug/index.rst"
    },
    {
      "type": "modify",
      "old_id": "5383f43e1c6b671b913680acedf7c68c5fe16219",
      "old_mode": 33188,
      "old_path": "Documentation/index.rst",
      "new_id": "9e79f5b6babbb65f0014d5fcb5663cfaea5eb08d",
      "new_mode": 33188,
      "new_path": "Documentation/index.rst"
    },
    {
      "type": "modify",
      "old_id": "58ceba72ae91635d0f86e9cdeed2534e6573b6c2",
      "old_mode": 33188,
      "old_path": "pyproject.toml",
      "new_id": "f4fe32540adaf605bb4ba9b71070ac28f23b68c4",
      "new_mode": 33188,
      "new_path": "pyproject.toml"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "af50ccb5846131719f9c91d3b4f00bf6155897d8",
      "new_mode": 33188,
      "new_path": "src/ntfc/debug/config.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "928e666aef073b8368bcf33afd829a762c80b55f",
      "new_mode": 33188,
      "new_path": "src/ntfc/debug/coredump/base.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0e4493eef021019eec4de17d597be180e4d33622",
      "new_mode": 33188,
      "new_path": "src/ntfc/debug/coredump/fastboot_handler.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c21e06e30d88bfba850d39ce2d0af00abdba4f37",
      "new_mode": 33188,
      "new_path": "src/ntfc/debug/coredump/gdb_handler.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a05cd7de68dfb085318b09ea6368ca45c35e7121",
      "new_mode": 33188,
      "new_path": "src/ntfc/debug/coredump/local_file_handler.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d475232be41062f477ba66f12b9c26b99ca08443",
      "new_mode": 33188,
      "new_path": "src/ntfc/debug/coredump/manager.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "75cd73ea4843c6fbf8d3e855deca79cfe7863f4d",
      "new_mode": 33188,
      "new_path": "src/ntfc/debug/coredump/syslog_handler.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6e2ad986556cdb9e6818ab71cdec2e459617df42",
      "new_mode": 33188,
      "new_path": "src/ntfc/debug/coredump/ymodem_handler.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e82177d5aab1377a3b38f1da9bae9c79559259e6",
      "new_mode": 33188,
      "new_path": "src/ntfc/debug/gdb/controller.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a0cdaf2b0666c604dd9f25130d7e9f708c89d88c",
      "new_mode": 33188,
      "new_path": "src/ntfc/debug/gdb/plugin/autobp.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "769be9c87df569267215fb3b5bf666a7f944c557",
      "new_mode": 33188,
      "new_path": "src/ntfc/debug/gdb/plugin/gdbprefix.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "87a2594b7b1400bafa3fe5046038c4a4098196ae",
      "new_mode": 33188,
      "new_path": "src/ntfc/debug/gdb/plugin/init.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "095b024a4496bdf470ab9e67f79cf6fb1a2c2504",
      "new_mode": 33188,
      "new_path": "src/ntfc/debug/getdebug.py"
    },
    {
      "type": "modify",
      "old_id": "c0a5f8a15ad933c487d40962b9362cad1958d61c",
      "old_mode": 33188,
      "old_path": "src/ntfc/device/common.py",
      "new_id": "1c714b4b7945775739818b31fb2fb703f0180fcd",
      "new_mode": 33188,
      "new_path": "src/ntfc/device/common.py"
    },
    {
      "type": "modify",
      "old_id": "3c447cf6939d8f9f1f200aa38178f707dd86f1b8",
      "old_mode": 33188,
      "old_path": "src/ntfc/device/host.py",
      "new_id": "d92c4425f92d59ea9dcb1f0904b937d6e248584b",
      "new_mode": 33188,
      "new_path": "src/ntfc/device/host.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "72aeac2134f7c89625ff0549567c46ae1c28b88f",
      "new_mode": 33188,
      "new_path": "src/ntfc/lib/fastboot/controller.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ee022efe44ffae536b0194f82a57151d6e409508",
      "new_mode": 33188,
      "new_path": "src/ntfc/lib/ymodem/controller.py"
    },
    {
      "type": "modify",
      "old_id": "76e34026095a0cd7a74dac802eb7b4ec46f3c755",
      "old_mode": 33188,
      "old_path": "src/ntfc/productconfig.py",
      "new_id": "32316f3f28d5c8d69def04b5afb645f3c2f7bd59",
      "new_mode": 33188,
      "new_path": "src/ntfc/productconfig.py"
    },
    {
      "type": "modify",
      "old_id": "da58bc46bee1099d8c6508de01318b8cd2ad85c3",
      "old_mode": 33188,
      "old_path": "src/ntfc/pytest/configure.py",
      "new_id": "0115919e07489abb0e5b6cc7bc9d5cb75fb5f510",
      "new_mode": 33188,
      "new_path": "src/ntfc/pytest/configure.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "888e2e24887e5b26f847001d6c68b0bbb64e3482",
      "new_mode": 33188,
      "new_path": "src/ntfc/pytest/coredump_plugin.py"
    },
    {
      "type": "modify",
      "old_id": "5817954280f73f860c4b8676b11842c777029cb6",
      "old_mode": 33188,
      "old_path": "src/ntfc/pytest/mypytest.py",
      "new_id": "b85f6952e95c93487c9e6757d946662862dd083c",
      "new_mode": 33188,
      "new_path": "src/ntfc/pytest/mypytest.py"
    },
    {
      "type": "modify",
      "old_id": "8a7958ab6fcc4a60d43fe5ebd73274c08a64b52d",
      "old_mode": 33188,
      "old_path": "tests/conftest.py",
      "new_id": "0281a85c2df29ccabc38a8b1d5a98611c3d3a6a8",
      "new_mode": 33188,
      "new_path": "tests/conftest.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "20e44e8f6b9dc90022f7ae3c029c4c411b7eb16f",
      "new_mode": 33188,
      "new_path": "tests/debug/conftest.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "cfc6b87708f6bdb04910c0d7e2a4efbf2b5687e2",
      "new_mode": 33188,
      "new_path": "tests/debug/test_config.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e8feb8b804a5bf4431bebff4ce180ea84f20973a",
      "new_mode": 33188,
      "new_path": "tests/debug/test_coredump_handlers.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0aba74c33127ba2a7445bb72b454b5ef542e7fd8",
      "new_mode": 33188,
      "new_path": "tests/debug/test_coredump_manager.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "48eaf2f6afa91a4ebdc1ec04885297e044d8a39f",
      "new_mode": 33188,
      "new_path": "tests/debug/test_gdb_controller.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "cf4de31398d375ead06947741b15d320e84450dc",
      "new_mode": 33188,
      "new_path": "tests/debug/test_gdb_plugin.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9961b9911085bc9ecfd1a483ae4ab2a5879c6dbc",
      "new_mode": 33188,
      "new_path": "tests/debug/test_getdebug.py"
    },
    {
      "type": "modify",
      "old_id": "5a474f46d91cfb84e91ff5505ddfc6a69dc3d840",
      "old_mode": 33188,
      "old_path": "tests/device/test_common.py",
      "new_id": "a8f848b1caa0543711bde7a6cc4a77ca95c8f8ff",
      "new_mode": 33188,
      "new_path": "tests/device/test_common.py"
    },
    {
      "type": "modify",
      "old_id": "fb1b2d49bc5387a78ffee617009d816947cb3744",
      "old_mode": 33188,
      "old_path": "tests/device/test_host.py",
      "new_id": "6ddebd94a2040dc5de49c914680c8c3cb537b5e5",
      "new_mode": 33188,
      "new_path": "tests/device/test_host.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d9e0fdab1cb89c71554325dabc322051c83f53bc",
      "new_mode": 33188,
      "new_path": "tests/lib/test_fastboot_controller.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "29d1d91df186ea0df315677a5d8d1a369ea90d69",
      "new_mode": 33188,
      "new_path": "tests/lib/test_ymodem_controller.py"
    },
    {
      "type": "modify",
      "old_id": "9ba107580f7c3f0f61f9a43aba7e423e4854ad02",
      "old_mode": 33188,
      "old_path": "tests/pytest/test_configure.py",
      "new_id": "65f8fbd99833f352dee9adcada05714f4906e5d6",
      "new_mode": 33188,
      "new_path": "tests/pytest/test_configure.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d0866b26c1cb50ecf46e019aa2f7e32e6de616f7",
      "new_mode": 33188,
      "new_path": "tests/pytest/test_coredump_plugin.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "098f1a7e1ceb4aaab43f0706a8b598aca748cab1",
      "new_mode": 33188,
      "new_path": "tests/pytest/test_hook_ordering.py"
    },
    {
      "type": "modify",
      "old_id": "2f91f9bee4cc75ec4e6073de360cf30f6cfa9a4f",
      "old_mode": 33188,
      "old_path": "tests/pytest/test_mypytest.py",
      "new_id": "c8affd5ceb8b181e9089bc14a60fb6dc71730614",
      "new_mode": 33188,
      "new_path": "tests/pytest/test_mypytest.py"
    },
    {
      "type": "modify",
      "old_id": "3f40abb4639e35c21e2601e1632e808b4567705b",
      "old_mode": 33188,
      "old_path": "tests/test_productconfig.py",
      "new_id": "f786efeb5e671c4080aa4e8ecb2526466168342c",
      "new_mode": 33188,
      "new_path": "tests/test_productconfig.py"
    },
    {
      "type": "modify",
      "old_id": "f45569e6b462eef8c92a1e9468072eadc135fcce",
      "old_mode": 33188,
      "old_path": "tox.ini",
      "new_id": "ead1b1456ce924b1d2ef191556e5378874abb8d2",
      "new_mode": 33188,
      "new_path": "tox.ini"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0094735774f6f25affd004c377292f2940f8bb84",
      "new_mode": 33188,
      "new_path": "typings/gdb/__init__.pyi"
    }
  ]
}
