{
  "schema_version": "0.6.0",
  "paper_id": "heterogeneous-debugging-dynamic-tracing",
  "page_url": "https://threadslab.org/research-publications/papers/heterogeneous-debugging-dynamic-tracing/",
  "title": "Efficient Large-Scale Heterogeneous Debugging Using Dynamic Tracing",
  "title_variants": [],
  "authors": [
    "Didier Nadeau",
    "Naser Ezzati-Jivan",
    "Michel R. Dagenais"
  ],
  "author_details": [
    {
      "name": "Didier Nadeau",
      "orcid": null,
      "profile_url": "https://dblp.org/pid/251/6888.html"
    },
    {
      "name": "Naser Ezzati-Jivan",
      "orcid": "https://orcid.org/0000-0003-1435-6297",
      "profile_url": "https://threadslab.org/"
    },
    {
      "name": "Michel R. Dagenais",
      "orcid": null,
      "profile_url": "https://dblp.org/pid/60/309.html"
    }
  ],
  "publication": {
    "year": 2019,
    "venue": "Journal of Systems Architecture",
    "type": "journal article",
    "publication_date": "2019-09",
    "online_date": null,
    "print_date": "2019-09",
    "volume": "98",
    "issue": null,
    "pages": "346-360",
    "article_number": null,
    "publisher": "Elsevier BV",
    "issn": [
      "1383-7621"
    ],
    "isbn": [],
    "crossref_type": "journal-article"
  },
  "publication_type": "research paper",
  "status": "public_accepted_manuscript",
  "canonical_source_url": "https://doi.org/10.1016/j.sysarc.2019.02.016",
  "source_record_id": "efficient-large-scale-heterogeneous-debugging-using-dynamic-tracing-5483c71860",
  "identifiers": {
    "doi": "10.1016/j.sysarc.2019.02.016"
  },
  "abstract": null,
  "abstract_source": "No public abstract captured in the current local catalog; summary limited to verified bibliographic metadata and the paper title.",
  "abstract_available": false,
  "scholar_eligibility": {
    "eligible": false,
    "basis": "not-eligible",
    "note": "The page is a discovery record; it does not claim Google Scholar article-host eligibility."
  },
  "description": "The paper redesigns GDB dynamic tracing around LTTng-UST and scalable trace views so multi-threaded CPU/GPU debugging remains usable on heterogeneous many-core systems.",
  "evidence_level": "full-text-reviewed",
  "evidence": {
    "source_basis": "full-text-reviewed",
    "coverage": "material paper sections",
    "summary_origin": "AI-assisted catalog editorial summary",
    "review_status": "catalog-reviewed; paper-author approval pending",
    "verified_on": "2026-08-28",
    "sources": [
      {
        "note": "PolyPublie repository record identity matched to the catalog title and author record"
      },
      {
        "note": "public PDF downloaded locally and %PDF- signature verified"
      },
      {
        "note": "PolyPublie cover sheet identifies this as the accepted version and states the Elsevier CC-BY-NC-ND 4.0 terms."
      }
    ]
  },
  "summary": {
    "core_contribution": "The paper redesigns GDB dynamic tracing around LTTng-UST and scalable trace views so multi-threaded CPU/GPU debugging remains usable on heterogeneous many-core systems.",
    "problem": "Conventional debugger tracing serializes many threads through shared buffers and stop-the-world flushing, while heterogeneous CPU/GPU execution produces too many threads, waves, and call-stack events for a flat debugger UI.",
    "method": "Dynamically insert jump-pad instrumentation from GDB/GDBServer and transfer events through LTTng-UST per-core lock-free-style ring buffers without stopping the target during buffer transfer. Trace Compass aggregates CPU call stacks and provides hierarchical HSA GPU wave/grid views and filters.",
    "findings": "The proposed path scales substantially better than default GDB fast tracing on the pbzip2 workload, with much lower growth in tracing overhead as thread count increases. The UI supports focused CPU call-stack and GPU wave-level exploration.",
    "limitations": "Instrumentation has instruction-size/location constraints; filters still incur event/context-switch cost; GPU first-level grouping may require manual expansion; closed-source tools were excluded; the evaluation centers on pbzip2 and one GPU setup, with only informal feedback from three engineers rather than a controlled user study.",
    "future_work": "No dedicated future-work section is provided. The conclusion identifies a cautious next direction: remove the size limitation by replacing a function frame and instrumenting that frame."
  },
  "tags": [
    "system-tracing",
    "trace-analysis",
    "performance-analysis",
    "root-cause-analysis"
  ],
  "keywords": [
    "heterogeneous systems",
    "dynamic tracing",
    "large-scale debugging",
    "debugging efficiency",
    "GDB",
    "LTTng-UST",
    "Trace Compass",
    "ROCm-GDB",
    "GPU debugging",
    "pbzip2"
  ],
  "versions": [
    {
      "id": "published-version",
      "label": "Published version",
      "relation": "version-of-record",
      "title": "Efficient Large-Scale Heterogeneous Debugging Using Dynamic Tracing",
      "url": "https://doi.org/10.1016/j.sysarc.2019.02.016",
      "pdf_url": null,
      "status": "published",
      "canonical_for_citation": true
    },
    {
      "id": "public-institutional-full-text",
      "label": "Public institutional full text",
      "relation": "accepted-manuscript",
      "title": "Efficient Large-Scale Heterogeneous Debugging Using Dynamic Tracing",
      "url": "https://publications.polymtl.ca/3817/",
      "pdf_url": "https://publications.polymtl.ca/3817/12/2019_Nadeau_Efficient_large-scale_heterogeneous_debugging_dynamic.pdf",
      "status": "public_accepted_manuscript",
      "canonical_for_citation": false
    }
  ],
  "access": {
    "status": "public_accepted_manuscript",
    "note": "PolyPublie cover sheet identifies this as the accepted version and states the Elsevier CC-BY-NC-ND 4.0 terms.",
    "license": null
  },
  "resources": {
    "code": null,
    "data": null,
    "slides": null,
    "demo": null
  },
  "citation_guidance": {
    "when_to_cite": "Cite this paper when your work uses or compares combining dynamic GDB jump-pad instrumentation with per-core LTTng-UST buffers to avoid the default shared-buffer/flush bottleneck.",
    "points": [
      "For combining dynamic GDB jump-pad instrumentation with per-core LTTng-UST buffers to avoid the default shared-buffer/flush bottleneck.",
      "For the pbzip2 scaling result showing proposed tracing at about 90% overhead versus 3294% for the default path at 15 threads.",
      "For hierarchical CPU call-stack and HSA GPU grid/wave navigation in a heterogeneous debugging interface.",
      "For the practical limitations of x86-64 jump-pad placement and GPU event filtering under dynamic tracing."
    ],
    "canonical_version_id": "published-version"
  },
  "provenance": {
    "metadata_verified_on": "2026-08-28",
    "metadata_source": [
      "PolyPublie repository record identity matched to the catalog title and author record",
      "public PDF downloaded locally and %PDF- signature verified",
      "PolyPublie cover sheet identifies this as the accepted version and states the Elsevier CC-BY-NC-ND 4.0 terms."
    ],
    "summary_written_by": "AI-assisted",
    "summary_verified_by": "full-text-grounded catalog review; author approval pending",
    "linked_preprint_record": null,
    "author_order_note": null
  },
  "batch": {
    "phase": 2,
    "batch_label": "expanded forty-paper release",
    "status": "included_in_expanded_catalog",
    "selected_at": "2026-08-28"
  }
}
