dwarf-expert
DWARFデバッグファイルの解析およびDWARFデバッグフォーマット/標準(v3〜v5)に関する専門的な知識を提供します。DWARF情報の理解、DWARFファイルの操作、DWARF関連の質問への回答、またはDWARFデータを解析するコードを扱う際にトリガーされます。
description の原文を見る
Provides expertise for analyzing DWARF debug files and understanding the DWARF debug format/standard (v3-v5). Triggers when understanding DWARF information, interacting with DWARF files, answering DWARF-related questions, or working with code that parses DWARF data.
SKILL.md 本文
概要
このスキルは、DWARF標準に関する技術知識とDWARFファイルとの対話方法に関する専門知識を提供します。タスクには、DWARF標準に関する質問への回答、様々なDWARF機能の例の提供、DWARFファイルの解析および/または作成、DWARFデータと対話するコードの作成/修正/分析が含まれます。
このスキルを使用する場合
- コンパイル済みバイナリからDWARFデバッグ情報を理解または解析する
- DWARF標準(v3、v4、v5)に関する質問に答える
- DWARFデータと対話するコードを作成または確認する
dwarfdumpまたはreadelfを使用してデバッグ情報を抽出するllvm-dwarfdump --verifyでDWARFデータの整合性を検証する- DWARFパースライブラリ(libdwarf、pyelftools、gimli等)を操作する
このスキルを使用しない場合
- DWARF v1/v2分析: サポート対象はバージョン3、4、5に限定されています。
- 一般的なELFパース: DWARFデータが不要な場合は標準的なELFツールを使用してください。
- 実行可能ファイルのデバッグ: 実行可能コード/実行時動作のデバッグには専用デバッグツール(gdb、lldb等)を使用してください。
- バイナリリバースエンジニアリング: DWARFセクション以外を分析する場合は専用REツール(Ghidra、IDA)を使用してください。
- コンパイラデバッグ: DWARF生成の問題はコンパイラ固有であり、このスキルではカバーされていません。
権威のある情報源
DWARF標準に関する具体的な情報が必要な場合は、以下の権威のある情報源を使用してください:
-
公式DWARF標準(dwarfstd.org): Web検索を使用してdwarfstd.orgで公式DWARF仕様の具体的なセクションを探してください。「DWARF5 DW_TAG_subprogram attributes site:dwarfstd.org」などの検索クエリが効果的です。
-
LLVM DWARF実装:
llvm/lib/DebugInfo/DWARF/にあるLLVMプロジェクトのDWARF処理コードは信頼性の高い参照実装として機能します。主要ファイルには以下が含まれます:DWARFDie.cpp- DIE処理と属性アクセスDWARFUnit.cpp- コンパイルユニットパースDWARFDebugLine.cpp- 行番号情報DWARFVerifier.cpp- 検証ロジック
-
libdwarf: github.com/davea42/libdwarf-codeにある参照C実装は、DWARFデータ構造の詳細な処理を提供します。
検証ワークフロー
llvm-dwarfdumpの検証オプションを使用して、DWARFデータの整合性を検証してください:
構造検証
# DWARF構造を検証(コンパイルユニット、DIE関係、アドレス範囲)
llvm-dwarfdump --verify <binary>
# 詳細なエラー出力と概要
llvm-dwarfdump --verify --error-display=full <binary>
# 機械可読JSON形式のエラー概要
llvm-dwarfdump --verify --verify-json=errors.json <binary>
品質メトリクス
# デバッグ情報の品質メトリクスをJSON形式で出力
llvm-dwarfdump --statistics <binary>
--statistics出力は、コンパイラバージョンと最適化レベル間でのデバッグ情報の品質を比較するのに役立ちます。
一般的な検証パターン
- コンパイル後: 配布前にバイナリが有効なDWARFを持つことを確認する
- ビルドの比較:
--statisticsを使用してデバッグ情報の品質低下を検出する - デバッガのデバッグ: 不正なDWARFによるデバッガの問題を特定する
- DWARFツール開発: パーサ出力を既知の良好なバイナリに対して検証する
DWARFデバッグ情報のパース
readelf
ELFファイルはreadelfコマンドで解析できます({baseDir}/reference/readelf.md)。一般的なELF情報には これを使用しますが、DWARF固有のパースにはdwarfdumpを優先してください。
dwarfdump
DWARFファイルはdwarfdumpコマンドで解析でき、複雑なDWARF情報のパースと表示においてreadelfより効果的であり、ほとんどのDWARFパースタスクに使用するべきです({baseDir}/reference/dwarfdump.md)。
コード操作
このスキルは、DWARFデータと対話するコードの作成、修正、確認をサポートします。これには、DWARFデバッグデータをスクラッチからパースするコード、またはライブラリを活用してDWARFデータをパースおよび対話するコードが含まれる場合があります({baseDir}/reference/coding.md)。
アプローチの選択
┌─ DWARFデータの整合性を検証する必要がありますか?
│ └─ `llvm-dwarfdump --verify`を使用(上記の検証ワークフローを参照)
├─ DWARF標準についての質問に答える必要がありますか?
│ └─ dwarfstd.orgを検索するか、LLVM/libdwarfソースを参照する
├─ 単純なセクションダンプまたは一般的なELF情報が必要ですか?
│ └─ `readelf`を使用({baseDir}/reference/readelf.md)
├─ DWARFDIEノードをパース、検索、および/またはダンプする必要がありますか?
│ └─ `dwarfdump`を使用({baseDir}/reference/dwarfdump.md)
└─ DWARFデータと対話するコードを作成、修正、または確認する必要がありますか?
└─ コーディングリファレンスを参照({baseDir}/reference/coding.md)
ライセンス: CC-BY-SA-4.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- trailofbits
- リポジトリ
- trailofbits/skills
- ライセンス
- CC-BY-SA-4.0
- 最終更新
- 不明
Source: https://github.com/trailofbits/skills / ライセンス: CC-BY-SA-4.0
関連スキル
hugging-face-trackio
Trackioを使用してMLトレーニング実験を追跡・可視化できます。トレーニング中のメトリクスログ記録(Python API)、トレーニング診断のアラート発火、ログされたメトリクスの取得・分析(CLI)が必要な場合に活用してください。リアルタイムダッシュボード表示、Webhookを使用したアラート、HF Space同期、自動化向けのJSON出力に対応しています。
btc-bottom-model
ビットコインのサイクルタイミングモデルで、加重スコアリングシステムを搭載しています。日次パルス(4指標、32ポイント)とウィークリー構造(9指標、68ポイント)の2カテゴリーにわたる13の指標を追跡し、0~100のマーケットヒートスコアを算出します。ETFフロー、ファンディングレート、ロング/ショート比率、恐怖・貪欲指数、LTH-MVRV、NUPL、SOPR(LTH+STH)、LTH供給率、移動平均倍率(365日MA、200週MA)、週次RSI、出来高トレンドに対応します。市場サイクル全体を通じて買いと売りの両方の推奨を提供します。ビットコインの底値拾い、BTCサイクルポジション、買い時・売り時、オンチェーン指標、MVRV、NUPL、SOPR、LTH動向、ETFの流出入、ファンディングレート、恐怖指数、ビットコインが過熱状態か、マイナーコスト、暗号資産市場のセンチメント、BTCのポジションサイジング、「今ビットコインを買うべきか」「BTCが天井をつけているか」「オンチェーン指標は何を示しているか」といった質問の際にこのスキルを活用します。
protein_solubility_optimization
タンパク質の溶解性最適化 - タンパク質の溶解性を最適化します。タンパク質の特性を計算し、溶解性と親水性を予測し、有効な変異を提案します。タンパク質配列の特性計算、タンパク質機能の予測、親水性計算、ゼロショット配列予測を含むタンパク質エンジニアリング業務に使用できます。3つのSCPサーバーから4つのツールを統合しています。
research-lookup
Parallel Chat APIまたはPerplexity sonar-pro-searchを使用して、最新の研究情報を検索できます。学術論文の検索にも対応しています。クエリは自動的に最適なバックエンドにルーティングされるため、論文の検索、研究データの収集、科学情報の検証に活用できます。
tree-formatting
ggtree(R)またはiTOL(ウェブ)を使用して、系統樹の可視化とフォーマットを行います。系統樹を図として描画する際、ツリーレイアウトの選択、分類学に基づく枝やラベルの色付け、クレードの折りたたみ、サポート値の表示、またはツリーへのオーバーレイ追加が必要な場合に使用してください。系統推定(protein-phylogenyスキルを使用)やドメイン注釈(今後の独立したスキル)には使用しないでください。
querying-indonesian-gov-data
インドネシア政府の50以上のAPIとデータソースに接続できます。BPJPH(ハラール認証)、BOM(食品安全)、OJK(金融適正性)、BPS(統計)、BMKG(気象・地震)、インドネシア中央銀行(為替レート)、IDX(株式)、CKAN公開データポータル、pasal.id(第三者法MCP)に対応しています。インドネシア政府データを活用したアプリ開発、.go.idウェブサイトのスクレイピング、ハラール認証の確認、企業の法的適正性の検証、金融機関ステータスの照会、またはインドネシアMCPサーバーへの接続時に使用できます。CSRF処理、CKAN API使用方法、IP制限回避など、すぐに実行可能なPythonパターンを含んでいます。