SkillAgentSearch skills...

POLDAM

The Anagram of Omniscient Debugging Log Parser by using Markle tree.

Install / Use

/learn @yebityon/POLDAM
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

POLDAM

概要

このプログラムは、実行トレースのマークル木を用いたプログラム変更前後の差分検出法の提案の論文とComparing Execution Trace Using Merkle-Tree to Detect Backward Incompatibilities[^1].の III.PROPOSED METHODの各ステップである 2) Merkle-Tree Constructionと 3) Calculate Hash Values で使用したアルゴリズムの具体的な実装です。

[^1]: SANER2024 Early Research Achievement (ERA) Track

最新の論文はこのフォルダーから入手できます。 補足資料はこちらから確認できます。

seloggerから取得した実行トレースを入力として、マークル木を構築し、dotファイルとして出力することができます。

レポジトリの構成

具体的な実装はpoldam/以下に含まれます。 seloggerのログをparseするプログラムpoldam/selogger_log_parser, 実際にマークル木を表現するためのAPIのpoldam/graph,論文の実装で用いたヘルパープログラムであるpoldam/helperが含まれています。 poldam/scriptディレクトリは、これらのライブラリを用いたスクリプトを作成するためのディレクトリです。このディレクトリ以下で作成したプログラムは、CMakeを用いたビルド時にライブラリをリンクし、実行ファイルを生成することができます。 test.cppは、poldam/selogger_log_parserと``poldam/helpler,poldam/graph`を用いた論文内の実装のサンプルです。

tree

.
├── CMakeLists.txt
├── Data
│   └── java8 #selogger and java program for sample
├── Doxyfile
├── Doxyfile.bak
├── poldam
│    ├── graph
│    ├── helper
│    ├── script
│    ├── selogger_log_parser
│    └── util
├── Makefile
├── README.md
├── build
├── docker-compose.yml
├── dockerfiles
│   ├── c++
│   └── java8
├── docs
└── poldam_sample.sh

Description

  • Data
    • seloggerとMotivation Exampleなどが含まれます。
  • dockerfiles
    • selogger実行のためのDockerfileが含まれます
  • poldam/graph
    • POLDAM内のマークル木の定義などが含まれます。
  • poldam/helper
    • selogger_log_parserとgraphを用いてマークル木を構築するためのプログラムが含まれます。
  • poldam/script
    • このディレクトリは、POLDAMのライブラリを用いた自作のスクリプトを作成する際に用います。このディレクトリ以下に配置したプログラムは、CMakeを用いてビルドしたとき、POLDAMの他のプログラム(poldam/helper, poldam/graph,poldam/util)とリンクされて実行ファイルが生成されます。
  • poldam/selogger_log_parser
    • SELoggerのログのパーサーです。
    • POLDAMで用いる上での定義などが記述されています。
  • poldam/util
    • utility向けのライブラリです。

Dependency

  • boost 1.80
  • g++-11, gcc-11
  • selogger v0.5.0 (for logging)
  • GNU Make 4.3
  • cmake version 3.22.1

How to start

script/example.cppは論文内で用いた実装の再現です。 オプションのヘルプは次のようになっています

❯ pwd
/your/home/POLDAM
❯ cd build
# export boost path
❯ export POLDAM_BOOST_PATH=/YOUR/BOOST/PATH/boost_1_80_0 
# Compile POLDAM
❯ cmake -D CMAKE_C_COMPILER=/opt/homebrew/bin/gcc-11 -D CMAKE_CXX_COMPILER=/opt/homebrew/bin/g++-11 .. && make
❯ ls
CMakeCache.txt          CMakeFiles              Makefile                cmake_install.cmake     example
❯ ./example -o "../Data/java8/src/motivationExample/origin/selogger_out" -t "../Data/java8/src/motivationExample/target/selogger_out"

POLDAM Options

TBD

View on GitHub
GitHub Stars4
CategoryDevelopment
Updated4mo ago
Forks3

Languages

C++

Security Score

67/100

Audited on Dec 8, 2025

No findings