論文の概要: Automatically Detecting and Fixing Deadlocks in Go Code with GoDDaR
- arxiv url: http://arxiv.org/abs/2610.08962v1
- Date: Tue, 06 Oct 2026 18:29:27 GMT
- ステータス: 翻訳完了
- システム内更新日: 2026-10-08 21:58:22.554333
- Title: Automatically Detecting and Fixing Deadlocks in Go Code with GoDDaR
- Title(参考訳): GoDDaRによるGoコードのデッドロックの自動検出と修正
- Abstract要約: Go言語は、gooutineを通じて並列プログラミングのための軽量な抽象化を提供する。
GoDDaRは、Goソースコードをメッセージパッシング通信イベントとコンポジションパターンを反映した中間表現に変換する。
我々のアルゴリズムは中間表現を変換して問題のある同期パターンを排除し、GoDDaRはオリジナルのGoソースコードの修正提案をdiffとして生成する。
- 参考スコア(独自算出の注目度): 0.0
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: The Go programming language provides a lightweight abstraction for concurrent programming through goroutines, which are prone to deadlocks. Go includes a runtime detector that aborts execution when all threads are blocked (a global deadlock). However, due to nondeterministic thread scheduling, this runtime mechanism only detects global deadlocks that manifest during execution and cannot identify partial deadlocks, where a subset of goroutines is permanently blocked while at least one remains runnable. Statically detecting local deadlocks is essential for developing dependable concurrent software. While several tools statically detect deadlocks in concurrent programs, few assist developers in fixing them. Detecting and resolving partial deadlocks requires reasoning about complex interleavings and communication patterns, an inherently challenging task. In this paper, we present GoDDaR, a tool that detects unobserved global or partial deadlocks in Go programs and suggests concrete fixes. GoDDaR translates Go source code into an intermediate representation reflecting message-passing communication events and composition patterns. Partial deadlocks are identified through symbolic analysis over this representation. To resolve detected deadlocks, our algorithms transform the intermediate representation to eliminate problematic synchronization patterns, allowing GoDDaR to generate fix suggestions for the original Go source code as a diff. We evaluate GoDDaR on a benchmark suite of representative deadlock examples from literature and git repositories to validate algorithm correctness and compare performance against the state of the art. Results demonstrate that GoDDaR is competitive with top approaches in partial deadlock detection and advances the state of the art in automated deadlock fixing.
- Abstract(参考訳): Go言語は、gooutineを通じて並列プログラミングのための軽量な抽象化を提供する。
Goには、すべてのスレッドがブロックされた時(グローバルデッドロック)に実行を中止するランタイム検出器が含まれている。
しかし、非決定論的スレッドスケジューリングのため、この実行メカニズムは実行中に現れ、部分的なデッドロックを特定できないグローバルデッドロックのみを検出する。
ローカルデッドロックを統計的に検出することは、信頼できる並行ソフトウェアを開発する上で不可欠である。
いくつかのツールは並列プログラムのデッドロックを静的に検出するが、開発者による修正を支援するツールは少ない。
部分的なデッドロックの検出と解決には、本質的に困難な作業である複雑なインターリーブと通信パターンの推論が必要である。
本稿では,Goプログラムの未観測グローバルデッドロックや部分デッドロックを検出するツールであるGoDDaRを提案し,具体的な修正を提案する。
GoDDaRは、Goのソースコードを、メッセージパッシング通信イベントとコンポジションパターンを反映した中間表現に変換する。
部分的なデッドロックは、この表現に関する象徴的な分析によって識別される。
検出されたデッドロックを解決するため、アルゴリズムは中間表現を変換して問題のある同期パターンを排除し、GoDDaRはオリジナルのGoソースコードの修正提案をdiffとして生成する。
我々は,GoDDaRを文献およびgitリポジトリの代表的なデッドロック例のベンチマークスイートで評価し,アルゴリズムの正しさを検証し,最先端技術と比較した。
その結果、GoDDaRは部分的デッドロック検出におけるトップアプローチと競合し、自動デッドロック修正における最先端の進歩を示している。
関連論文リスト
- Beyond Locks and Thread IDs: Static Data Race Detection Off The Beaten Path (Extended Version) [3.5832940717897217]
我々はダイジェストフレームワークを拡張して、静的なレース検出で無視されたコンストラクトと同期メカニズムを扱います。
pthread_onceは、アクションが一度だけ実行されることを保証します。
論文 参考訳(メタデータ) (2026-08-31T18:47:23Z) - Is Code Better Than Language for Algorithmic Reasoning [58.86873062890482]
ツール拡張言語モデルでは、中間表現と実行機構の両方を変えるため、自然言語推論とコード実行パイプラインを比較することは困難である。
モデルは、その推論を実行可能なコードとして表現し、言語モデルは、そのコードを文脈でシミュレートして、回答を生成する。
中間介入は自然言語の推論と有意に異なるものではない(+0.15pp)。
論文 参考訳(メタデータ) (2026-06-14T04:17:21Z) - SEMBridge: Tagless-Final Program Semantics with Weakest-Precondition and Bounded-Checking Interpretations [0.8557392136621891]
SEMBridgeは、同じ実行可能なオブジェクトプログラムから最も弱い条件と境界チェックの解釈を生成する。
Pythonプロトタイプは、割り当て、条件、仮定、アサーションを備えたループフリーな命令コアを実装している。
論文 参考訳(メタデータ) (2026-05-29T18:00:06Z) - Memory Forensics Techniques for Automated Detection and Analysis of Go Malware [0.73493417424903]
Goバイナリのランタイム解析のための最初のメモリフォサイシクスフレームワークを提示する。
我々のフレームワークは、型と関数のメタデータを再構築し、ヒープに割り当てられた静的文字列を復元し、アプリケーションレベルの関数を識別する。
論文 参考訳(メタデータ) (2026-05-13T18:34:00Z) - A Physical Agentic Loop for Language-Guided Grasping with Execution-State Monitoring [5.437966695589128]
我々は、接地された実行状態上で動作する有界な実施エージェントとして言語誘導の把握を再構築する。
未修正の学習操作プリミティブをラップする物理エージェントループを導入する。
眼内カメラD405を用いた移動マニピュレータのループを検証した。
論文 参考訳(メタデータ) (2026-04-08T08:01:35Z) - STEAD: Robust Provably Secure Linguistic Steganography with Diffusion Language Model [71.35577462669856]
拡散言語モデル(DLM)を用いた頑健で確実な言語ステガノグラフィーを提案する。
ステガノグラフ抽出中に擬似ランダム誤り訂正や近傍探索補正を含む誤り訂正戦略を導入する。
論文 参考訳(メタデータ) (2026-01-21T08:58:12Z) - Exposing Go's Hidden Bugs: A Novel Concolic Framework [2.676686591720132]
本稿では,Goプログラムを包括的に評価する新しい方法論であるZoryaを紹介する。
従来のテスト以上の脆弱性を明らかにするために、システミックに実行パスを探索することで、象徴的な実行には明確なメリットがある。
我々の解は、GhidraのP-Codeを中間表現(IR)として採用する。
論文 参考訳(メタデータ) (2025-05-26T16:26:20Z) - ReF Decompile: Relabeling and Function Call Enhanced Decompile [50.86228893636785]
逆コンパイルの目標は、コンパイルされた低レベルコード(アセンブリコードなど)を高レベルプログラミング言語に変換することである。
このタスクは、脆弱性識別、マルウェア分析、レガシーソフトウェアマイグレーションなど、さまざまなリバースエンジニアリングアプリケーションをサポートする。
論文 参考訳(メタデータ) (2025-02-17T12:38:57Z) - Semantics-Aware Dynamic Localization and Refinement for Referring Image
Segmentation [102.25240608024063]
画像の参照は、言語表現からのイメージセグメントを参照する。
そこで我々は,局所化中心からセグメンテーション言語へ移行するアルゴリズムを開発した。
比較すると,本手法はより汎用的で有効である。
論文 参考訳(メタデータ) (2023-03-11T08:42:40Z) - Exposing Semantic Segmentation Failures via Maximum Discrepancy
Competition [102.75463782627791]
オープンビジュアルの世界において,既存の意味セグメンテーション手法の失敗を露呈することで,質問に答える。
モデル改ざんに関するこれまでの研究に触発され、任意に大きい画像セットから始まり、2つのセグメンテーション方法間の差分法(MAD)をMAximizingすることによって、小さな画像セットを自動的にサンプリングします。
選択された画像は、2つの方法のいずれか(または両方)を偽造する最大の可能性を持っている。
また,MADコンペティションにおいて,障害の露呈が困難であるセグメンテーション法について検討した。
論文 参考訳(メタデータ) (2021-02-27T16:06:25Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。