)]}'
{
  "commit": "89c07e295b6485e997e7969052aa2ecf7c811409",
  "tree": "d4b1c159f76df421c65b622bbfdc0dbad92e1a67",
  "parents": [
    "8ce1af0a1d8ecdefcd97f006a2f584dd6fd36ea6"
  ],
  "author": {
    "name": "Aaron Merey",
    "email": "amerey@redhat.com",
    "time": "Tue Jan 21 16:09:47 2025 -0500"
  },
  "committer": {
    "name": "Aaron Merey",
    "email": "amerey@redhat.com",
    "time": "Fri Jan 24 09:57:38 2025 -0500"
  },
  "message": "gdb/debuginfod: Add .debug_line downloading\n\nELF/DWARF section downloading allows gdb to download .gdb_index files in\norder to defer full debuginfo downloads.  However .gdb_index does not\ncontain any information regarding source filenames.  When a gdb command\nincludes a filename argument (ex. \u0027break main.c:50\u0027), this results in\nthe mass downloading of all deferred debuginfo so that gdb can search the\ndebuginfo for matching source filenames.  This can result in unnecessary\ndownloads.\n\nTo improve this, have gdb instead download each debuginfo\u0027s .debug_line\n(and .debug_line_str if using DWARF5) when executing these commands.\nDownload full debuginfo only when its .debug_line contains a matching\nfilename.\n\nSince the combined size of .debug_line and .debug_line_str is only about\n1% the size of the corresponding debuginfo, significant time can be saved\nby checking these sections before choosing to download an entire debuginfo.\n\nThis patch also redirects stdout and stderr of the debuginfod server\nused by testsuite/gdb.debuginfod tests to a server_log standard output\nfile.  While adding tests for this patch I ran into an issue where the\ntest server would block when logging to stderr, presumably because the\nstderr buffer filled up and wasn\u0027t being read from.  Redirecting the\nlog to a file fixes this and also makes the server log more accessible\nwhen debugging test failures.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "afa73eba2aed645cdae3eee8bedf2da7a2f00edd",
      "old_mode": 33188,
      "old_path": "gdb/cli-out.c",
      "new_id": "a0bd1bd393ca1e9e8c8d7bcbc854a0e52256a41c",
      "new_mode": 33188,
      "new_path": "gdb/cli-out.c"
    },
    {
      "type": "modify",
      "old_id": "4735aa5ed10b88057071311ba0c568567993c688",
      "old_mode": 33188,
      "old_path": "gdb/completer.c",
      "new_id": "5d3837cbc0b3d996d3a7d9b4913bc77185f99226",
      "new_mode": 33188,
      "new_path": "gdb/completer.c"
    },
    {
      "type": "modify",
      "old_id": "eddb2ef7ae801e38a1e816514d165db170cff8e2",
      "old_mode": 33188,
      "old_path": "gdb/dwarf2/line-header.c",
      "new_id": "1d24386c0eb592fec31e3de22f9e071dc71ce887",
      "new_mode": 33188,
      "new_path": "gdb/dwarf2/line-header.c"
    },
    {
      "type": "modify",
      "old_id": "30809f69acc72c8eda5bbb625060b9d406af4a3b",
      "old_mode": 33188,
      "old_path": "gdb/dwarf2/line-header.h",
      "new_id": "9133150886ac201b981fbe5dc1e6465f1612e73f",
      "new_mode": 33188,
      "new_path": "gdb/dwarf2/line-header.h"
    },
    {
      "type": "modify",
      "old_id": "821874b43ce506179f19980239df7eaade208521",
      "old_mode": 33188,
      "old_path": "gdb/dwarf2/read-gdb-index.c",
      "new_id": "507fd9c405a94666796e0cd0cdd6008b464e0eda",
      "new_mode": 33188,
      "new_path": "gdb/dwarf2/read-gdb-index.c"
    },
    {
      "type": "modify",
      "old_id": "523663e6273de9e17373087f927a0ff638d24098",
      "old_mode": 33188,
      "old_path": "gdb/dwarf2/read.c",
      "new_id": "85bbef80c8ed3767920b84fa42ad22b5ab4d5ccc",
      "new_mode": 33188,
      "new_path": "gdb/dwarf2/read.c"
    },
    {
      "type": "modify",
      "old_id": "5887084ce2603de8eb1752cd3c6bbb6e36e101cc",
      "old_mode": 33188,
      "old_path": "gdb/dwarf2/read.h",
      "new_id": "8bfa6fbbae341dae866d43735d348485c910a937",
      "new_mode": 33188,
      "new_path": "gdb/dwarf2/read.h"
    },
    {
      "type": "modify",
      "old_id": "9ad26e76a30f505de7ce0abf1c9368654b950c7a",
      "old_mode": 33188,
      "old_path": "gdb/mi/mi-out.c",
      "new_id": "97e2cce58c9e200e87de140128c6cca30bf2f0de",
      "new_mode": 33188,
      "new_path": "gdb/mi/mi-out.c"
    },
    {
      "type": "modify",
      "old_id": "381791bca50e4bc8b9e99243593b471d7fae7b90",
      "old_mode": 33188,
      "old_path": "gdb/testsuite/gdb.debuginfod/section.exp",
      "new_id": "8e4823644342db8a07db33ec0a1e19bb75c46f0c",
      "new_mode": 33188,
      "new_path": "gdb/testsuite/gdb.debuginfod/section.exp"
    },
    {
      "type": "modify",
      "old_id": "41ce6efd14f916a04c8495aca4c35533fd31d4a0",
      "old_mode": 33188,
      "old_path": "gdb/ui-out.c",
      "new_id": "47c987f88a97da8e1e8e70849141f6bfc55f7aa2",
      "new_mode": 33188,
      "new_path": "gdb/ui-out.c"
    },
    {
      "type": "modify",
      "old_id": "5d0328108f939e880d68703929c1d406207c54e2",
      "old_mode": 33188,
      "old_path": "gdb/ui-out.h",
      "new_id": "e290f83b0ef94ec8ee1837b7329aa6bcf3bf5f00",
      "new_mode": 33188,
      "new_path": "gdb/ui-out.h"
    }
  ]
}
