diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..b87e2bc Binary files /dev/null and b/.DS_Store differ diff --git a/.github/workflows/makefile.yml b/.github/workflows/makefile.yml index 5af095a..b4a3b9f 100644 --- a/.github/workflows/makefile.yml +++ b/.github/workflows/makefile.yml @@ -1,12 +1,13 @@ -name: Make docs +name: Check Docs on: pull_request: branches: [ "main", "develop" ] + paths: + - 'drhook/**' jobs: - build: - + Check_html: runs-on: ubuntu-latest steps: @@ -14,14 +15,44 @@ jobs: - uses: actions/setup-python@v5 with: python-version: '3.13' - cache: 'pip' # caching pip dependencies + cache: 'pip' # Caching pip dependencies - run: pip install -r requirements.txt - name: Make html run: make -C drhook html - - name: Make pdf - run: make -C drhook latexpdf + Check_pdf: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: '3.13' + cache: 'pip' # Caching pip dependencies + - run: pip install -r requirements.txt + + - name: Install latexmk + run: sudo apt install -y latexmk texlive-latex-extra + + - name: Make pdf + run: make -C drhook latexpdf + + Check_markdown: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: '3.13' + cache: 'pip' # Caching pip dependencies + - run: pip install -r requirements.txt + + - name: Make md + run: make -C drhook markdown - - name: Make md - run: make -C drhook markdown + - name: Check diff + # Don't check latexpdf or drhook/_build/html as they contain version hashes etc + # They get rebuilt as part of cd, so just a ci check that they're not broken is fine + run: git diff --exit-code -- drhook/_build/markdown diff --git a/_build/doctrees/environment.pickle b/_build/doctrees/environment.pickle deleted file mode 100644 index 1682bed..0000000 Binary files a/_build/doctrees/environment.pickle and /dev/null differ diff --git a/drhook/.DS_Store b/drhook/.DS_Store new file mode 100644 index 0000000..5c92cf7 Binary files /dev/null and b/drhook/.DS_Store differ diff --git a/Makefile b/drhook/Makefile similarity index 100% rename from Makefile rename to drhook/Makefile diff --git a/_build/.DS_Store b/drhook/_build/.DS_Store similarity index 100% rename from _build/.DS_Store rename to drhook/_build/.DS_Store diff --git a/_build/doctrees/.DS_Store b/drhook/_build/doctrees/.DS_Store similarity index 100% rename from _build/doctrees/.DS_Store rename to drhook/_build/doctrees/.DS_Store diff --git a/_build/doctrees/definitions/definitions.doctree b/drhook/_build/doctrees/definitions/definitions.doctree similarity index 98% rename from _build/doctrees/definitions/definitions.doctree rename to drhook/_build/doctrees/definitions/definitions.doctree index 0593136..328d3fa 100644 Binary files a/_build/doctrees/definitions/definitions.doctree and b/drhook/_build/doctrees/definitions/definitions.doctree differ diff --git a/drhook/_build/doctrees/environment.pickle b/drhook/_build/doctrees/environment.pickle new file mode 100644 index 0000000..8a321a2 Binary files /dev/null and b/drhook/_build/doctrees/environment.pickle differ diff --git a/_build/doctrees/flag/flag.doctree b/drhook/_build/doctrees/flag/flag.doctree similarity index 99% rename from _build/doctrees/flag/flag.doctree rename to drhook/_build/doctrees/flag/flag.doctree index 115a61f..df8a52e 100644 Binary files a/_build/doctrees/flag/flag.doctree and b/drhook/_build/doctrees/flag/flag.doctree differ diff --git a/_build/doctrees/functions/functions.doctree b/drhook/_build/doctrees/functions/functions.doctree similarity index 92% rename from _build/doctrees/functions/functions.doctree rename to drhook/_build/doctrees/functions/functions.doctree index defb93a..8aa2d12 100644 Binary files a/_build/doctrees/functions/functions.doctree and b/drhook/_build/doctrees/functions/functions.doctree differ diff --git a/_build/doctrees/global_vars/global_vars.doctree b/drhook/_build/doctrees/global_vars/global_vars.doctree similarity index 94% rename from _build/doctrees/global_vars/global_vars.doctree rename to drhook/_build/doctrees/global_vars/global_vars.doctree index fae5a30..e96e4c1 100644 Binary files a/_build/doctrees/global_vars/global_vars.doctree and b/drhook/_build/doctrees/global_vars/global_vars.doctree differ diff --git a/_build/doctrees/index.doctree b/drhook/_build/doctrees/index.doctree similarity index 83% rename from _build/doctrees/index.doctree rename to drhook/_build/doctrees/index.doctree index 7049abb..4c9da76 100644 Binary files a/_build/doctrees/index.doctree and b/drhook/_build/doctrees/index.doctree differ diff --git a/_build/html/.DS_Store b/drhook/_build/html/.DS_Store similarity index 100% rename from _build/html/.DS_Store rename to drhook/_build/html/.DS_Store diff --git a/_build/html/.buildinfo b/drhook/_build/html/.buildinfo similarity index 100% rename from _build/html/.buildinfo rename to drhook/_build/html/.buildinfo diff --git a/_build/html/_sources/definitions/definitions.rst.txt b/drhook/_build/html/_sources/definitions/definitions.rst.txt similarity index 100% rename from _build/html/_sources/definitions/definitions.rst.txt rename to drhook/_build/html/_sources/definitions/definitions.rst.txt diff --git a/_build/html/_sources/flag.rst.txt b/drhook/_build/html/_sources/flag.rst.txt similarity index 100% rename from _build/html/_sources/flag.rst.txt rename to drhook/_build/html/_sources/flag.rst.txt diff --git a/_build/html/_sources/flag/flag.rst.txt b/drhook/_build/html/_sources/flag/flag.rst.txt similarity index 100% rename from _build/html/_sources/flag/flag.rst.txt rename to drhook/_build/html/_sources/flag/flag.rst.txt diff --git a/_build/html/_sources/functions/functions.rst.txt b/drhook/_build/html/_sources/functions/functions.rst.txt similarity index 100% rename from _build/html/_sources/functions/functions.rst.txt rename to drhook/_build/html/_sources/functions/functions.rst.txt diff --git a/_build/html/_sources/global_vars/global_vars.rst.txt b/drhook/_build/html/_sources/global_vars/global_vars.rst.txt similarity index 100% rename from _build/html/_sources/global_vars/global_vars.rst.txt rename to drhook/_build/html/_sources/global_vars/global_vars.rst.txt diff --git a/_build/html/_sources/index.rst.txt b/drhook/_build/html/_sources/index.rst.txt similarity index 100% rename from _build/html/_sources/index.rst.txt rename to drhook/_build/html/_sources/index.rst.txt diff --git a/_build/html/_static/_sphinx_javascript_frameworks_compat.js b/drhook/_build/html/_static/_sphinx_javascript_frameworks_compat.js similarity index 100% rename from _build/html/_static/_sphinx_javascript_frameworks_compat.js rename to drhook/_build/html/_static/_sphinx_javascript_frameworks_compat.js diff --git a/_build/html/_static/basic.css b/drhook/_build/html/_static/basic.css similarity index 100% rename from _build/html/_static/basic.css rename to drhook/_build/html/_static/basic.css diff --git a/_build/html/_static/css/badge_only.css b/drhook/_build/html/_static/css/badge_only.css similarity index 100% rename from _build/html/_static/css/badge_only.css rename to drhook/_build/html/_static/css/badge_only.css diff --git a/_build/html/_static/css/fonts/Roboto-Slab-Bold.woff b/drhook/_build/html/_static/css/fonts/Roboto-Slab-Bold.woff similarity index 100% rename from _build/html/_static/css/fonts/Roboto-Slab-Bold.woff rename to drhook/_build/html/_static/css/fonts/Roboto-Slab-Bold.woff diff --git a/_build/html/_static/css/fonts/Roboto-Slab-Bold.woff2 b/drhook/_build/html/_static/css/fonts/Roboto-Slab-Bold.woff2 similarity index 100% rename from _build/html/_static/css/fonts/Roboto-Slab-Bold.woff2 rename to drhook/_build/html/_static/css/fonts/Roboto-Slab-Bold.woff2 diff --git a/_build/html/_static/css/fonts/Roboto-Slab-Regular.woff b/drhook/_build/html/_static/css/fonts/Roboto-Slab-Regular.woff similarity index 100% rename from _build/html/_static/css/fonts/Roboto-Slab-Regular.woff rename to drhook/_build/html/_static/css/fonts/Roboto-Slab-Regular.woff diff --git a/_build/html/_static/css/fonts/Roboto-Slab-Regular.woff2 b/drhook/_build/html/_static/css/fonts/Roboto-Slab-Regular.woff2 similarity index 100% rename from _build/html/_static/css/fonts/Roboto-Slab-Regular.woff2 rename to drhook/_build/html/_static/css/fonts/Roboto-Slab-Regular.woff2 diff --git a/_build/html/_static/css/fonts/fontawesome-webfont.eot b/drhook/_build/html/_static/css/fonts/fontawesome-webfont.eot similarity index 100% rename from _build/html/_static/css/fonts/fontawesome-webfont.eot rename to drhook/_build/html/_static/css/fonts/fontawesome-webfont.eot diff --git a/_build/html/_static/css/fonts/fontawesome-webfont.svg b/drhook/_build/html/_static/css/fonts/fontawesome-webfont.svg similarity index 100% rename from _build/html/_static/css/fonts/fontawesome-webfont.svg rename to drhook/_build/html/_static/css/fonts/fontawesome-webfont.svg diff --git a/_build/html/_static/css/fonts/fontawesome-webfont.ttf b/drhook/_build/html/_static/css/fonts/fontawesome-webfont.ttf similarity index 100% rename from _build/html/_static/css/fonts/fontawesome-webfont.ttf rename to drhook/_build/html/_static/css/fonts/fontawesome-webfont.ttf diff --git a/_build/html/_static/css/fonts/fontawesome-webfont.woff b/drhook/_build/html/_static/css/fonts/fontawesome-webfont.woff similarity index 100% rename from _build/html/_static/css/fonts/fontawesome-webfont.woff rename to drhook/_build/html/_static/css/fonts/fontawesome-webfont.woff diff --git a/_build/html/_static/css/fonts/fontawesome-webfont.woff2 b/drhook/_build/html/_static/css/fonts/fontawesome-webfont.woff2 similarity index 100% rename from _build/html/_static/css/fonts/fontawesome-webfont.woff2 rename to drhook/_build/html/_static/css/fonts/fontawesome-webfont.woff2 diff --git a/_build/html/_static/css/fonts/lato-bold-italic.woff b/drhook/_build/html/_static/css/fonts/lato-bold-italic.woff similarity index 100% rename from _build/html/_static/css/fonts/lato-bold-italic.woff rename to drhook/_build/html/_static/css/fonts/lato-bold-italic.woff diff --git a/_build/html/_static/css/fonts/lato-bold-italic.woff2 b/drhook/_build/html/_static/css/fonts/lato-bold-italic.woff2 similarity index 100% rename from _build/html/_static/css/fonts/lato-bold-italic.woff2 rename to drhook/_build/html/_static/css/fonts/lato-bold-italic.woff2 diff --git a/_build/html/_static/css/fonts/lato-bold.woff b/drhook/_build/html/_static/css/fonts/lato-bold.woff similarity index 100% rename from _build/html/_static/css/fonts/lato-bold.woff rename to drhook/_build/html/_static/css/fonts/lato-bold.woff diff --git a/_build/html/_static/css/fonts/lato-bold.woff2 b/drhook/_build/html/_static/css/fonts/lato-bold.woff2 similarity index 100% rename from _build/html/_static/css/fonts/lato-bold.woff2 rename to drhook/_build/html/_static/css/fonts/lato-bold.woff2 diff --git a/_build/html/_static/css/fonts/lato-normal-italic.woff b/drhook/_build/html/_static/css/fonts/lato-normal-italic.woff similarity index 100% rename from _build/html/_static/css/fonts/lato-normal-italic.woff rename to drhook/_build/html/_static/css/fonts/lato-normal-italic.woff diff --git a/_build/html/_static/css/fonts/lato-normal-italic.woff2 b/drhook/_build/html/_static/css/fonts/lato-normal-italic.woff2 similarity index 100% rename from _build/html/_static/css/fonts/lato-normal-italic.woff2 rename to drhook/_build/html/_static/css/fonts/lato-normal-italic.woff2 diff --git a/_build/html/_static/css/fonts/lato-normal.woff b/drhook/_build/html/_static/css/fonts/lato-normal.woff similarity index 100% rename from _build/html/_static/css/fonts/lato-normal.woff rename to drhook/_build/html/_static/css/fonts/lato-normal.woff diff --git a/_build/html/_static/css/fonts/lato-normal.woff2 b/drhook/_build/html/_static/css/fonts/lato-normal.woff2 similarity index 100% rename from _build/html/_static/css/fonts/lato-normal.woff2 rename to drhook/_build/html/_static/css/fonts/lato-normal.woff2 diff --git a/_build/html/_static/css/theme.css b/drhook/_build/html/_static/css/theme.css similarity index 100% rename from _build/html/_static/css/theme.css rename to drhook/_build/html/_static/css/theme.css diff --git a/_build/html/_static/doctools.js b/drhook/_build/html/_static/doctools.js similarity index 100% rename from _build/html/_static/doctools.js rename to drhook/_build/html/_static/doctools.js diff --git a/_build/html/_static/documentation_options.js b/drhook/_build/html/_static/documentation_options.js similarity index 100% rename from _build/html/_static/documentation_options.js rename to drhook/_build/html/_static/documentation_options.js diff --git a/_build/html/_static/file.png b/drhook/_build/html/_static/file.png similarity index 100% rename from _build/html/_static/file.png rename to drhook/_build/html/_static/file.png diff --git a/_build/html/_static/fonts/Lato/lato-bold.eot b/drhook/_build/html/_static/fonts/Lato/lato-bold.eot similarity index 100% rename from _build/html/_static/fonts/Lato/lato-bold.eot rename to drhook/_build/html/_static/fonts/Lato/lato-bold.eot diff --git a/_build/html/_static/fonts/Lato/lato-bold.ttf b/drhook/_build/html/_static/fonts/Lato/lato-bold.ttf similarity index 100% rename from _build/html/_static/fonts/Lato/lato-bold.ttf rename to drhook/_build/html/_static/fonts/Lato/lato-bold.ttf diff --git a/_build/html/_static/fonts/Lato/lato-bold.woff b/drhook/_build/html/_static/fonts/Lato/lato-bold.woff similarity index 100% rename from _build/html/_static/fonts/Lato/lato-bold.woff rename to drhook/_build/html/_static/fonts/Lato/lato-bold.woff diff --git a/_build/html/_static/fonts/Lato/lato-bold.woff2 b/drhook/_build/html/_static/fonts/Lato/lato-bold.woff2 similarity index 100% rename from _build/html/_static/fonts/Lato/lato-bold.woff2 rename to drhook/_build/html/_static/fonts/Lato/lato-bold.woff2 diff --git a/_build/html/_static/fonts/Lato/lato-bolditalic.eot b/drhook/_build/html/_static/fonts/Lato/lato-bolditalic.eot similarity index 100% rename from _build/html/_static/fonts/Lato/lato-bolditalic.eot rename to drhook/_build/html/_static/fonts/Lato/lato-bolditalic.eot diff --git a/_build/html/_static/fonts/Lato/lato-bolditalic.ttf b/drhook/_build/html/_static/fonts/Lato/lato-bolditalic.ttf similarity index 100% rename from _build/html/_static/fonts/Lato/lato-bolditalic.ttf rename to drhook/_build/html/_static/fonts/Lato/lato-bolditalic.ttf diff --git a/_build/html/_static/fonts/Lato/lato-bolditalic.woff b/drhook/_build/html/_static/fonts/Lato/lato-bolditalic.woff similarity index 100% rename from _build/html/_static/fonts/Lato/lato-bolditalic.woff rename to drhook/_build/html/_static/fonts/Lato/lato-bolditalic.woff diff --git a/_build/html/_static/fonts/Lato/lato-bolditalic.woff2 b/drhook/_build/html/_static/fonts/Lato/lato-bolditalic.woff2 similarity index 100% rename from _build/html/_static/fonts/Lato/lato-bolditalic.woff2 rename to drhook/_build/html/_static/fonts/Lato/lato-bolditalic.woff2 diff --git a/_build/html/_static/fonts/Lato/lato-italic.eot b/drhook/_build/html/_static/fonts/Lato/lato-italic.eot similarity index 100% rename from _build/html/_static/fonts/Lato/lato-italic.eot rename to drhook/_build/html/_static/fonts/Lato/lato-italic.eot diff --git a/_build/html/_static/fonts/Lato/lato-italic.ttf b/drhook/_build/html/_static/fonts/Lato/lato-italic.ttf similarity index 100% rename from _build/html/_static/fonts/Lato/lato-italic.ttf rename to drhook/_build/html/_static/fonts/Lato/lato-italic.ttf diff --git a/_build/html/_static/fonts/Lato/lato-italic.woff b/drhook/_build/html/_static/fonts/Lato/lato-italic.woff similarity index 100% rename from _build/html/_static/fonts/Lato/lato-italic.woff rename to drhook/_build/html/_static/fonts/Lato/lato-italic.woff diff --git a/_build/html/_static/fonts/Lato/lato-italic.woff2 b/drhook/_build/html/_static/fonts/Lato/lato-italic.woff2 similarity index 100% rename from _build/html/_static/fonts/Lato/lato-italic.woff2 rename to drhook/_build/html/_static/fonts/Lato/lato-italic.woff2 diff --git a/_build/html/_static/fonts/Lato/lato-regular.eot b/drhook/_build/html/_static/fonts/Lato/lato-regular.eot similarity index 100% rename from _build/html/_static/fonts/Lato/lato-regular.eot rename to drhook/_build/html/_static/fonts/Lato/lato-regular.eot diff --git a/_build/html/_static/fonts/Lato/lato-regular.ttf b/drhook/_build/html/_static/fonts/Lato/lato-regular.ttf similarity index 100% rename from _build/html/_static/fonts/Lato/lato-regular.ttf rename to drhook/_build/html/_static/fonts/Lato/lato-regular.ttf diff --git a/_build/html/_static/fonts/Lato/lato-regular.woff b/drhook/_build/html/_static/fonts/Lato/lato-regular.woff similarity index 100% rename from _build/html/_static/fonts/Lato/lato-regular.woff rename to drhook/_build/html/_static/fonts/Lato/lato-regular.woff diff --git a/_build/html/_static/fonts/Lato/lato-regular.woff2 b/drhook/_build/html/_static/fonts/Lato/lato-regular.woff2 similarity index 100% rename from _build/html/_static/fonts/Lato/lato-regular.woff2 rename to drhook/_build/html/_static/fonts/Lato/lato-regular.woff2 diff --git a/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot b/drhook/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot similarity index 100% rename from _build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot rename to drhook/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot diff --git a/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf b/drhook/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf similarity index 100% rename from _build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf rename to drhook/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf diff --git a/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff b/drhook/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff similarity index 100% rename from _build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff rename to drhook/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff diff --git a/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2 b/drhook/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2 similarity index 100% rename from _build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2 rename to drhook/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2 diff --git a/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot b/drhook/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot similarity index 100% rename from _build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot rename to drhook/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot diff --git a/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf b/drhook/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf similarity index 100% rename from _build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf rename to drhook/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf diff --git a/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff b/drhook/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff similarity index 100% rename from _build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff rename to drhook/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff diff --git a/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2 b/drhook/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2 similarity index 100% rename from _build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2 rename to drhook/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2 diff --git a/_build/html/_static/jquery.js b/drhook/_build/html/_static/jquery.js similarity index 100% rename from _build/html/_static/jquery.js rename to drhook/_build/html/_static/jquery.js diff --git a/_build/html/_static/js/badge_only.js b/drhook/_build/html/_static/js/badge_only.js similarity index 100% rename from _build/html/_static/js/badge_only.js rename to drhook/_build/html/_static/js/badge_only.js diff --git a/_build/html/_static/js/theme.js b/drhook/_build/html/_static/js/theme.js similarity index 100% rename from _build/html/_static/js/theme.js rename to drhook/_build/html/_static/js/theme.js diff --git a/_build/html/_static/js/versions.js b/drhook/_build/html/_static/js/versions.js similarity index 100% rename from _build/html/_static/js/versions.js rename to drhook/_build/html/_static/js/versions.js diff --git a/_build/html/_static/language_data.js b/drhook/_build/html/_static/language_data.js similarity index 100% rename from _build/html/_static/language_data.js rename to drhook/_build/html/_static/language_data.js diff --git a/_build/html/_static/minus.png b/drhook/_build/html/_static/minus.png similarity index 100% rename from _build/html/_static/minus.png rename to drhook/_build/html/_static/minus.png diff --git a/_build/html/_static/plus.png b/drhook/_build/html/_static/plus.png similarity index 100% rename from _build/html/_static/plus.png rename to drhook/_build/html/_static/plus.png diff --git a/_build/html/_static/pygments.css b/drhook/_build/html/_static/pygments.css similarity index 100% rename from _build/html/_static/pygments.css rename to drhook/_build/html/_static/pygments.css diff --git a/_build/html/_static/searchtools.js b/drhook/_build/html/_static/searchtools.js similarity index 100% rename from _build/html/_static/searchtools.js rename to drhook/_build/html/_static/searchtools.js diff --git a/_build/html/_static/sphinx_highlight.js b/drhook/_build/html/_static/sphinx_highlight.js similarity index 100% rename from _build/html/_static/sphinx_highlight.js rename to drhook/_build/html/_static/sphinx_highlight.js diff --git a/_build/html/definitions/definitions.html b/drhook/_build/html/definitions/definitions.html similarity index 100% rename from _build/html/definitions/definitions.html rename to drhook/_build/html/definitions/definitions.html diff --git a/_build/html/flag.html b/drhook/_build/html/flag.html similarity index 100% rename from _build/html/flag.html rename to drhook/_build/html/flag.html diff --git a/_build/html/flag/flag.html b/drhook/_build/html/flag/flag.html similarity index 100% rename from _build/html/flag/flag.html rename to drhook/_build/html/flag/flag.html diff --git a/_build/html/functions/functions.html b/drhook/_build/html/functions/functions.html similarity index 100% rename from _build/html/functions/functions.html rename to drhook/_build/html/functions/functions.html diff --git a/_build/html/genindex.html b/drhook/_build/html/genindex.html similarity index 100% rename from _build/html/genindex.html rename to drhook/_build/html/genindex.html diff --git a/_build/html/global_vars/global_vars.html b/drhook/_build/html/global_vars/global_vars.html similarity index 100% rename from _build/html/global_vars/global_vars.html rename to drhook/_build/html/global_vars/global_vars.html diff --git a/_build/html/index.html b/drhook/_build/html/index.html similarity index 100% rename from _build/html/index.html rename to drhook/_build/html/index.html diff --git a/_build/html/objects.inv b/drhook/_build/html/objects.inv similarity index 100% rename from _build/html/objects.inv rename to drhook/_build/html/objects.inv diff --git a/_build/html/search.html b/drhook/_build/html/search.html similarity index 100% rename from _build/html/search.html rename to drhook/_build/html/search.html diff --git a/_build/html/searchindex.js b/drhook/_build/html/searchindex.js similarity index 100% rename from _build/html/searchindex.js rename to drhook/_build/html/searchindex.js diff --git a/_build/latex/DrHook_Manual.aux b/drhook/_build/latex/DrHook_Manual.aux similarity index 100% rename from _build/latex/DrHook_Manual.aux rename to drhook/_build/latex/DrHook_Manual.aux diff --git a/_build/latex/DrHook_Manual.fdb_latexmk b/drhook/_build/latex/DrHook_Manual.fdb_latexmk similarity index 90% rename from _build/latex/DrHook_Manual.fdb_latexmk rename to drhook/_build/latex/DrHook_Manual.fdb_latexmk index 5085215..e8b83ee 100644 --- a/_build/latex/DrHook_Manual.fdb_latexmk +++ b/drhook/_build/latex/DrHook_Manual.fdb_latexmk @@ -1,11 +1,11 @@ # Fdb version 4 -["makeindex DrHook_Manual.idx"] 1739210430.42925 "DrHook_Manual.idx" "DrHook_Manual.ind" "DrHook_Manual" 1739985440.82709 0 - "DrHook_Manual.idx" 1739985438.48675 0 d41d8cd98f00b204e9800998ecf8427e "pdflatex" +["makeindex DrHook_Manual.idx"] 1739210430.42925 "DrHook_Manual.idx" "DrHook_Manual.ind" "DrHook_Manual" 1741181636.58068 0 + "DrHook_Manual.idx" 1741181635.42928 0 d41d8cd98f00b204e9800998ecf8427e "pdflatex" (generated) "DrHook_Manual.ilg" "DrHook_Manual.ind" (rewritten before read) -["pdflatex"] 1739985437.06278 "DrHook_Manual.tex" "DrHook_Manual.pdf" "DrHook_Manual" 1739985440.82721 0 +["pdflatex"] 1741181634.28158 "DrHook_Manual.tex" "DrHook_Manual.pdf" "DrHook_Manual" 1741181636.58083 0 "/usr/local/texlive/2024/texmf-dist/fonts/enc/dvips/tex-gyre/q-ec-sc.enc" 1529098226 2881 8e2aef9e38084b946e7656b60672fedb "" "/usr/local/texlive/2024/texmf-dist/fonts/enc/dvips/tex-gyre/q-ec.enc" 1529098226 2457 aaabbccba4df2a7f7371410ee4e075a3 "" "/usr/local/texlive/2024/texmf-dist/fonts/enc/dvips/tex-gyre/q-ts1.enc" 1529098226 3124 3813fd4c981d99822890a2861b0d274c "" @@ -156,32 +156,32 @@ "/usr/local/texlive/2024/texmf-var/fonts/map/pdftex/updmap/pdftex.map" 1738164845.50051 5467645 128b85b7cde5f5edc5cb7f1dd7ff8736 "" "/usr/local/texlive/2024/texmf-var/web2c/pdftex/pdflatex.fmt" 1738164817 8221422 10d36fc0e95a3f9bd780ebc24515027d "" "/usr/local/texlive/2024/texmf.cnf" 1710266656 577 e590dabc9e28c5b61546e15f63eebcdf "" - "DrHook_Manual.aux" 1739985440.65645 57485 3c096328fb8b0acfd48167ff8f1a8cec "pdflatex" - "DrHook_Manual.ind" 1739210430.56188 0 d41d8cd98f00b204e9800998ecf8427e "makeindex DrHook_Manual.idx" - "DrHook_Manual.out" 1739985440.67885 30427 2ce2245a3db7452187ef945454afea7c "pdflatex" - "DrHook_Manual.tex" 1739985436.58673 105864 3f75297b72e87948a5d3145d3757c32d "" - "DrHook_Manual.toc" 1739985440.68425 20755 291fee48d47e2414e77dc6159f4072a4 "pdflatex" - "sphinx.sty" 1738148806.54906 50659 6d393be3f369a7862f0b19a359f1ab89 "" - "sphinxhighlight.sty" 1739985436.22327 7553 83fb52292c17957d9f4aadcb28c57a87 "" - "sphinxlatexadmonitions.sty" 1738148806.55034 18222 f3bfd316b630ed188fcc20bf320acafe "" - "sphinxlatexcontainers.sty" 1738148806.5506 901 d3a3a1b7b2547f47ade2499350b5c420 "" - "sphinxlatexgraphics.sty" 1738148806.55087 4840 a9578332b6f3b35e198751fb632c9b79 "" - "sphinxlatexindbibtoc.sty" 1738148806.55123 2066 b93f8504d02f6337fde3074b179de55e "" - "sphinxlatexlists.sty" 1738148806.55149 5139 c2de2a1d98d3c6ceedfe46505abd3c07 "" - "sphinxlatexliterals.sty" 1738148806.55193 45679 3890d40120836f081d8920e14485124f "" - "sphinxlatexnumfig.sty" 1738148806.55219 4532 3633caf84afa1a98e1a060b7868202bb "" - "sphinxlatexobjects.sty" 1738148806.55251 14354 7db81294dd9bf70f65d5cc34221a0b86 "" - "sphinxlatexshadowbox.sty" 1738148806.55278 5066 97a2be0d1dfdc98548b7461f1949b95f "" - "sphinxlatexstyleheadings.sty" 1738148806.55304 3445 a1582a5f3b336dcffa71b5ca3d8fc31f "" - "sphinxlatexstylepage.sty" 1738148806.55328 3064 abce6c3018a84afee0afb08a431944ea "" - "sphinxlatexstyletext.sty" 1738148806.55354 6881 543f3cecccc7dccac396b5720cccf443 "" - "sphinxlatextables.sty" 1738148806.554 57644 2253ce149b29042948a000d2dbf50b50 "" - "sphinxmanual.cls" 1738148806.55454 4241 7b0d7a37df7b5715fb0dbd585c52ecdb "" - "sphinxmessages.sty" 1739985436.59452 745 3f5fcd6cdd7964ed608767954a8ced6f "" - "sphinxoptionsgeometry.sty" 1738148806.5548 2061 47bb34b8ed8a78823eb0c886abfb9f4d "" - "sphinxoptionshyperref.sty" 1738148806.55504 1094 79beb8b8a3f10784f8cce804e0f9d3aa "" - "sphinxpackageboxes.sty" 1738148806.55544 36106 1be2053eb1cb9b083b3a75e3657bcb24 "" - "sphinxpackagefootnote.sty" 1738148806.55611 15330 2fb656b6ce8cd1f6aba2d1c508fb51e5 "" + "DrHook_Manual.aux" 1741181636.39576 57485 3c096328fb8b0acfd48167ff8f1a8cec "pdflatex" + "DrHook_Manual.ind" 1741181445.1621 0 d41d8cd98f00b204e9800998ecf8427e "makeindex DrHook_Manual.idx" + "DrHook_Manual.out" 1741181636.41838 30427 2ce2245a3db7452187ef945454afea7c "pdflatex" + "DrHook_Manual.tex" 1741181633.63707 105864 4bf877d2ef70b65535edbcbe496037d2 "" + "DrHook_Manual.toc" 1741181636.42449 20755 291fee48d47e2414e77dc6159f4072a4 "pdflatex" + "sphinx.sty" 1741181445.17275 50659 6d393be3f369a7862f0b19a359f1ab89 "" + "sphinxhighlight.sty" 1741181633.39776 7553 83fb52292c17957d9f4aadcb28c57a87 "" + "sphinxlatexadmonitions.sty" 1741181445.17488 18222 f3bfd316b630ed188fcc20bf320acafe "" + "sphinxlatexcontainers.sty" 1741181445.17588 901 d3a3a1b7b2547f47ade2499350b5c420 "" + "sphinxlatexgraphics.sty" 1741181445.17784 4840 a9578332b6f3b35e198751fb632c9b79 "" + "sphinxlatexindbibtoc.sty" 1741181445.17862 2066 b93f8504d02f6337fde3074b179de55e "" + "sphinxlatexlists.sty" 1741181445.17892 5139 c2de2a1d98d3c6ceedfe46505abd3c07 "" + "sphinxlatexliterals.sty" 1741181445.18347 45679 3890d40120836f081d8920e14485124f "" + "sphinxlatexnumfig.sty" 1741181445.18675 4532 3633caf84afa1a98e1a060b7868202bb "" + "sphinxlatexobjects.sty" 1741181445.1895 14354 7db81294dd9bf70f65d5cc34221a0b86 "" + "sphinxlatexshadowbox.sty" 1741181445.19437 5066 97a2be0d1dfdc98548b7461f1949b95f "" + "sphinxlatexstyleheadings.sty" 1741181445.19516 3445 a1582a5f3b336dcffa71b5ca3d8fc31f "" + "sphinxlatexstylepage.sty" 1741181445.19559 3064 abce6c3018a84afee0afb08a431944ea "" + "sphinxlatexstyletext.sty" 1741181445.19587 6881 543f3cecccc7dccac396b5720cccf443 "" + "sphinxlatextables.sty" 1741181445.19625 57644 2253ce149b29042948a000d2dbf50b50 "" + "sphinxmanual.cls" 1741181445.19651 4241 7b0d7a37df7b5715fb0dbd585c52ecdb "" + "sphinxmessages.sty" 1741181633.64029 745 3f5fcd6cdd7964ed608767954a8ced6f "" + "sphinxoptionsgeometry.sty" 1741181445.19696 2061 47bb34b8ed8a78823eb0c886abfb9f4d "" + "sphinxoptionshyperref.sty" 1741181445.19716 1094 79beb8b8a3f10784f8cce804e0f9d3aa "" + "sphinxpackageboxes.sty" 1741181445.19741 36106 1be2053eb1cb9b083b3a75e3657bcb24 "" + "sphinxpackagefootnote.sty" 1741181445.19844 15330 2fb656b6ce8cd1f6aba2d1c508fb51e5 "" (generated) "DrHook_Manual.aux" "DrHook_Manual.idx" diff --git a/_build/latex/DrHook_Manual.fls b/drhook/_build/latex/DrHook_Manual.fls similarity index 99% rename from _build/latex/DrHook_Manual.fls rename to drhook/_build/latex/DrHook_Manual.fls index e4a4f78..191ace4 100644 --- a/_build/latex/DrHook_Manual.fls +++ b/drhook/_build/latex/DrHook_Manual.fls @@ -1,4 +1,4 @@ -PWD /Users/naab/PycharmProjects/ifs-arpege-coding-standards/drhook/_build/latex +PWD /Users/naab/PycharmProjects/ci_test/drhook/_build/latex INPUT /usr/local/texlive/2024/texmf.cnf INPUT /usr/local/texlive/2024/texmf-dist/web2c/texmf.cnf INPUT /usr/local/texlive/2024/texmf-var/web2c/pdftex/pdflatex.fmt diff --git a/_build/latex/DrHook_Manual.idx b/drhook/_build/latex/DrHook_Manual.idx similarity index 100% rename from _build/latex/DrHook_Manual.idx rename to drhook/_build/latex/DrHook_Manual.idx diff --git a/_build/latex/DrHook_Manual.ilg b/drhook/_build/latex/DrHook_Manual.ilg similarity index 100% rename from _build/latex/DrHook_Manual.ilg rename to drhook/_build/latex/DrHook_Manual.ilg diff --git a/_build/latex/DrHook_Manual.ind b/drhook/_build/latex/DrHook_Manual.ind similarity index 100% rename from _build/latex/DrHook_Manual.ind rename to drhook/_build/latex/DrHook_Manual.ind diff --git a/_build/latex/DrHook_Manual.log b/drhook/_build/latex/DrHook_Manual.log similarity index 99% rename from _build/latex/DrHook_Manual.log rename to drhook/_build/latex/DrHook_Manual.log index d767e37..5310be7 100644 --- a/_build/latex/DrHook_Manual.log +++ b/drhook/_build/latex/DrHook_Manual.log @@ -1,4 +1,4 @@ -This is pdfTeX, Version 3.141592653-2.6-1.40.26 (TeX Live 2024) (preloaded format=pdflatex 2025.1.29) 19 FEB 2025 17:17 +This is pdfTeX, Version 3.141592653-2.6-1.40.26 (TeX Live 2024) (preloaded format=pdflatex 2025.1.29) 5 MAR 2025 13:33 entering extended mode restricted \write18 enabled. %&-line parsing enabled. @@ -1134,7 +1134,7 @@ exmf-dist/fonts/type1/public/tex-gyre/qtmri.pfb> -Output written on DrHook_Manual.pdf (45 pages, 265697 bytes). +Output written on DrHook_Manual.pdf (45 pages, 265693 bytes). PDF statistics: 1501 PDF objects out of 1728 (max. 8388607) 1421 compressed objects within 15 object streams diff --git a/_build/latex/DrHook_Manual.out b/drhook/_build/latex/DrHook_Manual.out similarity index 100% rename from _build/latex/DrHook_Manual.out rename to drhook/_build/latex/DrHook_Manual.out diff --git a/_build/latex/DrHook_Manual.pdf b/drhook/_build/latex/DrHook_Manual.pdf similarity index 98% rename from _build/latex/DrHook_Manual.pdf rename to drhook/_build/latex/DrHook_Manual.pdf index bf344a4..701ccb3 100644 Binary files a/_build/latex/DrHook_Manual.pdf and b/drhook/_build/latex/DrHook_Manual.pdf differ diff --git a/_build/latex/DrHook_Manual.tex b/drhook/_build/latex/DrHook_Manual.tex similarity index 99% rename from _build/latex/DrHook_Manual.tex rename to drhook/_build/latex/DrHook_Manual.tex index acd9f46..ea4d0e3 100644 --- a/_build/latex/DrHook_Manual.tex +++ b/drhook/_build/latex/DrHook_Manual.tex @@ -63,7 +63,7 @@ \title{DrHook Manual} -\date{Feb 19, 2025} +\date{Mar 05, 2025} \release{} \author{ECMWF} \newcommand{\sphinxlogo}{\vbox{}} diff --git a/_build/latex/DrHook_Manual.toc b/drhook/_build/latex/DrHook_Manual.toc similarity index 100% rename from _build/latex/DrHook_Manual.toc rename to drhook/_build/latex/DrHook_Manual.toc diff --git a/_build/latex/LICRcyr2utf8.xdy b/drhook/_build/latex/LICRcyr2utf8.xdy similarity index 100% rename from _build/latex/LICRcyr2utf8.xdy rename to drhook/_build/latex/LICRcyr2utf8.xdy diff --git a/_build/latex/LICRlatin2utf8.xdy b/drhook/_build/latex/LICRlatin2utf8.xdy similarity index 100% rename from _build/latex/LICRlatin2utf8.xdy rename to drhook/_build/latex/LICRlatin2utf8.xdy diff --git a/_build/latex/LatinRules.xdy b/drhook/_build/latex/LatinRules.xdy similarity index 100% rename from _build/latex/LatinRules.xdy rename to drhook/_build/latex/LatinRules.xdy diff --git a/_build/latex/Makefile b/drhook/_build/latex/Makefile similarity index 100% rename from _build/latex/Makefile rename to drhook/_build/latex/Makefile diff --git a/_build/latex/latexmkjarc b/drhook/_build/latex/latexmkjarc similarity index 100% rename from _build/latex/latexmkjarc rename to drhook/_build/latex/latexmkjarc diff --git a/_build/latex/latexmkrc b/drhook/_build/latex/latexmkrc similarity index 100% rename from _build/latex/latexmkrc rename to drhook/_build/latex/latexmkrc diff --git a/_build/latex/make.bat b/drhook/_build/latex/make.bat similarity index 100% rename from _build/latex/make.bat rename to drhook/_build/latex/make.bat diff --git a/_build/latex/python.ist b/drhook/_build/latex/python.ist similarity index 100% rename from _build/latex/python.ist rename to drhook/_build/latex/python.ist diff --git a/_build/latex/sphinx.sty b/drhook/_build/latex/sphinx.sty similarity index 100% rename from _build/latex/sphinx.sty rename to drhook/_build/latex/sphinx.sty diff --git a/_build/latex/sphinx.xdy b/drhook/_build/latex/sphinx.xdy similarity index 100% rename from _build/latex/sphinx.xdy rename to drhook/_build/latex/sphinx.xdy diff --git a/_build/latex/sphinxhighlight.sty b/drhook/_build/latex/sphinxhighlight.sty similarity index 100% rename from _build/latex/sphinxhighlight.sty rename to drhook/_build/latex/sphinxhighlight.sty diff --git a/_build/latex/sphinxhowto.cls b/drhook/_build/latex/sphinxhowto.cls similarity index 100% rename from _build/latex/sphinxhowto.cls rename to drhook/_build/latex/sphinxhowto.cls diff --git a/_build/latex/sphinxlatexadmonitions.sty b/drhook/_build/latex/sphinxlatexadmonitions.sty similarity index 100% rename from _build/latex/sphinxlatexadmonitions.sty rename to drhook/_build/latex/sphinxlatexadmonitions.sty diff --git a/_build/latex/sphinxlatexcontainers.sty b/drhook/_build/latex/sphinxlatexcontainers.sty similarity index 100% rename from _build/latex/sphinxlatexcontainers.sty rename to drhook/_build/latex/sphinxlatexcontainers.sty diff --git a/_build/latex/sphinxlatexgraphics.sty b/drhook/_build/latex/sphinxlatexgraphics.sty similarity index 100% rename from _build/latex/sphinxlatexgraphics.sty rename to drhook/_build/latex/sphinxlatexgraphics.sty diff --git a/_build/latex/sphinxlatexindbibtoc.sty b/drhook/_build/latex/sphinxlatexindbibtoc.sty similarity index 100% rename from _build/latex/sphinxlatexindbibtoc.sty rename to drhook/_build/latex/sphinxlatexindbibtoc.sty diff --git a/_build/latex/sphinxlatexlists.sty b/drhook/_build/latex/sphinxlatexlists.sty similarity index 100% rename from _build/latex/sphinxlatexlists.sty rename to drhook/_build/latex/sphinxlatexlists.sty diff --git a/_build/latex/sphinxlatexliterals.sty b/drhook/_build/latex/sphinxlatexliterals.sty similarity index 100% rename from _build/latex/sphinxlatexliterals.sty rename to drhook/_build/latex/sphinxlatexliterals.sty diff --git a/_build/latex/sphinxlatexnumfig.sty b/drhook/_build/latex/sphinxlatexnumfig.sty similarity index 100% rename from _build/latex/sphinxlatexnumfig.sty rename to drhook/_build/latex/sphinxlatexnumfig.sty diff --git a/_build/latex/sphinxlatexobjects.sty b/drhook/_build/latex/sphinxlatexobjects.sty similarity index 100% rename from _build/latex/sphinxlatexobjects.sty rename to drhook/_build/latex/sphinxlatexobjects.sty diff --git a/_build/latex/sphinxlatexshadowbox.sty b/drhook/_build/latex/sphinxlatexshadowbox.sty similarity index 100% rename from _build/latex/sphinxlatexshadowbox.sty rename to drhook/_build/latex/sphinxlatexshadowbox.sty diff --git a/_build/latex/sphinxlatexstyleheadings.sty b/drhook/_build/latex/sphinxlatexstyleheadings.sty similarity index 100% rename from _build/latex/sphinxlatexstyleheadings.sty rename to drhook/_build/latex/sphinxlatexstyleheadings.sty diff --git a/_build/latex/sphinxlatexstylepage.sty b/drhook/_build/latex/sphinxlatexstylepage.sty similarity index 100% rename from _build/latex/sphinxlatexstylepage.sty rename to drhook/_build/latex/sphinxlatexstylepage.sty diff --git a/_build/latex/sphinxlatexstyletext.sty b/drhook/_build/latex/sphinxlatexstyletext.sty similarity index 100% rename from _build/latex/sphinxlatexstyletext.sty rename to drhook/_build/latex/sphinxlatexstyletext.sty diff --git a/_build/latex/sphinxlatextables.sty b/drhook/_build/latex/sphinxlatextables.sty similarity index 100% rename from _build/latex/sphinxlatextables.sty rename to drhook/_build/latex/sphinxlatextables.sty diff --git a/_build/latex/sphinxmanual.cls b/drhook/_build/latex/sphinxmanual.cls similarity index 100% rename from _build/latex/sphinxmanual.cls rename to drhook/_build/latex/sphinxmanual.cls diff --git a/_build/latex/sphinxmessages.sty b/drhook/_build/latex/sphinxmessages.sty similarity index 100% rename from _build/latex/sphinxmessages.sty rename to drhook/_build/latex/sphinxmessages.sty diff --git a/_build/latex/sphinxoptionsgeometry.sty b/drhook/_build/latex/sphinxoptionsgeometry.sty similarity index 100% rename from _build/latex/sphinxoptionsgeometry.sty rename to drhook/_build/latex/sphinxoptionsgeometry.sty diff --git a/_build/latex/sphinxoptionshyperref.sty b/drhook/_build/latex/sphinxoptionshyperref.sty similarity index 100% rename from _build/latex/sphinxoptionshyperref.sty rename to drhook/_build/latex/sphinxoptionshyperref.sty diff --git a/_build/latex/sphinxpackageboxes.sty b/drhook/_build/latex/sphinxpackageboxes.sty similarity index 100% rename from _build/latex/sphinxpackageboxes.sty rename to drhook/_build/latex/sphinxpackageboxes.sty diff --git a/_build/latex/sphinxpackagecyrillic.sty b/drhook/_build/latex/sphinxpackagecyrillic.sty similarity index 100% rename from _build/latex/sphinxpackagecyrillic.sty rename to drhook/_build/latex/sphinxpackagecyrillic.sty diff --git a/_build/latex/sphinxpackagefootnote.sty b/drhook/_build/latex/sphinxpackagefootnote.sty similarity index 100% rename from _build/latex/sphinxpackagefootnote.sty rename to drhook/_build/latex/sphinxpackagefootnote.sty diff --git a/_build/latex/sphinxpackagesubstitutefont.sty b/drhook/_build/latex/sphinxpackagesubstitutefont.sty similarity index 100% rename from _build/latex/sphinxpackagesubstitutefont.sty rename to drhook/_build/latex/sphinxpackagesubstitutefont.sty diff --git a/_build/markdown/.DS_Store b/drhook/_build/markdown/.DS_Store similarity index 100% rename from _build/markdown/.DS_Store rename to drhook/_build/markdown/.DS_Store diff --git a/_build/markdown/definitions/definitions.md b/drhook/_build/markdown/definitions/definitions.md similarity index 100% rename from _build/markdown/definitions/definitions.md rename to drhook/_build/markdown/definitions/definitions.md diff --git a/_build/markdown/flag/flag.md b/drhook/_build/markdown/flag/flag.md similarity index 100% rename from _build/markdown/flag/flag.md rename to drhook/_build/markdown/flag/flag.md diff --git a/_build/markdown/functions/functions.md b/drhook/_build/markdown/functions/functions.md similarity index 100% rename from _build/markdown/functions/functions.md rename to drhook/_build/markdown/functions/functions.md diff --git a/_build/markdown/global_vars/global_vars.md b/drhook/_build/markdown/global_vars/global_vars.md similarity index 100% rename from _build/markdown/global_vars/global_vars.md rename to drhook/_build/markdown/global_vars/global_vars.md diff --git a/_build/markdown/index.md b/drhook/_build/markdown/index.md similarity index 100% rename from _build/markdown/index.md rename to drhook/_build/markdown/index.md diff --git a/_templates/footer.html b/drhook/_templates/footer.html similarity index 100% rename from _templates/footer.html rename to drhook/_templates/footer.html diff --git a/conf.py b/drhook/conf.py similarity index 100% rename from conf.py rename to drhook/conf.py diff --git a/definitions/definitions.rst b/drhook/definitions/definitions.rst similarity index 100% rename from definitions/definitions.rst rename to drhook/definitions/definitions.rst diff --git a/flag/flag.rst b/drhook/flag/flag.rst similarity index 100% rename from flag/flag.rst rename to drhook/flag/flag.rst diff --git a/drhook/foo b/drhook/foo new file mode 100644 index 0000000..45e42a6 --- /dev/null +++ b/drhook/foo @@ -0,0 +1,1592 @@ +\section{Flags \& Environment variables} + +\subsection{\texttt{"DR\_HOOK\_SHOW\_LOCK"}} +\label{section:flags:DR_HOOK_SHOW_LOCK} +%\vspace{-2ex} +\subsubsection{Valid Values} +%\vspace{-2ex} +\verb+valid_value ::= '0' | '1'+ \hfill + +%\vspace{-2ex} +\subsubsection{Purpose} +%\vspace{-2ex} +Used to specify if lock debug info should be output. This is on initialisation only. + +%\vspace{-2ex} +\subsubsection{Notes} +%\vspace{-2ex} +This is done by enabling \texttt{OML\_DEBUG} in the \textit{OML} library, initialising a new lockid, and then restoring the original value. + +This debug info takes the following format:\\ +\verb|oml_init_lockid_with_name "|\textit{lock\_name}\verb|" : |\textit{lock\_ID}\verb|, |\textit{lock\_address} + +\todo{Written - Not tested} + +% ############################################### + +\subsection{\texttt{"OMP\_STACKSIZE"}} +\label{section:flags:OMP_STACKSIZE} +%\vspace{-2ex} +\subsubsection{Valid Values} +%\vspace{-2ex} +\verb+valid_value ::= + \\ +\verb+number ::= | + \\ +\verb+digit ::= '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'+\\ +\verb+suffix ::= '' | 'G' | 'M' | 'K'+ + +%\vspace{-2ex} +\subsubsection{Purpose} +%\vspace{-2ex} +Specifies an indicative stack size the master thread should not exceed. + +%\vspace{-2ex} +\subsubsection{Notes} +%\vspace{-2ex} +This is an overloaded environment variable, used primarily by \textit{OpenMP}. + +It will only be read if \hyperref[section:flags:DR_HOOK_TRACE_STACK]{\texttt{"DR\_HOOK\_TRACE\_STACK"}} is also set. + +\texttt{OMP\_STACKSIZE} is scaled by \verb|opt_trace_stack|, obtained from \hyperref[section:flags:DR_HOOK_TRACE_STACK]{\texttt{"DR\_HOOK\_TRACE\_STACK"}}, to give \verb|drhook_stacksize_threshold|. If \verb|drhook_stacksize_threshold| is exceeded by the master thread during a \verb|random_memstat| check, an abort will occur. + +The stack size can be specified in GiB, MiB, or KiB using the suffix \texttt{G}, \texttt{M}, or \texttt{K} respectively. A lack of suffix will imply the stack size is in bytes. If multiple suffixes are specified, then the largest specified will be chosen. The stack size is truncated at the first occurring suffix. + +The size is limited to the size of \verb|long long int|. + +An invalid or negative input size will result in a default of \texttt{0}. + +\todo{Written - Not tested} + +% ############################################### + +\subsection{\texttt{"DR\_HOOK\_CATCH\_SIGNALS"}} +\label{section:flags:DR_HOOK_CATCH_SIGNALS} +%\vspace{-2ex} +\subsubsection{Valid Values} +%\vspace{-2ex} +\verb+valid_value ::= | + \\ +\verb+delim ::= ',' | ' ' | '\t' | '/'+ \\ +\verb+signal ::= '-1' | +\\ +\verb+number ::= | | '0'+ \\ +\verb+digit ::= '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'+ + + +%\vspace{-2ex} +\subsubsection{Purpose} +%\vspace{-2ex} +Specifies a list of signals to be caught and handled by \drhook. + +%\vspace{-2ex} +\subsubsection{Notes} +%\vspace{-2ex} + +If \verb|signal| $= -1$, then all available catchable signals are registered to be caught and handled by \drhook. Any value after $-1$ will be discarded. + +All other values will be silently discarded. + +\todo{Not tested} + +% ############################################### + +\subsection{\texttt{"DR\_HOOK\_RESTORE\_DEFAULT\_SIGNALS"}} +\label{section:flags:DR_HOOK_RESTORE_DEFAULT_SIGNALS} +%\vspace{-2ex} +\subsubsection{Valid Values} +%\vspace{-2ex} +\verb+valid_value ::= | + \\ +\verb+delim ::= ',' | ' ' | '\t' | '/'+ \\ +\verb+signal ::= '-1' | +\\ +\verb+number ::= | | '0'+ \\ +\verb+digit ::= '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'+ + +%\vspace{-2ex} +\subsubsection{Purpose} +%\vspace{-2ex} +Specifies a list of signals to have their default handler restored, if they haven't been set to be ignored. + +%\vspace{-2ex} +\subsubsection{Notes} +%\vspace{-2ex} + +If \verb|signal| $= -1$, then all available catchable signals have their default signal handler restored. Any value after $-1$ will be discarded. + +All other values will be silently discarded. + +\todo{Not tested} + +% ############################################### + +\subsection{\texttt{"DR\_HOOK\_IGNORE\_SIGNALS"}} +\label{section:flags:DR_HOOK_IGNORE_SIGNALS} +%\vspace{-2ex} +\subsubsection{Valid Values} +%\vspace{-2ex} +\verb+valid_value ::= | + \\ +\verb+delim ::= ',' | ' ' | '\t' | '/'+ \\ +\verb+signal ::= '-1' | +\\ +\verb+number ::= | | '0'+ \\ +\verb+digit ::= '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'+ + +%\vspace{-2ex} +\subsubsection{Purpose} +%\vspace{-2ex} +Specifies a list of signals to be ignored by \drhook. This means \drhook will not handle these signals when they occur. + +%\vspace{-2ex} +\subsubsection{Notes} +%\vspace{-2ex} + +If \verb|signal| $= -1$, then all available catchable signals are set to inactive and be ignored by \drhook. Any value after $-1$ will be discarded. + +All other values will be silently discarded. + +\todo{Not tested} + +% ############################################### + +\subsection{\texttt{"DR\_HOOK\_SILENT"}} \label{section:flags:DR_HOOK_SILENT} +%\vspace{-2ex} +\subsubsection{Valid Values} +%\vspace{-2ex} +\verb+valid_value ::= '0' | '1'+ + +%\vspace{-2ex} +\subsubsection{Purpose} +%\vspace{-2ex} +Used to enable or disable debug prints to \verb|STDERR|. + +%\vspace{-2ex} +\subsubsection{Notes} +%\vspace{-2ex} +This is not recommended during production run due to the excessive slowdown caused by printing. + +\todo{Not tested} + +% ############################################### + +\subsection{\texttt{"DR\_HOOK\_INIT\_SIGNALS"}} +\label{section:flags:DR_HOOK_INIT_SIGNALS} +%\vspace{-2ex} +\subsubsection{Valid Values} +%\vspace{-2ex} +\verb+valid_value ::= '0' | '1'+ + +%\vspace{-2ex} +\subsubsection{Purpose} +%\vspace{-2ex} +Specifies if signals should be initialised via \drhook (dangerous, but sometimes necessary). + +%\vspace{-2ex} +\subsubsection{Notes} +%\vspace{-2ex} +\todo{Not certain on exactly what it does. } + +\todo{Not tested} + +% ############################################### + +\subsection{\texttt{"DR\_HOOK\_SHOW\_PROCESS\_OPTIONS"}} +\label{section:flags:DR_HOOK_SHOW_PROCESS_OPTIONS} +%\vspace{-2ex} +\subsubsection{Valid Values} +%\vspace{-2ex} +\verb+valid_value ::= | '-1'+ \\ +\verb+number ::= | | '0'+ \\ +\verb+digit ::= '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'+ + +%\vspace{-2ex} +\subsubsection{Purpose} +%\vspace{-2ex} +Specifies processIDs for which all options will be output \todo{Where?}. + +%\vspace{-2ex} +\subsubsection{Notes} +%\vspace{-2ex} +If this option isn't specified, and \hyperref[section:flags:DR_HOOK_SILENT]{\texttt{DR\_HOOK\_SILENT}} doesn't evaluate to \verb|True|, then this will default to the process with ID \verb|1|. + +Specifying \verb|-1| will enable this for all processes. + +\todo{Not tested} + +% ############################################### + +\subsection{\texttt{"ATP\_ENABLED"}} +\label{section:flags:ATP_ENABLED} +%\vspace{-2ex} +\subsubsection{Valid Values} +%\vspace{-2ex} +\verb+valid_value ::= '0' | '1'+ + +%\vspace{-2ex} +\subsubsection{Purpose} +%\vspace{-2ex} +Enable \href{https://cpe.ext.hpe.com/docs/debugging-tools/atp.1.html}{Abnormal Termination Processing (\textit{ATP}) mode for \textit{Cray} systems}. This will pass certain signals to \textit{ATP} instead of \drhook. + +%\vspace{-2ex} +\subsubsection{Notes} +%\vspace{-2ex} +If nothing is specified, then this will default to \texttt{0}. + +This will also enable the following flags within \drhook: +\begin{itemize} + \item \textit{ATP\_MAX\_CORES} + \item \textit{ATP\_MAX\_ANALYSIS\_TIME} + \item \textit{ATP\_IGNORE\_SIGTERM} +\end{itemize} + +The signals passed to ATP are: +\begin{itemize} + \item \texttt{SIGINT} + \item \texttt{SIGFPE} + \item \texttt{SIGILL} + \item \texttt{SIGTRAP} + \item \texttt{SIGABRT} + \item \texttt{SIGBUS} + \item \texttt{SIGSEGV} + \item \texttt{SIGSYS} + \item \texttt{SIGXCPU} + \item \texttt{SIGXFSZ} + \item \texttt{SIGTERM} + \begin{itemize} + \item \texttt{SIGTERM} is only passed to ATP if \hyperref[section:flags:ATP_IGNORE_SIGTERM]{\texttt{ATP\_IGNORE\_SIGTERM}} is set + \end{itemize} +\end{itemize} + +\todo{Not tested} + +% ############################################### + +\subsection{\texttt{"ATP\_MAX\_CORES"}} +\label{section:flags:ATP_MAX_CORES} +%\vspace{-2ex} +\subsubsection{Valid Values} +%\vspace{-2ex} +\verb+valid_value ::= + \\ +\verb+number ::= | + \\ +\verb+digit ::= '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'+ + +%\vspace{-2ex} +\subsubsection{Purpose} +%\vspace{-2ex} +Used as a multiplier for calculating the spin wait time for all cores to dump if \textit{ATP} is enabled and handling signals. + +Also used along with \hyperref[section:flags:ATP_ENABLED]{\texttt{ATP\_ENABLED}} to determine if any cores are being dumped by \textit{ATP}. + +%\vspace{-2ex} +\subsubsection{Notes} +%\vspace{-2ex} +This is an overloaded environment variable, used primarily for \textit{ATP}. If nothing is specified, then this will default to \texttt{20}. + +This will only be enable if the \hyperref[section:flags:ATP_ENABLED]{\texttt{ATP\_ENABLED}} flag evaluates to \verb|True|. + +The size is limited to the size of \verb|int|. + +\todo{Not tested} + +% ############################################### + +\subsection{\texttt{"ATP\_MAX\_ANALYSIS\_TIME"}} +\label{section:flags:ATP_MAX_ANALYSIS_TIME} +%\vspace{-2ex} +\subsubsection{Valid Values} +%\vspace{-2ex} +\verb+valid_value ::= + \\ +\verb+number ::= | + \\ +\verb+digit ::= '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'+ + +%\vspace{-2ex} +\subsubsection{Purpose} +%\vspace{-2ex} +Used as a base value for calculating the spin wait time for all cores to dump if \textit{ATP} is enabled and handling signals. + +%\vspace{-2ex} +\subsubsection{Notes} +%\vspace{-2ex} +This is an overloaded environment variable, used primarily for \textit{ATP}. If nothing is specified, then this will default to \texttt{300}. + +This will only be enable if the \hyperref[section:flags:ATP_ENABLED]{\texttt{ATP\_ENABLED}} flag evaluates to \verb|True|. + +The minimum between \texttt{"ATP\_MAX\_ANALYSIS\_TIME"} and \texttt{drhook\_harakiri\_timeout} (set by \hyperref[section:flags:DR_HOOK_HARAKIRI_TIMEOUT]{\texttt{DR\_HOOK\_HARAKIRI\_TIMEOUT}}) is chosen as the base for calculating the time to spin wait for \textit{ATP} to finish handling a signal, through the following: + +\verb|int secs = MIN(drhook_harakiri_timeout,atp_max_analysis_time);|\\ +\verb|secs = 60 + MIN(tdiff * (atp_max_cores-1),secs);| + +The size is limited to the size of \verb|int|. + +\todo{Not tested} + +% ############################################### + +\subsection{\texttt{"ATP\_IGNORE\_SIGTERM"}} +\label{section:flags:ATP_IGNORE_SIGTERM} +%\vspace{-2ex} +\subsubsection{Valid Values} +%\vspace{-2ex} +\verb+valid_value ::= '0' | '1'+ + +%\vspace{-2ex} +\subsubsection{Purpose} +%\vspace{-2ex} +Determines if \texttt{SIGTERM} should be handled by \drhook or \textit{ATP}. + +%\vspace{-2ex} +\subsubsection{Notes} +%\vspace{-2ex} +This is an overloaded environment variable, used primarily for \textit{ATP}. If nothing is specified, then this will default to \texttt{0}. + +This will only be enable if the \hyperref[section:flags:ATP_ENABLED]{\texttt{ATP\_ENABLED}} flag evaluates to \verb|True|. + +\todo{Not tested} + +% ############################################### + +\subsection{\texttt{"DR\_HOOK\_ALLOW\_COREDUMP"}} +\label{section:flags:DR_HOOK_ALLOW_COREDUMP} +%\vspace{-2ex} +\subsubsection{Valid Values} +%\vspace{-2ex} +\verb+valid_value ::= | '-1'+ \\ +\verb+number ::= | + \\ +\verb+digit ::= '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'+ + +%\vspace{-2ex} +\subsubsection{Purpose} +%\vspace{-2ex} +Specifies both if core dumping should be enabled, and if so, which processes. + +%\vspace{-2ex} +\subsubsection{Notes} +%\vspace{-2ex} + +If \texttt{DR\_HOOK\_ALLOW\_COREDUMP} evaluates to $1\leq$\texttt{process}$\leq$\texttt{\# of processes} then only the specified process has core dumping enabled. + +If \texttt{DR\_HOOK\_ALLOW\_COREDUMP} evaluates to -1 then core dumping is enabled for all processes. + +If \texttt{DR\_HOOK\_ALLOW\_COREDUMP} evaluates to 0 then core dumping is disabled. + +% -1 denotes ALL MPI-tasks, 1..NPES == myproc, 0 = coredump will not be enabled by DrHook at init +\todo{It doesn't seem like this value matters apart from zero vs non-zero?} +\todo{Not tested} + +% ############################################### + +\subsection{\texttt{"DR\_HOOK\_PROFILE"}} +\label{section:flags:DR_HOOK_PROFILE} +%\vspace{-2ex} +\subsubsection{Valid Values} +%\vspace{-2ex} +\verb+valid_value ::= | + \\ +\verb+char ::= | | + \\ +\verb+letter ::= | + \\ +\verb+upper ::= 'A' | 'B' | 'C' | 'D' | 'E' | 'F' | 'G' | 'H' | 'I' | 'J' | +\\ + \verb+'K' | 'L' | 'M' | 'N' | 'O' | 'P' | 'Q' | 'R' | 'S' | 'T' | 'U' | 'V' |+\\ + \verb+'W' | 'X' | 'Y' | 'Z'+ ++ \\ +\verb+lower ::= 'a' | 'b' | 'c' | 'd' | 'e' | 'f' | 'g' | 'h' | 'i' | 'j' |+\\ +\verb+'k' | 'l' | 'm' | 'n' | 'o' | 'p' | 'q' | 'r' | 's' | 't' | 'u' | 'v' |+\\ +\verb+'w' | 'x' | 'y' | 'z'+\\ +\verb+digit ::= '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'+ \\ +\verb+symbol ::= ' \' | '!' | '"' | '#' | '$' | '%' | '&' | ''' | '(' | ')' |+\\ +\verb!'*' | '+' | ',' | '-' | '.' | ':' | ';' | '<' | '=' | '>' | '?' | '@' |! +\verb!'[' | '' | ']' | '^' | '_' | '`' | '{' | '|' | '}' | '~'! + +%\vspace{-2ex} +\subsubsection{Purpose} +%\vspace{-2ex} +Specifies where to output profiles. + +%\vspace{-2ex} +\subsubsection{Notes} +%\vspace{-2ex} +While \texttt{DR\_HOOK\_PROFILE} is just to be a valid file name, many of the valid symbols are not recommended for obvious reasons. + +If a relative path is used, then it will be relative to the rundir of the binary \drhook is linked to. + +If \texttt{DR\_HOOK\_PROFILE} doesn't contain the character \texttt{\%}, then \texttt{.\%d} will be appended. + +If \hyperref[section:flags:DR_HOOK_PROFILE_PROC]{\texttt{"DR\_HOOK\_PROFILE\_PROC"}} is set and valid, but \texttt{"DR\_HOOK\_PROFILE"} is not set, then \\\texttt{"DR\_HOOK\_PROFILE"} defaults to \verb|drhook.prof.%d|. + +If \drhook fails to set the process specific patch string either due to an error or process configuration, then it will default to \verb|drhook.prof.0|. + +\texttt{"DR\_HOOK\_PROFILE"} is also indirectly used in \texttt{get\_memmon\_out}. \verb|-mem| is simply appended to the previously described path. + +This option is only used in profiling and memory profiling modes. + +\todo{Not tested} + +% ############################################### + +\subsection{\texttt{"DR\_HOOK\_PROFILE\_PROC"}} +\label{section:flags:DR_HOOK_PROFILE_PROC} +%\vspace{-2ex} +\subsubsection{Valid Values} +%\vspace{-2ex} +\verb+valid_value ::= | '-1'+ \\ +\verb+number ::= | + \\ +\verb+digit ::= '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'+ + +%\vspace{-2ex} +\subsubsection{Purpose} +%\vspace{-2ex} +Used to specify which process, or all processes, that should output profiling data. + +%\vspace{-2ex} +\subsubsection{Notes} +%\vspace{-2ex} +If \texttt{"DR\_HOOK\_PROFILE\_PROC"} is \verb|-1|, then all processes will out profiling data. All other valid values will result in the one specified process outputting its data. + +If this option isn't specified, then it will default to \verb|-1|. + +The size is limited to the size of \verb|double|. + +This option is only used in profiling and memory profiling modes. + +\todo{Not tested} + +% ############################################### + +\subsection{\texttt{"DR\_HOOK\_PROFILE\_LIMIT"}} +\label{section:flags:DR_HOOK_PROFILE_LIMIT} +%\vspace{-2ex} +\subsubsection{Valid Values} +%\vspace{-2ex} +\verb+valid_value ::= | '.' + \\ +\verb+number ::= | + \\ +\verb+digit ::= '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'+ + +%\vspace{-2ex} +\subsubsection{Purpose} +%\vspace{-2ex} +Specifies at which percentage of the maximum value data points should be dropped from profiling outputs. + +%\vspace{-2ex} +\subsubsection{Notes} +%\vspace{-2ex} +If this option isn't specified, then it will default to \verb|-10|. + +The size is limited to the size of \verb|double|. + +This option is only used in profiling and memory profiling modes. +% Lowest percentage accepted into the printouts +\todo{Not tested} + +% ############################################### + +\subsection{\texttt{"DR\_HOOK\_FUNCENTER"}} +\label{section:flags:DR_HOOK_FUNCENTER} +%\vspace{-2ex} +\subsubsection{Valid Values} +%\vspace{-2ex} +\verb+valid_value ::= | + \\ +\verb+digit ::= '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'+ + +%\vspace{-2ex} +\subsubsection{Purpose} +%\vspace{-2ex} +Used to specify a thread to print memory and stack information to stdout upon entering a function. + +%\vspace{-2ex} +\subsubsection{Notes} +%\vspace{-2ex} +If this option isn't specified, then it will default to \verb|0|. + +This will also set \texttt{opt\_gethwm} and \texttt{opt\_getstk} to \verb|1|, that are usually handled by \hyperref[section:flags:DR_HOOK_OPT]{\texttt{"DR\_HOOK\_OPT"}}. + +To see when a process exits a function, use \hyperref[section:flags:DR_HOOK_FUNCEXIT]{\texttt{"DR\_HOOK\_FUNCEXIT"}}. + +\todo{Not tested} + +% ############################################### + +\subsection{\texttt{"DR\_HOOK\_FUNCEXIT"}} +\label{section:flags:DR_HOOK_FUNCEXIT} +%\vspace{-2ex} +\subsubsection{Valid Values} +%\vspace{-2ex} +\verb+valid_value ::= | + \\ +\verb+digit ::= '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'+ + +%\vspace{-2ex} +\subsubsection{Purpose} +%\vspace{-2ex} +Used to specify a thread to print memory and stack information to stdout upon exiting a function. + +%\vspace{-2ex} +\subsubsection{Notes} +%\vspace{-2ex} +If this option isn't specified, then it will default to \verb|0|. + +This will also set \texttt{opt\_gethwm} and \texttt{opt\_getstk} to \verb|1|, that are usually handled by \hyperref[section:flags:DR_HOOK_OPT]{\texttt{"DR\_HOOK\_OPT"}}. + +To see when a process enters a function, use \hyperref[section:flags:DR_HOOK_FUNCENTER]{\texttt{"DR\_HOOK\_FUNCENTER"}}. + +\todo{Not tested} + +% ############################################### + +\subsection{\texttt{"DR\_HOOK\_TIMELINE"}} +\label{section:flags:DR_HOOK_TIMELINE} +%\vspace{-2ex} +\subsubsection{Valid Values} +%\vspace{-2ex} +\verb+valid_value ::= | '-1'+ \\ +\verb+number ::= | + \\ +\verb+digit ::= '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'+ + +%\vspace{-2ex} +\subsubsection{Purpose} +%\vspace{-2ex} +Used to enable timeline mode for either all processes or a specific process. + +%\vspace{-2ex} +\subsubsection{Notes} +%\vspace{-2ex} +If \texttt{"DR\_HOOK\_TIMELINE"} is \verb|-1|, then all processes will have timeline mode enabled. All other non-zero valid values will result in the one specified process having timeline mode enabled. + +If this option isn't specified, then it will default to \verb|0|. + +Setting \texttt{"DR\_HOOK\_TIMELINE"} to a non-zero value also causes \drhook to check the following options: +\begin{itemize} + \item \hyperref[section:flags:DR_HOOK_TIMELINE_THREAD]{\texttt{DR\_HOOK\_TIMELINE\_THREAD}} + \item \hyperref[section:flags:DR_HOOK_TIMELINE_FORMAT]{\texttt{DR\_HOOK\_TIMELINE\_FORMAT}} + \item \hyperref[section:flags:DR_HOOK_TIMELINE_UNITNO]{\texttt{DR\_HOOK\_TIMELINE\_UNITNO}} + \item \hyperref[section:flags:DR_HOOK_TIMELINE_FREQ]{\texttt{DR\_HOOK\_TIMELINE\_FREQ}} + \item \hyperref[section:flags:DR_HOOK_TIMELINE_MB]{\texttt{DR\_HOOK\_TIMELINE\_MB}} +\end{itemize} + +\todo{Not tested} + +% ############################################### + +\subsection{\texttt{"DR\_HOOK\_TIMELINE\_THREAD"}} +\label{section:flags:DR_HOOK_TIMELINE_THREAD} +%\vspace{-2ex} +\subsubsection{Valid Values} +%\vspace{-2ex} +\verb+valid_value ::= + \\ +\verb+number ::= | + \\ +\verb+digit ::= '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'+ + +%\vspace{-2ex} +\subsubsection{Purpose} +%\vspace{-2ex} +Used to specify which threads should output timeline info upon entry and exit of a region. + + +%\vspace{-2ex} +\subsubsection{Notes} +%\vspace{-2ex} +If timeline mode is enabled via \hyperref[section:flags:DR_HOOK_TIMELINE]{\texttt{"DR\_HOOK\_TIMELINE"}}, then for all threads in the range $1 \rightarrow n$ (inclusive) \drhook will print timeline information on both entry and exit from a region. \drhook will also print the sum of \textit{all threads} for the first thread.\todo{Which info gets summed? is it all?} + +If \texttt{"DR\_HOOK\_TIMELINE\_THREAD"} is set to \verb|0|, then all n will be set so as to cover all threads and the behaviour is identical to the above. + +% <= 0 print for all threads +% 1 -> #1 only [but curheap still SUM of all threads] (default), +% n -> print for increasing number of threads separately : [1..n] */ +While not strictly valid, any value less than \verb|0| will have the same behaviour as \verb|0|. + +If this option isn't specified, then it will default to \verb|1|. + +\todo{Not tested} + +% ############################################### + +\subsection{\texttt{"DR\_HOOK\_TIMELINE\_FORMAT"}} +\label{section:flags:DR_HOOK_TIMELINE_FORMAT} +%\vspace{-2ex} +\subsubsection{Valid Values} +%\vspace{-2ex} +\verb+valid_value ::= '0' | '1'+ + +%\vspace{-2ex} +\subsubsection{Purpose} +%\vspace{-2ex} +Used to specify if timeline information should be output in value only or verbose mode. + +%\vspace{-2ex} +\subsubsection{Notes} +%\vspace{-2ex} +% /* if 1, print only {wall,hwm,rss,curheap} w/o labels "wall=" etc.; else fully expanded fmt */ +This option is only available if timeline mode is enabled via \hyperref[section:flags:DR_HOOK_TIMELINE]{\texttt{"DR\_HOOK\_TIMELINE"}}. + +If \texttt{"DR\_HOOK\_TIMELINE\_FORMAT"} is \verb|1|, then the following value only formatter will be used: + +\verb|"%.6f %.4g %.4g %.4g %.4g"| + +Otherwise, the verbose r is used: + +\verb|"wall=%.6f cpu=%.4g hwm=%.4g rss=%.4g curheap=%.4g stack=%.4g| + +\verb|vmpeak=%.4g pag=%lld"| + +If this option isn't specified, then it will default to \verb|1|. + +\todo{Not tested} + +% ############################################### + +\subsection{\texttt{"DR\_HOOK\_TIMELINE\_UNITNO"}} +\label{section:flags:DR_HOOK_TIMELINE_UNITNO} +%\vspace{-2ex} +\subsubsection{Valid Values} +%\vspace{-2ex} +\verb+valid_value ::= | + \\ +\verb+digit ::= '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'+ + +%\vspace{-2ex} +\subsubsection{Purpose} +%\vspace{-2ex} +Specifies the unit number to be used for timeline output. + +%\vspace{-2ex} +\subsubsection{Notes} +%\vspace{-2ex} +% /* Fortran unit number : default = 6 i.e. stdout */ +This option is only available if timeline mode is enabled via \hyperref[section:flags:DR_HOOK_TIMELINE]{\texttt{"DR\_HOOK\_TIMELINE"}}. + +\texttt{"DR\_HOOK\_TIMELINE\_UNITNO"} must be an integer between 1 and 99. Some unit numbers are reserved: 5 is standard input, 6 is standard output. + +As the value of \texttt{"DR\_HOOK\_TIMELINE\_UNITNO"} has to be interpreted by \texttt{atoi}, only integer unit numbers are valid. + +If \verb|0| is specified, then timeline outputs are silently ignored. + +If this option isn't specified, then it will default to \verb|6|. + +\todo{Not tested} + +% ############################################### + +\subsection{\texttt{"DR\_HOOK\_TIMELINE\_FREQ"}} +\label{section:flags:DR_HOOK_TIMELINE_FREQ} +%\vspace{-2ex} +\subsubsection{Valid Values} +%\vspace{-2ex} +\verb+valid_value ::= | | '0'+ \\ +\verb+digit ::= '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'+ + +%\vspace{-2ex} +\subsubsection{Purpose} +%\vspace{-2ex} +Used to specify how many nth region's entries/exits should be output during timeline mode. + +%\vspace{-2ex} +\subsubsection{Notes} +%\vspace{-2ex} +% /* How often to print : every n-th call : default = every 10^6 th call or ... */ +This option is only available if timeline mode is enabled via \hyperref[section:flags:DR_HOOK_TIMELINE]{\texttt{"DR\_HOOK\_TIMELINE"}}. + +If a region is entered/exited and it isn't the nth call, but the resident set size does vary by more than \hyperref[section:flags:DR_HOOK_TIMELINE_MB]{\texttt{"DR\_HOOK\_TIMELINE\_MB"}}, then it is output anyway. + +A value less than \verb|1| will silently disable timeline mode. + +The size is limited to the size of \verb|long long int|. + +If this option isn't specified, then it will default to \verb|1000000|. + +\todo{Not tested} + +% ############################################### + +\subsection{\texttt{"DR\_HOOK\_TIMELINE\_MB"}} +\label{section:flags:DR_HOOK_TIMELINE_MB} +%\vspace{-2ex} +\subsubsection{Valid Values} +%\vspace{-2ex} +\verb+valid_value ::= | '.' + \\ +\verb+number ::= | + \\ +\verb+digit ::= '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'+ + +%\vspace{-2ex} +\subsubsection{Purpose} +%\vspace{-2ex} +This specifies how much the resident set size needs to vary by, in MB, before \hyperref[section:flags:DR_HOOK_TIMELINE_FREQ]{\texttt{"DR\_HOOK\_TIMELINE\_FREQ"}} is overridden. + +%\vspace{-2ex} +\subsubsection{Notes} +%\vspace{-2ex} +% /* ... rss or curheap jumps up/down by more than this many MBytes (default = 1) : unit MBytes */ +This option is only available if timeline mode is enabled via \hyperref[section:flags:DR_HOOK_TIMELINE]{\texttt{"DR\_HOOK\_TIMELINE"}}. + +A value less than \verb|0| will be set to \verb|1.0|. + +The size is limited to the size of \verb|double|. + +If this option isn't specified, then it will default to \verb|1.0|. + +\todo{Not tested} + +% ############################################### + +\subsection{\texttt{"DR\_HOOK\_TRACE\_STACK"}} +\label{section:flags:DR_HOOK_TRACE_STACK} +%\vspace{-2ex} +\subsubsection{Valid Values} +%\vspace{-2ex} +\verb+valid_value ::= | '.' + \\ +\verb+number ::= | + \\ +\verb+digit ::= '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'+ + +%\vspace{-2ex} +\subsubsection{Purpose} +%\vspace{-2ex} +A multiplier for \hyperref[section:flags:OMP_STACKSIZE]{\texttt{"OMP\_STACKSIZE"}}, to monitor high master thread stack usage. + +%\vspace{-2ex} +\subsubsection{Notes} +%\vspace{-2ex} +% if > 0, a multiplier for OMP_STACKSIZE to monitor high master thread stack usage -- +% -- implies opt_random_memstat = 1 (regardless of DR_HOOK_RANDOM_MEMSTAT setting) +% -- for master MPI task only (for the moment) +As described for \hyperref[section:flags:OMP_STACKSIZE]{\texttt{"OMP\_STACKSIZE"}}, \texttt{"DR\_HOOK\_TRACE\_STACK"} is used to scale the value of \\\hyperref[section:flags:OMP_STACKSIZE]{\texttt{"OMP\_STACKSIZE"}} to give \verb|drhook_stacksize_threshold|. If \\\verb|drhook_stacksize_threshold| is exceeded by the master thread during a \verb|random_memstat| check, an abort will occur. + +\texttt{"DR\_HOOK\_TRACE\_STACK"} being defined and non-zero also implies \verb|opt_random_memstat| has a value of \verb|1| (meaning it will always trigger a \verb|random_memstat| check on entry to a \drhook region), regardless of the value of \hyperref[section:flags:DR_HOOK_RANDOM_MEMSTAT]{\texttt{"DR\_HOOK\_RANDOM\_MEMSTAT"}}. However, if \hyperref[section:flags:DR_HOOK_RANDOM_MEMSTAT]{\texttt{"DR\_HOOK\_RANDOM\_MEMSTAT"}} is defined, it will override this value. + +A value less than \verb|0| will be set to \verb|0|. Additionally, \texttt{drhook\_stacksize\_threshold} won't be scaled, and \texttt{opt\_random\_memstat} is not set to \verb|1|. + +The size is limited to the size of \verb|double|. + +If this option isn't specified, then it will default to \verb|0|. + +\todo{Written - Not tested} + +% ############################################### + +\subsection{\texttt{"DR\_HOOK\_RANDOM\_MEMSTAT"}} +\label{section:flags:DR_HOOK_RANDOM_MEMSTAT} +%\vspace{-2ex} +\subsubsection{Valid Values} +%\vspace{-2ex} +\verb+valid_value ::= | + \\ +\verb+digit ::= '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'+ + +%\vspace{-2ex} +\subsubsection{Purpose} +%\vspace{-2ex} +Used to enable random memstat checks, and how often to do it. + +%\vspace{-2ex} +\subsubsection{Notes} +%\vspace{-2ex} +% /* > 0 if to obtain random memory stats (maxhwm, maxstk) for tid=1. Updated when rand() % opt_random_memstat == 0 */ + The random memstat check is done when a \drhook region is entered and\\ \verb|rand() % opt_random_memstat == 0|, or unconditionally when the feature is explicitly, or implicitly (see \hyperref[section:flags:DR_HOOK_TRACE_STACK]{\texttt{"DR\_HOOK\_TRACE\_STACK"}}) enabled. + + Due to the implementation of the random check, the value of \texttt{"DR\_HOOK\_RANDOM\_MEMSTAT"} is important in ways that may not be immediately obvious. For example, a value of \verb|2| will result in a check every other entry to a \drhook region on average. Whereas a sufficiently large number will only result in a check every \verb|1/RAND_MAX| times on average. + +A value greater than \verb|RAND_MAX| will be set to \verb|RAND_MAX|. + +A value less than \verb|0| will be set to \verb|0|, effectively disabling the feature. + +The size is limited to the size of \verb|int|. + +If this option isn't specified, then it will default to \verb|0|. + +\todo{Written - Not tested} + +% ############################################### + +\subsection{\texttt{"DR\_HOOK\_HASHBITS"}} +\label{section:flags:DR_HOOK_HASHBITS} +%\vspace{-2ex} +\subsubsection{Valid Values} +%\vspace{-2ex} +\verb+valid_value ::= | + \\ +\verb+digit ::= '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'+ + +%\vspace{-2ex} +\subsubsection{Purpose} +%\vspace{-2ex} +\todo{Not entirely sure} + +%\vspace{-2ex} +\subsubsection{Notes} +%\vspace{-2ex} + +A value greater than \verb|RAND_MAX| will be set to \verb|RAND_MAX|. + +A value less than \verb|0| will be set to \verb|0|. + +The value of \texttt{"DR\_HOOK\_HASHBITS"}, \verb|nhash|, is also used to update the values of \verb|hashsize| and \verb|hashmask|. This is done for \verb|hashsize| via the following:\\ +\verb|static unsigned int hashsize = ((unsigned int)1<<(nhash));|\\ +For \verb|hashmask| it is:\\ +\verb|static unsigned int hashmask = (((unsigned int)1<<(nhash))-1);| + +The size is limited to the size of \verb|int|. + +If this option isn't specified, then it will default to the definition of \verb|NHASH|, typically \verb|16|. As such, \verb|hashsize| and \verb|hashmask| default to \texttt{65536} and \texttt{65535}, respectively. + +\todo{Not tested} + +% ############################################### + +\subsection{\texttt{"DR\_HOOK\_NCALLSTACK"}} +\label{section:flags:DR_HOOK_NCALLSTACK} +%\vspace{-2ex} +\subsubsection{Valid Values} +%\vspace{-2ex} +\verb+valid_value ::= | + \\ +\verb+digit ::= '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'+ + +%\vspace{-2ex} +\subsubsection{Purpose} +%\vspace{-2ex} +\todo{not entirely sure what this does. Why is it only needed for sp? How does dp manage the keys?} + +%\vspace{-2ex} +\subsubsection{Notes} +%\vspace{-2ex} +% sets maxdepth +% == 0 is dp +% > 0 is sp +% being overloaded to set the size of something based on a union type + +% /* This compile definition serves as default which can still be overwritten using environment variable with same name */ +% /* > 0 : USE call stack approach : needed for single precision version */ +% /* == 0 : do NOT use call stack approach : usually for double precision version */ +This is an overloaded value with 2\todo{?} functions. The first is to set the precision used by \drhook, which also determines which method is used to X. A performance penalty is incurred when using the single precision mode (valid non-zero values), and so is not recommended. + +The second function of \texttt{"DR\_HOOK\_NCALLSTACK"}, is to act as a parameter when in single precision mode. This parameter sets the maximum stack depth allowed. You must be careful when selecting this that a sufficient depth is chosen. If the depth is exceeded, then \drhook will abort. + +A value less than \verb|0| will be set to \verb|0|, effectively selecting double precision. + +The size is limited to the size of \verb|int|. + +If this option isn't specified, then it will default to \verb|0|, which enables double precision mode. + +\todo{Not tested} + +% ############################################### + +\subsection{\texttt{"DR\_HOOK\_HARAKIRI\_TIMEOUT"}} +\label{section:flags:DR_HOOK_HARAKIRI_TIMEOUT} +%\vspace{-2ex} +\subsubsection{Valid Values} +%\vspace{-2ex} +\verb+valid_value ::= | + \\ +\verb+digit ::= '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'+ + +%\vspace{-2ex} +\subsubsection{Purpose} +%\vspace{-2ex} +A timeout for when to kill threads that may have hung. + +%\vspace{-2ex} +\subsubsection{Notes} +%\vspace{-2ex} +% Strategy: +% - drhook intercepts most interrupts. +% - 1st interupt will +% - call alarm(10) to try to make sure 2nd interrupt received +% - try to call tracebacks and exit (which includes atexits) +% - 2nd (and subsequent) interupts will +% - spin for 20 sec (to give 1st interrupt time to complete tracebacks) +% - and then call _exit (bypassing atexit) +\texttt{"DR\_HOOK\_HARAKIRI\_TIMEOUT"} is used in three places. The first is when a signal is first caught by \drhook; it is used as the timeout for \texttt{alarm()}. This is to prevent hangs by triggering a second signal when the \texttt{alarm()} expires. This second signal then takes an alternative path for subsequent signals where the second use case of \texttt{"DR\_HOOK\_HARAKIRI\_TIMEOUT"} occurs. Here it is used to spin for $\texttt{"DR\_HOOK\_HARAKIRI\_TIMEOUT"} + 60$ seconds before the thread is killed using \texttt{SIGKILL}. This is to allow for tracebacks to complete. + +The third place it is used, is in conjunction with \hyperref[section:flags:ATP_MAX_ANALYSIS_TIME]{\texttt{"ATP\_MAX\_ANALYSIS\_TIME"}}. Here it is used in the following way to allow \textit{ATP} to dump cores: + +\verb|int secs = MIN(drhook_harakiri_timeout,atp_max_analysis_time);|\\ +\verb|secs = 60 + MIN(tdiff * (atp_max_cores-1),secs);| + +The timeout is specified in seconds. + +A value less than \verb|0| will be set to the definition of \verb|drhook_harakiri_timeout_default|, typically \verb|500|. + +The size is limited to the size of \verb|int|. + +If this option isn't specified, then it will default to the definition of \verb|drhook_harakiri_timeout_default|. + +\todo{Not tested} + +% ############################################### + +\subsection{\texttt{"DR\_HOOK\_USE\_LOCKFILE"}} +\label{section:flags:DR_HOOK_USE_LOCKFILE} +%\vspace{-2ex} +\subsubsection{Valid Values} +%\vspace{-2ex} +\verb+valid_value ::= '0' | '1'+ + +%\vspace{-2ex} +\subsubsection{Purpose} +%\vspace{-2ex} +Toggles the use of a lockfile, \verb|"drhook_lock"|, for outputting which thread handled a signal first. + +%\vspace{-2ex} +\subsubsection{Notes} +%\vspace{-2ex} +When enabled, this will enable a lockfile when handling signals in \drhook. This lockfile, \verb|"drhook_lock"|\todo{Where?}, will contain the number of the thread which got the lock first.\todo{Does this imply that this thread triggered the signal?} + +\texttt{"DR\_HOOK\_USE\_LOCKFILE"} having a value evaluating to \texttt{1}, will also disable some output regarding the use of \hyperref[section:flags:DR_HOOK_USE_LOCKFILE]{\texttt{"DR\_HOOK\_USE\_LOCKFILE"}} in it's alternative path for subsequent signals. + +Any non-zero valid integer value will be set to \verb|1|. + +If this option isn't specified, then it will default to \verb|1|. + +\todo{Not tested} + +% ############################################### + +\subsection{\texttt{"DR\_HOOK\_TRAPFPE"}} +\label{section:flags:DR_HOOK_TRAPFPE} +%\vspace{-2ex} +\subsubsection{Valid Values} +%\vspace{-2ex} +\verb+valid_value ::= '0' | '1'+ + +%\vspace{-2ex} +\subsubsection{Purpose} +%\vspace{-2ex} +Toggles if floating point exceptions should be trapped, regardless of compiler settings. + +%\vspace{-2ex} +\subsubsection{Notes} +%\vspace{-2ex} +If \texttt{"DR\_HOOK\_TRAPFPE"} evaluates to \texttt{1}, then \drhook will trap floating point exceptions regardless of compilation settings. A value of \texttt{0} will instead rely on the compiler flags used, e.g. \texttt{-Ktrap=fp}.\todo{Talk about preprocessor guards} + +Any non-zero valid integer value will be set to \verb|1|. + +If this option isn't specified, then it will default to \verb|1|. + +\todo{Not tested} + +% ############################################### + +\subsection{\texttt{"DR\_HOOK\_TRAPFPE\_INVALID"}} +\label{section:flags:DR_HOOK_TRAPFPE_INVALID} +%\vspace{-2ex} +\subsubsection{Valid Values} +%\vspace{-2ex} +\verb+valid_value ::= '0' | '1'+ + +%\vspace{-2ex} +\subsubsection{Purpose} +%\vspace{-2ex} +Toggles whether invalid operation floating point exceptions should be trapped. + +%\vspace{-2ex} +\subsubsection{Notes} +%\vspace{-2ex} +This will only be enabled if \hyperref[section:flags:DR_HOOK_TRAPFPE]{\texttt{"DR\_HOOK\_TRAPFPE"}} evaluates to \texttt{1} or the compiler had trapping of floating point exceptions enabled. + +These invalid operations are defined by IEEE 754 standard. + +If the exception is not trapped, then the result of the operation is \verb|NaN|. + +Any non-zero valid integer value will be set to \verb|1|. + +If this option isn't specified, then it will default to \verb|1|. + +\todo{Not tested} + +% ############################################### + +\subsection{\texttt{"DR\_HOOK\_TRAPFPE\_DIVBYZERO"}} +\label{section:flags:} +%\vspace{-2ex} +\subsubsection{Valid Values} +%\vspace{-2ex} +\verb+valid_value ::= '0' | '1'+ + +%\vspace{-2ex} +\subsubsection{Purpose} +%\vspace{-2ex} +Toggles whether divide by zero floating point exceptions should be trapped. + +%\vspace{-2ex} +\subsubsection{Notes} +%\vspace{-2ex} +This will only be enabled if \hyperref[section:flags:DR_HOOK_TRAPFPE]{\texttt{"DR\_HOOK\_TRAPFPE"}} evaluates to \texttt{1} or the compiler had trapping of floating point exceptions enabled. + +This exception occurs when a finite nonzero number is divided by zero. + +Any non-zero valid integer value will be set to \verb|1|. + +If this option isn't specified, then it will default to \verb|1|. + +\todo{Not tested} + +% ############################################### + +\subsection{\texttt{"DR\_HOOK\_TRAPFPE\_OVERFLOW"}} +\label{section:flags:} +%\vspace{-2ex} +\subsubsection{Valid Values} +%\vspace{-2ex} +\verb+valid_value ::= '0' | '1'+ + +%\vspace{-2ex} +\subsubsection{Purpose} +%\vspace{-2ex} +Toggles whether overflow floating point exceptions should be trapped. + +%\vspace{-2ex} +\subsubsection{Notes} +%\vspace{-2ex} +This will only be enabled if \hyperref[section:flags:DR_HOOK_TRAPFPE]{\texttt{"DR\_HOOK\_TRAPFPE"}} evaluates to \texttt{1} or the compiler had trapping of floating point exceptions enabled. + +This exception occurs when the result of a calculation cannot be represented as a finite value in the precision format of the destination. This behaviour is affected by rounding modes. + +Any non-zero valid integer value will be set to \verb|1|. + +If this option isn't specified, then it will default to \verb|1|. + +\todo{Not tested} + +% ############################################### + +\subsection{\texttt{"DR\_HOOK\_TIMED\_KILL"}} +\label{section:flags:DR_HOOK_TIMED_KILL} +%\vspace{-2ex} +\subsubsection{Valid Values} +%\vspace{-2ex} +\verb+valid_value ::= | + \\ +\verb+delim ::= ',' | ' ' | '\t' | '/'+ \\ +\verb+formatted ::= ':' ':' ':' +\\ +\verb+double ::= | 'double_part' '.' + \\ +\verb+double_part ::= | + \\ +\verb+digit_0 ::= '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'+\\ +\verb+id = | '-1'+\\ +\verb+integer ::= | | '0'+ \\ +\verb+digit ::= '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'+ + +%\vspace{-2ex} +\subsubsection{Purpose} +%\vspace{-2ex} +Set timers for specific, or all, threads to trigger signals. This is a developer option. + +%\vspace{-2ex} +\subsubsection{Notes} +%\vspace{-2ex} +% /* Timer assisted simulated kill of procs/threads by signal */ +The parameters provided to \texttt{"DR\_HOOK\_TIMED\_KILL"} (\verb|target_process|,\\ \verb|target_oml_thread_id|, \verb|target_signal|, and \verb|start_time|) are in the following pattern: + +\verb|target_process:target_oml_thread_id:target_signal:start_time| + +Note that: +\begin{itemize} + \item \verb|target_process| can be a valid integer for a single process, or \texttt{-1} for all. + \item \verb|target_oml_thread_id| can be a valid integer for a single thread, or \texttt{-1} for all. + \item \verb|target_signal| must be valid for your system. + \item \verb|start_time| must be non-zero. +\end{itemize} +Any set of parameters that are invalid, will be silently discarded. + +The timers will be started as part of \textit{DrHook's} initialisation, and are specified in seconds. + +If this option isn't specified, then it will default to \verb|NULL|. + +\todo{Not tested} + +% ############################################### + +\subsection{\texttt{"DR\_HOOK\_DUMP\_SMAPS"}} +\label{section:flags:DR_HOOK_DUMP_SMAPS} +%\vspace{-2ex} +\subsubsection{Valid Values} +%\vspace{-2ex} +\verb+valid_value ::= '0' | '1'+ + +%\vspace{-2ex} +\subsubsection{Purpose} +%\vspace{-2ex} +Specifies whether \verb|/proc//smaps| should be dumped when handling a signal or not. This is a developer option. + +%\vspace{-2ex} +\subsubsection{Notes} +%\vspace{-2ex} +% /* Print /proc//smaps from signal handler (before moving to ATP or below) */ +\texttt{smaps} will be dumped after the first signal is handled by \drhook, but before signals are handled by other handlers, e.g. \textit{ATP}. It will only be dumped for the process which raises the signal. + +\texttt{smaps} will be dumped to \verb|/proc//smaps|\todo{in which directory?}. + +Any non-zero valid integer value will be set to \verb|1|. + +If this option isn't specified, then it will default to \verb|0|. + +\todo{Not tested} + +% ############################################### + +\subsection{\texttt{"DR\_HOOK\_DUMP\_MAPS"}} +\label{section:flags:DR_HOOK_DUMP_MAPS} +%\vspace{-2ex} +\subsubsection{Valid Values} +%\vspace{-2ex} +\verb+valid_value ::= '0' | '1'+ + +%\vspace{-2ex} +\subsubsection{Purpose} +%\vspace{-2ex} +Specifies whether \verb|/proc//maps| should be dumped when handling a signal or not. This is a developer option. + +%\vspace{-2ex} +\subsubsection{Notes} +%\vspace{-2ex} +\texttt{maps} will be dumped after the first signal is handled by \drhook, but before signals are handled by other handlers, e.g. \textit{ATP}. It will only be dumped for the process which raises the signal. + +\texttt{maps} will be dumped to \verb|/proc//maps|\todo{in which directory?}. + +Any non-zero valid integer value will be set to \verb|1|. + +If this option isn't specified, then it will default to \verb|0|. + +\todo{Not tested} + +% ############################################### + +\subsection{\texttt{"DR\_HOOK\_DUMP\_BUDDYINFO"}} +\label{section:flags:DR_HOOK_DUMP_BUDDYINFO} +%\vspace{-2ex} +\subsubsection{Valid Values} +%\vspace{-2ex} +\verb+valid_value ::= '0' | '1'+ + +%\vspace{-2ex} +\subsubsection{Purpose} +%\vspace{-2ex} +Specifies whether \verb|/proc/buddyinfo| should be dumped when handling a signal or not. This is a developer option. + +%\vspace{-2ex} +\subsubsection{Notes} +%\vspace{-2ex} +\texttt{buddyinfo} will be dumped after the first signal is handled by \drhook, but before signals are handled by other handlers, e.g. \textit{ATP}. + +\texttt{buddyinfo} can also be dumped during the dumping of hugepages(enabled via \hyperref[section:flags:DR_HOOK_DUMP_HUGEPAGES]{\texttt{"DR\_HOOK\_DUMP\_HUGEPAGES"}}). This occurs during the handling of signals, and when \drhook enters a region. + +\texttt{buddyinfo} will be dumped to \verb|/proc/buddyinfo|\todo{in which directory?}. + +Any non-zero valid integer value will be set to \verb|1|. + +If this option isn't specified, then it will default to \verb|0|. + +\todo{Not tested} + +% ############################################### + +\subsection{\texttt{"DR\_HOOK\_DUMP\_MEMINFO"}} +\label{section:flags:DR_HOOK_DUMP_MEMINFO} +%\vspace{-2ex} +\subsubsection{Valid Values} +%\vspace{-2ex} +\verb+valid_value ::= '0' | '1'+ + +%\vspace{-2ex} +\subsubsection{Purpose} +%\vspace{-2ex} +Specifies whether \verb|/proc/meminfo| should be dumped when handling a signal or not. This is a developer option. + +%\vspace{-2ex} +\subsubsection{Notes} +%\vspace{-2ex} +\texttt{meminfo} will be dumped after the first signal is handled by \drhook, but before signals are handled by other handlers, e.g. \textit{ATP}. + +\texttt{meminfo} can also be dumped during the dumping of hugepages (enabled via \hyperref[section:flags:DR_HOOK_DUMP_HUGEPAGES]{\texttt{"DR\_HOOK\_DUMP\_HUGEPAGES"}}). This occurs during the handling of signals, and when \drhook enters a region. + +\texttt{meminfo} will be dumped to \verb|/proc/meminfo|\todo{in which directory?}. + +Any non-zero valid integer value will be set to \verb|1|. + +If this option isn't specified, then it will default to \verb|0|. + +\todo{Not tested} + +% ############################################### + +\subsection{\texttt{"DR\_HOOK\_DUMP\_HUGEPAGES"}} +\label{section:flags:DR_HOOK_DUMP_HUGEPAGES} +%\vspace{-2ex} +\subsubsection{Valid Values} +%\vspace{-2ex} +\verb+valid_value ::= ',' + \\ +\verb+double ::= | 'double_part' '.' + \\ +\verb+double_part ::= | + \\ +\verb+digit_0 ::= '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'+\\ +\verb+id = | '-1'+\\ +\verb+integer ::= | | '0'+ \\ +\verb+digit ::= '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'+ + +%\vspace{-2ex} +\subsubsection{Purpose} +%\vspace{-2ex} + Specifies whether \todo{ECMEMINFO} should be dumped or not. This is a developer option. + +%\vspace{-2ex} +\subsubsection{Notes} +%\vspace{-2ex} +The parameters provided to \texttt{"DR\_HOOK\_DUMP\_HUGEPAGES"} (\verb|target_process|,\\ and \verb|frequency|) are in the following pattern: + +\verb|target_process, frequency| + +Note that: +\begin{itemize} + \item \verb|target_process| can be a valid integer for a single process, or \texttt{-1} for all. + \item \verb|frequency| is given in seconds. This is the minimum time that must pass before huge pages are dumped - unless the function has been called with the \texttt{enforced} flag. Although, enforcement isn't currently used within \drhook. +\end{itemize} +If either parameters are invalid, both will be silently discarded. +% \texttt{meminfo} can also be dumped during the dumping of hugepages. This occurs during the handling of signals, and when \drhook enters a region. + +Hugepages are only dumped by the first thread. + +Hugepage dumping can occur when handling a signal or entering a \drhook region. + +\verb|/proc/buddyinfo| and \verb|/proc/meminfo| can also be dumped with hugepages, if \hyperref[section:flags:DR_HOOK_DUMP_BUDDYINFO]{\texttt{"DR\_HOOK\_DUMP\_BUDDYINFO"}} and \hyperref[section:flags:DR_HOOK_DUMP_MEMINFO]{\texttt{"DR\_HOOK\_DUMP\_MEMINFO"}} are enabled respectively. + +The dumping of hugepages is handled by ec\_meminfo. \todo{is this right? \& talk about if so} + +If this option isn't specified, then it will default to \verb|0,0|. + +\todo{Not tested} + +% ############################################### + +\subsection{\texttt{"DR\_HOOK\_GENCORE"}} +\label{section:flags:DR_HOOK_GENCORE} +%\vspace{-2ex} +\subsubsection{Valid Values} +%\vspace{-2ex} +\verb+valid_value ::= '0' | '1'+ + +%\vspace{-2ex} +\subsubsection{Purpose} +%\vspace{-2ex} +Specifies whether generating core dumps is enabled or not. + +%\vspace{-2ex} +\subsubsection{Notes} +%\vspace{-2ex} +Any non-zero valid integer value will be treated as \verb|1|. + +If this option isn't specified, then it will default to \verb|0|. + +\todo{Not tested} + +% ############################################### + +\subsection{\texttt{"DR\_HOOK\_GENCORE\_SIGNAL"}} +\label{section:flags:DR_HOOK_GENCORE_SIGNAL} +%\vspace{-2ex} +\subsubsection{Valid Values} +%\vspace{-2ex} +\verb+valid_value ::= | | '0'+ \\ +\verb+digit ::= '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'+ + +%\vspace{-2ex} +\subsubsection{Purpose} +%\vspace{-2ex} +Specifies the signal which triggers generating a core dump. + +%\vspace{-2ex} +\subsubsection{Notes} +%\vspace{-2ex} + +All invalid values will be silently discarded. + +If this option isn't specified, then it will default to \verb|0|, which causes it to be ignored. + +\todo{Not tested} + +% ############################################### + +\subsection{\texttt{"DR\_HOOK\_STRICT\_REGIONS"}} +\label{section:flags:DR_HOOK_STRICT_REGIONS} +%\vspace{-2ex} +\subsubsection{Valid Values} +%\vspace{-2ex} +\verb+valid_value ::= '0' | '1'+ + +%\vspace{-2ex} +\subsubsection{Purpose} +%\vspace{-2ex} +Specifies if \drhook region entry and exit calls must use the same label. + +%\vspace{-2ex} +\subsubsection{Notes} +%\vspace{-2ex} +\drhook region entry and exit calls can take a string, which is treated as a label for the region. However, while \drhook doesn't use the exit call label, extensions that hijack \drhook calls may need the label as the unique identifier. This flag will cause \drhook to crash instead of passing it to the extension. + +Any non-zero valid integer value will be treated as \verb|1|. + +If this option isn't specified and \hyperref[section:flags:DR_HOOK_NVTX]{\texttt{"DR\_HOOK\_NVTX"}} is disabled, then it will default to \verb|0|. If \hyperref[section:flags:DR_HOOK_NVTX]{\texttt{"DR\_HOOK\_NVTX"}} is enabled, then \hyperref[section:flags:DR_HOOK_STRICT_REGIONS]{\texttt{"DR\_HOOK\_STRICT\_REGIONS"}} will be enabled regardless of the value given. + +% ############################################### + +\subsection{\texttt{"DR\_HOOK\_NVTX"}} +\label{section:flags:DR_HOOK_NVTX} +%\vspace{-2ex} +\subsubsection{Valid Values} +%\vspace{-2ex} +\verb+valid_value ::= '0' | '1'+ + +%\vspace{-2ex} +\subsubsection{Purpose} +%\vspace{-2ex} +Specifies if NVTX should be enabled at runtime or not. + +%\vspace{-2ex} +\subsubsection{Notes} +%\vspace{-2ex} +Enables Nvidia's \href{https://github.com/NVIDIA/NVTX}{NVTX} at runtime. This assumes that NVTX has been enabled and requested at compile time of \drhook using \todo{Link this}\hyperref[section:options:ENABLEDR_HOOK_NVTX]{\texttt{"ENABLEDR\_HOOK\_NVTX"}}. + + +Setting \texttt{"DR\_HOOK\_TIMELINE"} to a non-zero value also causes \drhook to check the following options: +\begin{itemize} + \item \hyperref[section:flags:DR_HOOK_NVTX_SPAM_CALL_COUNT]{\texttt{DR\_HOOK\_NVTX\_SPAM\_CALL\_COUNT}} + \item \hyperref[section:flags:DR_HOOK_NVTX_SPAM_WT]{\texttt{DR\_HOOK\_NVTX\_SPAM\_WT}} +\end{itemize} + +Any non-zero valid integer value will be treated as \verb|1|. + +If this option isn't specified, then it will default to \verb|0|. + +% ############################################### + +\subsection{\texttt{"DR\_HOOK\_NVTX\_SPAM\_CALL\_COUNT"}} +\label{section:flags:DR_HOOK_NVTX_SPAM_CALL_COUNT} +%\vspace{-2ex} +\subsubsection{Valid Values} +%\vspace{-2ex} +\verb+valid_value ::= | | '0'+ \\ +\verb+digit ::= '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'+ + +%\vspace{-2ex} +\subsubsection{Purpose} +%\vspace{-2ex} +Specifies the spam call count for NVTX. + +%\vspace{-2ex} +\subsubsection{Notes} +%\vspace{-2ex} +The spam call count is the number of calls of a \drhook region that needs to be reached, without a cumulative runtime longer than the \hyperref[section:flags:DR_HOOK_NVTX_SPAM_WT]{\texttt{DR\_HOOK\_NVTX\_SPAM\_WT}} time, for \drhook to skip subsequent calls of that region for the functionality of NVTX. It will not skip core \drhook profiling. + +This option is only available if NVTX is enabled via \hyperref[section:flags:DR_HOOK_NVTX]{\texttt{"DR\_HOOK\_NVTX"}}. + +A value less than \verb|0| will be set to the definition of \verb|nvtx_SCC_default|, typically \verb|10|. While it is possible to specify \verb|0|, this will effectively disable NVTX as all regions will be skipped - unless they can accumulate sufficient runtime to satisfy \hyperref[section:flags:DR_HOOK_NVTX_SPAM_WT]{\texttt{DR\_HOOK\_NVTX\_SPAM\_WT}} in their first call. + +The size is limited to the size of \verb|int|. + +If this option isn't specified, then it will default to the definition of \verb|nvtx_SCC_default|. + +% % ############################################### + +\subsection{\texttt{"DR\_HOOK\_NVTX\_SPAM\_WT"}} +\label{section:flags:DR_HOOK_NVTX_SPAM_WT} +%\vspace{-2ex} +\subsubsection{Valid Values} +%\vspace{-2ex} +\verb+valid_value ::= | 'number' '.' + \\ +\verb+number ::= | + \\ +\verb+digit ::= '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'+ + +%\vspace{-2ex} +\subsubsection{Purpose} +%\vspace{-2ex} +Specifies the spam wall time for NVTX. + +%\vspace{-2ex} +\subsubsection{Notes} +%\vspace{-2ex} +The spam wall time is the cumulative runtime a \drhook region must have if it is not to be skipped for NVTX functionality after exceeding \hyperref[section:flags:DR_HOOK_NVTX_SPAM_CALL_COUNT]{\texttt{DR\_HOOK\_NVTX\_SPAM\_CALL\_COUNT}}. It will not skip core \drhook profiling. + +This option is only available if NVTX is enabled via \hyperref[section:flags:DR_HOOK_NVTX]{\texttt{"DR\_HOOK\_NVTX"}}. + +\hyperref[section:flags:DR_HOOK_NVTX_SPAM_WT]{\texttt{DR\_HOOK\_NVTX\_SPAM\_WT}} is measured in seconds. + +A value less than \verb|0| will be set to the definition of \verb|nvtx_SWT_default|, typically \verb|0.001|. + +The size is limited to the size of \verb|double|. + +If this option isn't specified, then it will default to the definition of \verb|nvtx_SWT_default|. + +% ############################################### + +\subsection{\texttt{"DR\_HOOK\_OPT"}} +\label{section:flags:DR_HOOK_OPT} +%\vspace{-2ex} +\subsubsection{Valid Values} +%\vspace{-2ex} +\verb+valid_value ::=