Full Code of hugsy/gef for AI

main 0c95800c3ad3 cached
205 files
3.4 MB
891.1k tokens
1414 symbols
1 requests
Download .txt
Showing preview only (3,561K chars total). Download the full file or copy to clipboard to get everything.
Repository: hugsy/gef
Branch: main
Commit: 0c95800c3ad3
Files: 205
Total size: 3.4 MB

Directory structure:
gitextract_tg8j9h13/

├── .editorconfig
├── .gitattributes
├── .github/
│   ├── CONTRIBUTING.md
│   ├── FUNDING.yml
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.yaml
│   │   └── feature_request.yaml
│   ├── PULL_REQUEST_TEMPLATE.md
│   ├── stale.yml
│   ├── tests/
│   │   ├── entrypoint.sh
│   │   ├── run-tests.sh
│   │   └── setup-dockerfile.sh
│   └── workflows/
│       ├── coverage.yml
│       ├── extended-tests.yml
│       ├── generate-docs.yml
│       ├── notify.yml
│       ├── tests.yml
│       └── validate.yml
├── .gitignore
├── .pre-commit-config.yaml
├── .pylintrc
├── .python-version
├── .readthedocs.yml
├── LICENSE
├── README.md
├── docs/
│   ├── .markdownlint.yaml
│   ├── api/
│   │   └── gef.md
│   ├── api.md
│   ├── commands/
│   │   ├── aliases.md
│   │   ├── arch.md
│   │   ├── aslr.md
│   │   ├── canary.md
│   │   ├── checksec.md
│   │   ├── config.md
│   │   ├── context.md
│   │   ├── dereference.md
│   │   ├── edit-flags.md
│   │   ├── elf-info.md
│   │   ├── entry-break.md
│   │   ├── eval.md
│   │   ├── format-string-helper.md
│   │   ├── functions.md
│   │   ├── gef-remote.md
│   │   ├── gef.md
│   │   ├── got.md
│   │   ├── heap-analysis-helper.md
│   │   ├── heap.md
│   │   ├── help.md
│   │   ├── hexdump.md
│   │   ├── highlight.md
│   │   ├── hijack-fd.md
│   │   ├── memory.md
│   │   ├── name-break.md
│   │   ├── nop.md
│   │   ├── patch.md
│   │   ├── pattern.md
│   │   ├── pcustom.md
│   │   ├── pie.md
│   │   ├── print-format.md
│   │   ├── process-search.md
│   │   ├── process-status.md
│   │   ├── registers.md
│   │   ├── reset-cache.md
│   │   ├── scan.md
│   │   ├── search-pattern.md
│   │   ├── shellcode.md
│   │   ├── skipi.md
│   │   ├── stepover.md
│   │   ├── stub.md
│   │   ├── theme.md
│   │   ├── tmux-setup.md
│   │   ├── trace-run.md
│   │   ├── version.md
│   │   ├── vmmap.md
│   │   ├── xfiles.md
│   │   ├── xinfo.md
│   │   └── xor-memory.md
│   ├── compat.md
│   ├── config.md
│   ├── debugging.md
│   ├── deprecated.md
│   ├── faq.md
│   ├── functions/
│   │   ├── base.md
│   │   ├── bss.md
│   │   ├── got.md
│   │   ├── heap.md
│   │   └── stack.md
│   ├── index.md
│   ├── install.md
│   ├── obsolete/
│   │   ├── docs/
│   │   │   └── index.md
│   │   ├── mkdocs.yml
│   │   └── requirements.txt
│   ├── requirements.txt
│   ├── screenshots.md
│   └── testing.md
├── gef.py
├── get-pip.py
├── mkdocs.yml
├── ruff.toml
├── scripts/
│   ├── gef-extras.sh
│   ├── gef.sh
│   ├── generate-api-docs.sh
│   ├── generate-coverage-docs.sh
│   ├── generate-settings-docs.sh
│   ├── new-release.py
│   ├── remote_debug.py
│   └── vscode_debug.py
└── tests/
    ├── __init__.py
    ├── api/
    │   ├── __init__.py
    │   ├── deprecated.py
    │   ├── gef_arch.py
    │   ├── gef_disassemble.py
    │   ├── gef_heap.py
    │   ├── gef_memory.py
    │   ├── gef_session.py
    │   └── misc.py
    ├── base.py
    ├── binaries/
    │   ├── Makefile
    │   ├── bss.c
    │   ├── canary.c
    │   ├── checksec-no-canary.c
    │   ├── checksec-no-nx.c
    │   ├── checksec-no-pie.c
    │   ├── class.cpp
    │   ├── collision.c
    │   ├── default.c
    │   ├── format-string-helper.c
    │   ├── heap-analysis.c
    │   ├── heap-bins.c
    │   ├── heap-fastbins.c
    │   ├── heap-multiple-heaps.c
    │   ├── heap-non-main.c
    │   ├── heap-tcache.c
    │   ├── heap.c
    │   ├── memwatch.c
    │   ├── mmap-known-address.c
    │   ├── nested.c
    │   ├── nested2.c
    │   ├── pattern.c
    │   ├── pcustom.c
    │   └── utils.h
    ├── commands/
    │   ├── __init__.py
    │   ├── aliases.py
    │   ├── arch.py
    │   ├── aslr.py
    │   ├── canary.py
    │   ├── checksec.py
    │   ├── context.py
    │   ├── dereference.py
    │   ├── edit_flags.py
    │   ├── elf_info.py
    │   ├── entry_break.py
    │   ├── format_string_helper.py
    │   ├── functions.py
    │   ├── gef.py
    │   ├── gef_remote.py
    │   ├── got.py
    │   ├── heap.py
    │   ├── heap_analysis.py
    │   ├── hexdump.py
    │   ├── highlight.py
    │   ├── hijack_fd.py
    │   ├── memory.py
    │   ├── name_break.py
    │   ├── nop.py
    │   ├── patch.py
    │   ├── pattern.py
    │   ├── pcustom.py
    │   ├── pie.py
    │   ├── print_format.py
    │   ├── process_search.py
    │   ├── process_status.py
    │   ├── registers.py
    │   ├── reset_cache.py
    │   ├── scan.py
    │   ├── search_pattern.py
    │   ├── shellcode.py
    │   ├── skipi.py
    │   ├── smart_eval.py
    │   ├── stepover.py
    │   ├── stub.py
    │   ├── theme.py
    │   ├── trace_run.py
    │   ├── version.py
    │   ├── vmmap.py
    │   ├── xfiles.py
    │   ├── xinfo.py
    │   └── xor_memory.py
    ├── config/
    │   └── __init__.py
    ├── extended/
    │   ├── archlinux.sh
    │   ├── debian.sh
    │   ├── fedora.sh
    │   └── run_pytest.sh
    ├── functions/
    │   ├── __init__.py
    │   └── elf_sections.py
    ├── perf/
    │   ├── __init__.py
    │   └── benchmark.py
    ├── pytest.ini
    ├── regressions/
    │   ├── __init__.py
    │   ├── filename_collision_lookup.py
    │   ├── gdbserver_connection.py
    │   └── registers_register_order.py
    ├── requirements.txt
    ├── scripts/
    │   ├── __init__.py
    │   └── test_gef.py
    └── utils.py

================================================
FILE CONTENTS
================================================

================================================
FILE: .editorconfig
================================================
# https://github.com/editorconfig/editorconfig/wiki/EditorConfig-Properties

root = true

[*]
end_of_line = lf
insert_final_newline = true
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

[*.py]
indent_style = space
indent_size = 4

[Makefile]
indent_style = tab

[*.yml]
indent_style = space
indent_size = 2

[*.md]
max_line_length = 100


================================================
FILE: .gitattributes
================================================
# https://help.github.com/articles/dealing-with-line-endings/
* text eol=lf
*.png diff=none binary
*.jpg diff=none binary
*.jpeg diff=none binary
*.gif diff=none binary
*.svg diff=none binary
*.webp diff=none binary


================================================
FILE: .github/CONTRIBUTING.md
================================================
## Contributing to GEF

## License

`gef` is placed under [MIT license](https://github.com/hugsy/gef/blob/main/LICENSE) which provides
Open-Source access to the code and its use.

By contributing to `gef` code through the _Pull Requests_ mechanism, you accept to release the code
written by you under the said license.

## Submitting a Patch

1.  Fork `gef` repository (requires GitHub account). Sending a patch from the
   `patch` or `git diff --patch` commands is not accepted.
1.  All the packages required for testing and documenting are listed in `tests/requirements.txt`
1.  Adjust your development environment to GEF's: this is achieved using
   [`pre-commit`](https://pre-commit.com/), and getting setup is simply done by
1.  Installing `pre-commit` PIP package (part of the `requirements.txt` file)
1.  Setup `pre-commit` : `pre-commit install`
1.  Write the changes in your local repo making sure to respect the coding style (same indentation
  format, explicit names as possible), comment your code sufficiently so it becomes maintainable by
  someone other than you. Finally if you add a new feature/GDB command, also write the adequate
  documentation (in [`docs/`](docs/))
1.  Submit a pull request
1.  The contributors will review your patch. If it is approved, the change will
   be merged via the GitHub, and you will be seen as contributors. If it needs
   additional work, the repo owner will respond with useful comments.


================================================
FILE: .github/FUNDING.yml
================================================
# These are supported funding model platforms

github: [hugsy,]


================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.yaml
================================================
name: Bug Report
description: File a bug report.
title: "[Bug] "
labels: ["bug", "triage"]
body:
- type: markdown
  id: md_welcome
  attributes:
    value: |
      Complete this form is for reporting bugs in GEF. Incomplete/invalid report will simply being ignored or closed.
      Also note that this is not the place to ask installation or usage problem. Use the Discord channel for that.
- type: textarea
  attributes:
    label: GEF+GDB version
    render: shell
    description: |
      The exact version of GEF and GDB. Copy/paste the output of the `version` command.
  validations:
    required: true
- type: input
  id: os_info
  attributes:
    label: Operating System
    description: What OS are you using? Copy/paste the output of `lsb_release -a` or equivalent/
    placeholder: "e.g., Arch Linux, FreeBSD"
  validations:
    required: false
- type: textarea
  attributes:
    label: Describe the issue you encountered
    description: |
      Describe the issue in detail and what you were doing beforehand.
  validations:
    required: true
- type: dropdown
  attributes:
    label: Do you read the docs and look at previously closed issues/PRs for similar cases?
    multiple: false
    options:
    - "No"
    - "Yes"
  validations:
    required: true
- type: checkboxes
  attributes:
    label: Architecture impacted
    description: |
      On which architecture can you confirm this bug exist?
    options:
    - label: X86
    - label: X64
    - label: ARM
    - label: ARM64
    - label: MIPS
    - label: MIPS64
    - label: PPC
    - label: PPC64
    - label: RISCV
- type: textarea
  attributes:
    label: Describe your issue. Without a proper reproduction step-by-step, your issue will be ignored.
    value: |
      Provide a step-by-step to reproduce your issue.
  validations:
    required: true
- type: textarea
  attributes:
    label: Minimalist test case
    value: |
      Use this field for a minimal code to compile and spot the issue:
      ```c
      // compile with gcc -fPIE -pic -o my_issue.out my_issue.c
      int main(){ return 0; }
      ```
      You can also provide a Dockerfile if you prefer
  validations:
    required: false
- type: textarea
  attributes:
    label: Additional context?
    description: |
      If a bug/crash is found, use `gef config gef.debug 1` to enable the debug mode and collect more information.
      You can copy/paste those information in the field.
    value: |
      - Screenshots
      - Callstack
      - Coredumps
      - If possible and useful, please upload the binary
  validations:
    required: false


================================================
FILE: .github/ISSUE_TEMPLATE/feature_request.yaml
================================================
name: Feature Request
description: Use this form to suggest a feature you would like to see in GEF
body:
- type: markdown
  id: md_welcome
  attributes:
    value: |
      Had an idea of a new useful feature for GEF, but can't implement it? Here's your chance
- type: dropdown
  attributes:
    label: Type of feature request
    description: Describe the category your feature request falls under
    options:
    - Additional API
    - New architecture support/Existing architecture improvement
    - Misc
- type: input
  attributes:
    label: Misc
    description: "If \"Misc\" was selected above, describe the type"
  validations:
    required: false
- type: textarea
  attributes:
    label: Summary Description
    description: |
      A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
  validations:
    required: true
- type: textarea
  attributes:
    label: Implementation idea/suggestion
    description: |
      A clear and concise description of how you would like this problem be solved.
  validations:
    required: true
- type: textarea
  attributes:
    label: Existing alternatives?
    description: |
      Describe alternatives already considered.
  validations:
    required: false
- type: textarea
  attributes:
    label: Additional information
    description: |
      Add any other context or screenshots about the feature request here.
  validations:
    required: false


================================================
FILE: .github/PULL_REQUEST_TEMPLATE.md
================================================
## Description

<!-- Describe technically what your patch does. -->

<!-- Why is this change required? What problem does it solve? -->

<!-- Why is this patch will make a better world? -->

<!-- How does this look? Add a screenshot if you can -->

<!-- Annotate your PR with label proper labels (architecture impacted, type of improvement,
etc.) ->

## Checklist

<!-- N.B.: Your patch won't be reviewed unless fulfilling the following base requirements: -->
<!--- Put an `x` in all the boxes that are complete, or that don't apply -->
-  [ ] My code follows the code style of this project.
-  [ ] My change includes a change to the documentation, if required.
-  [ ] If my change adds new code, [adequate tests](docs/testing.md) have been added.
-  [ ] I have read and agree to the **CONTRIBUTING** document.


================================================
FILE: .github/stale.yml
================================================
# Number of days of inactivity before an issue becomes stale
daysUntilStale: 60
# Number of days of inactivity before a stale issue is closed
daysUntilClose: 30
# Issues with these labels will never be considered stale
exemptLabels:
  - pinned
  - security
# Label to use when marking an issue as stale
staleLabel: stale
# Comment to post when marking an issue as stale. Set to `false` to disable
markComment: >
  This issue has been automatically marked as stale because it has not had
  recent activity. It will be closed if no further activity occurs. You can
  reopen it by adding a comment to this issue.
# Comment to post when closing a stale issue. Set to `false` to disable
closeComment: >
  This issue has been automatically closed because it has not had recent activity.
  If you are the owner of this issue, you can either re-open it and provide a more
  complete description; or create a new issue.
  Thank you for your contributions.
# Set to true to ignore issues in a milestone (defaults to false)
exemptMilestones: true
# Set to true to ignore issues with an assignee (defaults to false)
exemptAssignees: true


================================================
FILE: .github/tests/entrypoint.sh
================================================
#!/bin/sh

set -x

PY_VER=$(gdb -q -nx -ex "pi print('.'.join(map(str, sys.version_info[:2])))" -ex quit 2>/dev/null || echo "3")
GEF_CI_NB_CPU=$(grep -c ^processor /proc/cpuinfo)

# Setup GEF
echo "source /gef/gef.py" > /root/.gdbinit

# Verify GEF setup
gdb -q -ex "gef missing" -ex "gef help" -ex "gef config" -ex start -ex continue -ex quit /bin/pwd

# Build test binaries
make -C tests/binaries -j ${GEF_CI_NB_CPU}

# Run pytest
python${PY_VER} -m pytest --forked -n ${GEF_CI_NB_CPU} -v -m "not benchmark" tests/


================================================
FILE: .github/tests/run-tests.sh
================================================
#!/bin/sh

[ -z "${1}" ] && echo "Provide a container tag as an argument to this script" && exit 1

docker run --privileged --rm -e GITHUB_ACTIONS -v "$PWD:/gef" gef-test:${1}


================================================
FILE: .github/tests/setup-dockerfile.sh
================================================
#!/bin/sh

[ -z "${1}" ] && echo "Provide a container image as an argument to this script" && exit 1

echo "FROM ${1}" > Dockerfile

cat >> Dockerfile << 'EOF'

# Install dependencies for Ubuntu-based images
RUN if [ -f /etc/debian_version ]; then \
  export DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=n && \
  apt-get update && \
  apt-get install -y gdb-multiarch python3-dev python3-pip python3-wheel python3-setuptools \
    git cmake gcc g++ pkg-config libglib2.0-dev gdbserver qemu-user file; \
fi

# Install python3-full for Ubuntu 24.04
RUN if grep -q "24.04" /etc/os-release 2>/dev/null; then \
  apt-get install -y python3-full; \
fi

# Install dependencies for Fedora-based images
RUN if [ -f /etc/fedora-release ]; then \
  dnf install -y gdb gdb-gdbserver python3-devel python3-pip python3-wheel python3-setuptools python3-rpm \
    git cmake gcc gcc-c++ pkg-config glib2-devel qemu-user qemu-user-static file procps-ng && \
  dnf --enablerepo='*debug*' install -y glibc-debuginfo && \
  dnf clean all; \
fi

# Copy only requirements.txt for caching
COPY tests/requirements.txt /tmp/requirements.txt

# Install Python requirements
RUN PY_VER=$(gdb -q -nx -ex "pi print('.'.join(map(str, sys.version_info[:2])))" -ex quit 2>/dev/null || echo "3") && \
  if grep -q "24.04" /etc/os-release 2>/dev/null; then \
    python${PY_VER} -m pip install --break-system-packages --upgrade -r /tmp/requirements.txt; \
  else \
    python${PY_VER} -m pip install --upgrade -r /tmp/requirements.txt; \
  fi

RUN git config --global --add safe.directory /gef

WORKDIR /gef

# Copy entrypoint script
COPY .github/tests/entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh

ENTRYPOINT ["/entrypoint.sh"]

EOF


================================================
FILE: .github/workflows/coverage.yml
================================================
name: Coverage

on:
  pull_request_target:
    types:
      - opened
      - synchronize
  pull_request:
    types:
      - opened
      - synchronize

jobs:
  coverage:
    env:
      PY_VER: ''
    runs-on: ubuntu-24.04
    steps:
    - name: Checkout
      uses: actions/checkout@v6.0.1
    - name: Setup
      run: |
        export NEEDRESTART_MODE=n
        sudo apt-get update -qq
        sudo apt-get install -qq -y gdb-multiarch python3-dev python3-pip python3-wheel python3-setuptools git cmake gcc g++ pkg-config libglib2.0-dev gdbserver qemu-user curl
        sudo apt-get install -y python3-full

    - name: Run coverage
      id: get_coverage
      env:
        ALLOWED_MARGIN: 0.01
        MIN_COVERAGE: 70
      run: |
        echo PY_VER=`gdb -q -nx -ex "pi print('.'.join(map(str, sys.version_info[:2])))" -ex quit` >> $GITHUB_ENV
        echo GEF_CI_NB_CPU=`grep -c ^processor /proc/cpuinfo` >> $GITHUB_ENV
        echo GEF_CI_ARCH=`uname --processor` >> $GITHUB_ENV
        python${{ env.PY_VER }} -m pip install --user --upgrade -r tests/requirements.txt --quiet
        current_score=$(curl --silent https://hugsy.github.io/gef/coverage/gef_py.html | grep pc_cov | sed 's?.*<span class="pc_cov">\([^%]*\)%</span>?\1?g')
        bash scripts/generate-coverage-docs.sh
        new_score=$(cat docs/coverage/gef_py.html | grep pc_cov | sed 's?.*<span class="pc_cov">\([^%]*\)%</span>?\1?g')
        score_diff=$(python -c "print(f'{${new_score} - ${current_score}:.04f}')")
        echo "new_score=${new_score}" >> $GITHUB_OUTPUT
        echo "current_score=${current_score}" >> $GITHUB_OUTPUT
        echo "score_diff=${score_diff}" >> $GITHUB_OUTPUT

    - name: Post results
      uses: actions/github-script@v8.0.0
      with:
        script: |
          const old_score   = ${{ steps.get_coverage.outputs.current_score }};
          const new_score   = ${{ steps.get_coverage.outputs.new_score }};
          const score_diff  = ${{ steps.get_coverage.outputs.score_diff }};
          const comment = `## 🤖 Coverage update for ${{ github.event.pull_request.head.sha }} ${(score_diff >= 0) ? "🟢" : "🔴"}

          |        | Old | New |
          |--------|-----|-----|
          | Commit | ${{ github.event.pull_request.base.sha }} | ${{ github.event.pull_request.head.sha }} |
          | Score  | ${old_score}% | ${new_score}% (${score_diff}) |
          `;

          try {
            const { owner, repo, number } = context.issue;
            await github.rest.issues.createComment({ owner, repo, issue_number: number, body: comment });
          } catch (err) { console.log(err); }


================================================
FILE: .github/workflows/extended-tests.yml
================================================
name: Extended Tests


on:
  workflow_dispatch:

jobs:
  build:
    strategy:
      fail-fast: false
      matrix:
        variants:
            - { os: fedora, version: 41 }
            - { os: debian, version: bookworm }
            - { os: archlinux, version: base }

    name: "Tests on ${{ matrix.variants }}"
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v6.0.1
    - run: |
        docker run -v ${PWD}:/gef ${{ matrix.variants.os }}:${{ matrix.variants.version }} "bash /gef/tests/extended/${{ matrix.variants.os }}.sh"


================================================
FILE: .github/workflows/generate-docs.yml
================================================
name: Generate GithubPages

on:

  workflow_dispatch:

  push:
    branches:
      - main

jobs:
  deploy:
    runs-on: ubuntu-latest
    if: github.event.repository.fork == false
    steps:
      - uses: actions/checkout@v6.0.1
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
      - name: Install pre-requisite
        run: |
          sudo apt update
          sudo apt install gdb-multiarch python3 python3-dev python3-wheel python3-setuptools git cmake gcc g++ pkg-config libglib2.0-dev gdbserver qemu-user  -y
          version=$(gdb -q -nx -ex 'pi print(f"{sys.version_info.major}.{sys.version_info.minor}", end="")' -ex quit)
          python${version} -m pip install --requirement docs/requirements.txt --upgrade
          python${version} -m pip install --requirement tests/requirements.txt --upgrade
      - name: Regenerate GEF API file
        run: |
          echo "source $(pwd)/gef.py" > ~/.gdbinit
          bash scripts/generate-api-docs.sh
          bash scripts/generate-settings-docs.sh
          bash scripts/generate-coverage-docs.sh
      - name: Build and publish the docs
        run: |
          git config --global user.name "hugsy"
          git config --global user.email "hugsy@users.noreply.github.com"
          mkdocs gh-deploy --force


================================================
FILE: .github/workflows/notify.yml
================================================
name: "Notifications"

on:
  issues:
      types:
      - opened
      - reopened
  push:
    branches:
      - main

  pull_request:
    types:
      - opened
      - closed
    branches:
      - main

env:
  DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }}

jobs:
  discord:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6.0.1
        with:
          fetch-depth: 0

      - name: Notify/Push
        if: github.event_name == 'push' && github.repository_owner == 'hugsy'
        uses: sarisia/actions-status-discord@v1.12
        with:
          nodetail: true
          title: "[${{ github.repository }}] ${{ github.actor }} pushed to `${{ github.ref_name }}`"
          description: |
            **Commits**:
              ● ${{ join(github.event.commits.*.message, '
              ● ') }}
            ---
            [Open Diff View](${{ github.event.compare }})
          color: 0x00ff00
          username: ${{ github.actor }} via GithubBot
          avatar_url: ${{ github.actor.avatar_url }}

      - name: Notify/Pull Request
        if: github.event_name == 'pull_request'
        uses: sarisia/actions-status-discord@v1.12
        with:
          nodetail: true
          title: "[${{ github.repository }}] ${{ github.actor }} ${{ github.event.action }} PR #${{ github.event.pull_request.number }}"
          description: |
            **Title**: ${{ github.event.pull_request.title }}
            ---
            [Goto PR](${{ github.event.pull_request.html_url }})
          color: 0x0000ff
          username: ${{ github.actor }} via GithubBot
          avatar_url: ${{ github.actor.avatar_url }}

      - name: Notify/Issue
        if: github.event_name == 'issues' &&  github.repository_owner == 'hugsy'
        uses: sarisia/actions-status-discord@v1.12
        with:
          nodetail: true
          title: "[${{ github.repository }}] ${{ github.actor }} ${{ github.event.action}} issue #${{ github.event.issue.number }}"
          description: |
            **Title**: ${{ github.event.issue.title }}
            ---
            [Goto issue](${{ github.event.issue.html_url }})
          color: 0xff0000
          username: ${{ github.actor }} via GithubBot
          avatar_url: ${{ github.actor.avatar_url }}


================================================
FILE: .github/workflows/tests.yml
================================================
name: Tests

env:
  GEF_CI_NB_CPU: 1

on:
  push:
    branches:
      - main

  pull_request:
    branches:
      - main

jobs:
  build:
    strategy:
      fail-fast: false
      matrix:
        arch: [amd64, arm64]
        os: [ubuntu-24.04, ubuntu-22.04, fedora-42, fedora-43, fedora-rawhide]
        include:
          - os: ubuntu-24.04
            base_image: ubuntu:24.04
          - os: ubuntu-22.04
            base_image: ubuntu:22.04
          - os: fedora-42
            base_image: fedora:42
          - os: fedora-43
            base_image: fedora:43
          - os: fedora-rawhide
            base_image: fedora:rawhide

    name: "Run Unit tests on ${{ matrix.os }} (${{ matrix.arch }})"
    runs-on: ${{ matrix.arch == 'arm64' && 'ubuntu-24.04-arm' || 'ubuntu-latest' }}
    defaults:
      run:
        shell: bash

    steps:
    - uses: actions/checkout@v6.0.1

    - name: Set up Docker Buildx
      uses: docker/setup-buildx-action@v3

    - name: Create Dockerfile
      run: .github/tests/setup-dockerfile.sh ${{ matrix.base_image }}

    - name: Build container image
      uses: docker/build-push-action@v6
      with:
        context: .
        push: false
        load: true
        tags: gef-test:${{ matrix.os }}-${{ matrix.arch }}
        cache-from: type=gha,scope=${{ matrix.os }}-${{ matrix.arch }}
        cache-to: type=gha,mode=max,scope=${{ matrix.os }}-${{ matrix.arch }}

    - name: Run tests in container
      run: .github/tests/run-tests.sh ${{ matrix.os }}-${{ matrix.arch }}


================================================
FILE: .github/workflows/validate.yml
================================================
name: Validation

on:
  pull_request:
    branches:
      - main

jobs:
  pre_commit:
    name: Check formatting
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v6.0.1
    - uses: actions/setup-python@v6.2.0
      with:
        python-version: "3.10"
    - uses: pre-commit/action@v3.0.1

  docs_link_check:
    name: Check URLs in docs
    runs-on: ubuntu-latest
    permissions:
      contents: read
    steps:
      - name: checkout
        uses: actions/checkout@v6.0.1
      - name: Restore lychee cache
        id: restore-cache
        uses: actions/cache/restore@v4
        with:
          path: .lycheecache
          key: cache-lychee-${{ github.sha }}
          restore-keys: cache-lychee-
      - name: Check links
        uses: lycheeverse/lychee-action@v2.7.0
        env:
          GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
        with:
          args: --exclude-mail --accept=401 --no-progress --exclude 'https://cs.github.com/hugsy/gef\?q=.*' '**/*.md'
          fail: false
          workingDirectory: docs/
      - name: Save lychee cache
        uses: actions/cache/save@v4
        if: always()
        with:
          path: .lycheecache
          key: ${{ steps.restore-cache.outputs.cache-primary-key }}


================================================
FILE: .gitignore
================================================
*.out
*.pyc
TAGS
__pycache__
tests/*.pyc
tests/pylint.html
tests/pylint.txt
tests/pylint3.html
.vscode
_build
debug.log
.pytest_cache
.coverage
htmlcov
.benchmarks
site/
untracked/


================================================
FILE: .pre-commit-config.yaml
================================================
default_stages: [pre-commit, pre-push]
fail_fast: false
repos:
  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v4.4.0
    hooks:
    - id: end-of-file-fixer
    - id: trailing-whitespace

  - repo: https://github.com/pycqa/pylint
    rev: v3.0.0a6
    hooks:
    - id: pylint

  - repo: https://github.com/igorshubovych/markdownlint-cli
    rev: v0.35.0
    hooks:
    - id: markdownlint-docker
      args:
        - --config=docs/.markdownlint.yaml
        - --ignore=docs/api/gef.md
        - --ignore=docs/obsolete/docs/index.md
        - --ignore=docs/index.md
        - --ignore=README.md
        - "docs/**/*.md"


================================================
FILE: .pylintrc
================================================
[MASTER]

# A comma-separated list of package or module names from where C extensions may
# be loaded. Extensions are loading into the active Python interpreter and may
# run arbitrary code.
extension-pkg-allow-list=

# A comma-separated list of package or module names from where C extensions may
# be loaded. Extensions are loading into the active Python interpreter and may
# run arbitrary code. (This is an alternative name to extension-pkg-allow-list
# for backward compatibility.)
extension-pkg-whitelist=

# Return non-zero exit code if any of these messages/categories are detected,
# even if score is above --fail-under value. Syntax same as enable. Messages
# specified are enabled, while categories only check already-enabled messages.
fail-on=

# Specify a score threshold to be exceeded before program exits with error.
fail-under=10.0

# Files or directories to be skipped. They should be base names, not paths.
ignore=CVS

# Add files or directories matching the regex patterns to the ignore-list. The
# regex matches against paths and can be in Posix or Windows format.
ignore-paths=

# Files or directories matching the regex patterns are skipped. The regex
# matches against base names, not paths.
ignore-patterns=

# Python code to execute, usually for sys.path manipulation such as
# pygtk.require().
#init-hook=

# Use multiple processes to speed up Pylint. Specifying 0 will auto-detect the
# number of processors available to use.
jobs=0

# Control the amount of potential inferred values when inferring a single
# object. This can help the performance when dealing with large functions or
# complex, nested conditions.
limit-inference-results=100

# List of plugins (as comma separated values of python module names) to load,
# usually to register additional checkers.
load-plugins=

# Pickle collected data for later comparisons.
persistent=yes

# Minimum Python version to use for version dependent checks. Will default to
# the version used to run pylint.
py-version=3.10

# When enabled, pylint would attempt to guess common misconfiguration and emit
# user-friendly hints instead of false-positive error messages.
suggestion-mode=yes

# Allow loading of arbitrary C extensions. Extensions are imported into the
# active Python interpreter and may run arbitrary code.
unsafe-load-any-extension=no


[MESSAGES CONTROL]

# Only show warnings with the listed confidence levels. Leave empty to show
# all. Valid levels: HIGH, INFERENCE, INFERENCE_FAILURE, UNDEFINED.
confidence=

# Disable the message, report, category or checker with the given id(s). You
# can either give multiple identifiers separated by comma (,) or put this
# option multiple times (only on the command line, not in the configuration
# file where it should appear only once). You can also use "--disable=all" to
# disable everything first and then reenable specific checks. For example, if
# you want to run only the similarities checker, you can use "--disable=all
# --enable=similarities". If you want to run only the classes checker, but have
# no Warning level messages displayed, use "--disable=all --enable=classes
# --disable=W".
; disable=invalid-name,
;         disallowed-name,
;         empty-docstring,
;         missing-module-docstring,
;         missing-class-docstring,
;         missing-function-docstring,
;         unidiomatic-typecheck,
;         non-ascii-name,
;         consider-using-enumerate,
;         consider-iterating-dictionary,
;         bad-classmethod-argument,
;         bad-mcs-method-argument,
;         bad-mcs-classmethod-argument,
;         single-string-used-for-slots,
;         consider-using-dict-items,
;         use-maxsplit-arg,
;         use-sequence-for-iteration,
;         too-many-lines,
;         missing-final-newline,
;         trailing-newlines,
;         superfluous-parens,
;         mixed-line-endings,
;         unexpected-line-ending-format,
;         wrong-spelling-in-comment,
;         wrong-spelling-in-docstring,
;         invalid-characters-in-docstring,
;         multiple-imports,
;         wrong-import-order,
;         ungrouped-imports,
;         wrong-import-position,
;         useless-import-alias,
;         import-outside-toplevel,
;         use-implicit-booleaness-not-len,
;         use-implicit-booleaness-not-comparison,
;         raw-checker-failed,
;         bad-inline-option,
;         locally-disabled,
;         file-ignored,
;         suppressed-message,
;         useless-suppression,
;         deprecated-pragma,
;         use-symbolic-message-instead,
;         c-extension-no-member,
;         literal-comparison,
;         comparison-with-itself,
;         no-self-use,
;         no-classmethod-decorator,
;         no-staticmethod-decorator,
;         useless-object-inheritance,
;         property-with-parameters,
;         cyclic-import,
;         consider-using-from-import,
;         duplicate-code,
;         too-many-ancestors,
;         too-many-instance-attributes,
;         too-few-public-methods,
;         too-many-public-methods,
;         too-many-return-statements,
;         too-many-branches,
;         too-many-arguments,
;         too-many-locals,
;         too-many-statements,
;         too-many-boolean-expressions,
;         consider-merging-isinstance,
;         too-many-nested-blocks,
;         simplifiable-if-statement,
;         redefined-argument-from-local,
;         no-else-return,
;         consider-using-ternary,
;         trailing-comma-tuple,
;         stop-iteration-return,
;         simplify-boolean-expression,
;         inconsistent-return-statements,
;         useless-return,
;         consider-swap-variables,
;         consider-using-join,
;         consider-using-in,
;         consider-using-get,
;         chained-comparison,
;         consider-using-dict-comprehension,
;         consider-using-set-comprehension,
;         simplifiable-if-expression,
;         no-else-raise,
;         unnecessary-comprehension,
;         consider-using-sys-exit,
;         no-else-break,
;         no-else-continue,
;         super-with-arguments,
;         simplifiable-condition,
;         condition-evals-to-constant,
;         consider-using-generator,
;         use-a-generator,
;         consider-using-min-builtin,
;         consider-using-max-builtin,
;         consider-using-with,
;         unnecessary-dict-index-lookup,
;         use-list-literal,
;         use-dict-literal,
;         pointless-statement,
;         pointless-string-statement,
;         expression-not-assigned,
;         unnecessary-pass,
;         unnecessary-lambda,
;         assign-to-new-keyword,
;         useless-else-on-loop,
;         exec-used,
;         eval-used,
;         confusing-with-statement,
;         using-constant-test,
;         missing-parentheses-for-call-in-test,
;         self-assigning-variable,
;         redeclared-assigned-name,
;         assert-on-string-literal,
;         comparison-with-callable,
;         lost-exception,
;         nan-comparison,
;         assert-on-tuple,
;         attribute-defined-outside-init,
;         bad-staticmethod-argument,
;         protected-access,
;         arguments-differ,
;         signature-differs,
;         abstract-method,
;         super-init-not-called,
;         no-init,
;         non-parent-init-called,
;         useless-super-delegation,
;         invalid-overridden-method,
;         arguments-renamed,
;         unused-private-member,
;         overridden-final-method,
;         subclassed-final-class,
;         bad-indentation,
;         wildcard-import,
;         deprecated-module,
;         reimported,
;         import-self,
;         preferred-module,
;         misplaced-future,
;         fixme,
;         global-variable-undefined,
;         global-statement,
;         global-at-module-level,
;         unused-argument,
;         unused-wildcard-import,
;         redefined-outer-name,
;         redefined-builtin,
;         undefined-loop-variable,
;         unbalanced-tuple-unpacking,
;         cell-var-from-loop,
;         possibly-unused-variable,
;         self-cls-assignment,
;         bare-except,
;         broad-except,
;         duplicate-except,
;         try-except-raise,
;         raise-missing-from,
;         raising-format-tuple,
;         wrong-exception-operation,
;         keyword-arg-before-vararg,
;         arguments-out-of-order,
;         non-str-assignment-to-dunder-name,
;         isinstance-second-argument-not-valid-type,
;         logging-not-lazy,
;         logging-format-interpolation,
;         logging-fstring-interpolation,
;         bad-format-string-key,
;         unused-format-string-key,
;         missing-format-argument-key,
;         unused-format-string-argument,
;         format-combined-specification,
;         missing-format-attribute,
;         invalid-format-index,
;         duplicate-string-formatting-argument,
;         f-string-without-interpolation,
;         useless-with-lock

# Enable the message, report, category or checker with the given id(s). You can
# either give multiple identifier separated by comma (,) or put this option
# multiple time (only on the command line, not in the configuration file where
# it should appear only once). See also the "--disable" option for examples.
; enable=unneeded-not,
;         format-string-without-interpolation,
;         anomalous-unicode-escape-in-string,
;         implicit-str-concat,
;         inconsistent-quotes,
;         redundant-u-string-prefix,
;         boolean-datetime,
;         redundant-unittest-assert,
;         deprecated-method,
;         bad-thread-instantiation,
;         shallow-copy-environ,
;         invalid-envvar-default,
;         subprocess-popen-preexec-fn,
;         subprocess-run-check,
;         deprecated-argument,
;         deprecated-class,
;         deprecated-decorator,
;         unspecified-encoding,
;         forgotten-debug-statement,
;         using-f-string-in-unsupported-version,
;         using-final-decorator-in-unsupported-version,
;        singleton-comparison,
;        consider-using-f-string,
;        line-too-long,
;        trailing-whitespace,
;        multiple-statements,
;        syntax-error,
;        unrecognized-inline-option,
;        bad-option-value,
;        bad-plugin-value,
;        bad-configuration-section,
;        init-is-generator,
;        return-in-init,
;        function-redefined,
;        not-in-loop,
;        return-outside-function,
;        yield-outside-function,
;        return-arg-in-generator,
;        nonexistent-operator,
;        duplicate-argument-name,
;        abstract-class-instantiated,
;        bad-reversed-sequence,
;        too-many-star-expressions,
;        invalid-star-assignment-target,
;        star-needs-assignment-target,
;        nonlocal-and-global,
;        continue-in-finally,
;        nonlocal-without-binding,
;        used-prior-global-declaration,
;        misplaced-format-function,
;        method-hidden,
;        access-member-before-definition,
;        no-method-argument,
;        no-self-argument,
;        invalid-slots-object,
;        assigning-non-slot,
;        invalid-slots,
;        inherit-non-class,
;        inconsistent-mro,
;        duplicate-bases,
;        class-variable-slots-conflict,
;        invalid-class-object,
;        non-iterator-returned,
;        unexpected-special-method-signature,
;        invalid-length-returned,
;        invalid-bool-returned,
;        invalid-index-returned,
;        invalid-repr-returned,
;        invalid-str-returned,
;        invalid-bytes-returned,
;        invalid-hash-returned,
;        invalid-length-hint-returned,
;        invalid-format-returned,
;        invalid-getnewargs-returned,
;        invalid-getnewargs-ex-returned,
;        import-error,
;        relative-beyond-top-level,
;        used-before-assignment,
;        undefined-variable,
;        undefined-all-variable,
;        invalid-all-object,
;        invalid-all-format,
;        no-name-in-module,
;        unpacking-non-sequence,
;        bad-except-order,
;        raising-bad-type,
;        bad-exception-context,
;        misplaced-bare-raise,
;        raising-non-exception,
;        notimplemented-raised,
;        catching-non-exception,
;        bad-super-call,
;        no-member,
;        not-callable,
;        assignment-from-no-return,
;        no-value-for-parameter,
;        too-many-function-args,
;        unexpected-keyword-arg,
;        redundant-keyword-arg,
;        missing-kwoa,
;        invalid-sequence-index,
;        invalid-slice-index,
;        assignment-from-none,
;        not-context-manager,
;        invalid-unary-operand-type,
;        unsupported-binary-operation,
;        repeated-keyword,
;        not-an-iterable,
;        not-a-mapping,
;        unsupported-membership-test,
;        unsubscriptable-object,
;        unsupported-assignment-operation,
;        unsupported-delete-operation,
;        invalid-metaclass,
;        unhashable-dict-key,
;        dict-iter-missing-items,
;        await-outside-async,
;        logging-unsupported-format,
;        logging-format-truncated,
;        logging-too-many-args,
;        logging-too-few-args,
;        bad-format-character,
;        truncated-format-string,
;        mixed-format-string,
;        format-needs-mapping,
;        missing-format-string-key,
;        too-many-format-args,
;        too-few-format-args,
;        bad-string-format-type,
;        bad-str-strip-call,
;        invalid-envvar-value,
;        yield-inside-async-function,
;        not-async-context-manager,
;        fatal,
;        astroid-error,
;        parse-error,
;        config-parse-error,
;        method-check-failed,
;        unreachable,
;        dangerous-default-value,
;        duplicate-key,
;        unnecessary-semicolon,
;        global-variable-not-assigned,
;        unused-import,
;        unused-variable,
;        binary-op-exception,
;        bad-format-string,
;        anomalous-backslash-in-string,
;        bad-open-mode

enable =
      F,
      E,
      anomalous-backslash-in-string,
      bad-format-string,
      bad-open-mode,
      consider-using-f-string,
      dangerous-default-value,
      duplicate-key,
      global-variable-not-assigned
      line-too-long,
      singleton-comparison,
      trailing-whitespace,
      unnecessary-semicolon,
      unneeded-not,
      unreachable,
      unused-import,
      unused-variable,
      binary-op-exception
disable = all

[REPORTS]

# Python expression which should return a score less than or equal to 10. You
# have access to the variables 'error', 'warning', 'refactor', and 'convention'
# which contain the number of messages in each category, as well as 'statement'
# which is the total number of statements analyzed. This score is used by the
# global evaluation report (RP0004).
evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10)

# Template used to display messages. This is a python new-style format string
# used to format the message information. See doc for all details.
#msg-template=

# Set the output format. Available formats are text, parseable, colorized, json
# and msvs (visual studio). You can also give a reporter class, e.g.
# mypackage.mymodule.MyReporterClass.
output-format=text

# Tells whether to display a full report or only the messages.
reports=no

# Activate the evaluation score.
score=yes


[REFACTORING]

# Maximum number of nested blocks for function / method body
max-nested-blocks=5

# Complete name of functions that never returns. When checking for
# inconsistent-return-statements if a never returning function is called then
# it will be considered as an explicit return statement and no message will be
# printed.
never-returning-functions=sys.exit,argparse.parse_error


[FORMAT]

# Expected format of line ending, e.g. empty (any line ending), LF or CRLF.
expected-line-ending-format=LF

# Regexp for a line that is allowed to be longer than the limit.
ignore-long-lines=^\s*(# )?<?https?://\S+>?$

# Number of spaces of indent required inside a hanging or continued line.
indent-after-paren=4

# String used as indentation unit. This is usually "    " (4 spaces) or "\t" (1
# tab).
indent-string='    '

# Maximum number of characters on a single line.
max-line-length=200

# Maximum number of lines in a module.
max-module-lines=15000

# Allow the body of a class to be on the same line as the declaration if body
# contains single statement.
single-line-class-stmt=no

# Allow the body of an if to be on the same line as the test if there is no
# else.
single-line-if-stmt=no


[SPELLING]

# Limits count of emitted suggestions for spelling mistakes.
max-spelling-suggestions=4

# Spelling dictionary name. Available dictionaries: none. To make it work,
# install the 'python-enchant' package.
spelling-dict=

# List of comma separated words that should be considered directives if they
# appear and the beginning of a comment and should not be checked.
spelling-ignore-comment-directives=fmt: on,fmt: off,noqa:,noqa,nosec,isort:skip,mypy:

# List of comma separated words that should not be checked.
spelling-ignore-words=

# A path to a file that contains the private dictionary; one word per line.
spelling-private-dict-file=

# Tells whether to store unknown words to the private dictionary (see the
# --spelling-private-dict-file option) instead of raising a message.
spelling-store-unknown-words=no


[LOGGING]

# The type of string formatting that logging methods do. `old` means using %
# formatting, `new` is for `{}` formatting.
logging-format-style=old

# Logging modules to check that the string format arguments are in logging
# function parameter format.
logging-modules=logging


[VARIABLES]

# List of additional names supposed to be defined in builtins. Remember that
# you should avoid defining new builtins when possible.
additional-builtins=

# Tells whether unused global variables should be treated as a violation.
allow-global-unused-variables=yes

# List of names allowed to shadow builtins
allowed-redefined-builtins=

# List of strings which can identify a callback function by name. A callback
# name must start or end with one of those strings.
callbacks=cb_,
          _cb

# A regular expression matching the name of dummy variables (i.e. expected to
# not be used).
dummy-variables-rgx=_+$|(_[a-zA-Z0-9_]*[a-zA-Z0-9]+?$)|dummy|^ignored_|^unused_

# Argument names that match this expression will be ignored. Default to name
# with leading underscore.
ignored-argument-names=_.*|^ignored_|^unused_

# Tells whether we should check for unused import in __init__ files.
init-import=no

# List of qualified module names which can have objects that can redefine
# builtins.
redefining-builtins-modules=six.moves,past.builtins,future.builtins,builtins,io


[SIMILARITIES]

# Comments are removed from the similarity computation
ignore-comments=yes

# Docstrings are removed from the similarity computation
ignore-docstrings=yes

# Imports are removed from the similarity computation
ignore-imports=no

# Signatures are removed from the similarity computation
ignore-signatures=no

# Minimum lines number of a similarity.
min-similarity-lines=4


[MISCELLANEOUS]

# List of note tags to take in consideration, separated by a comma.
notes=FIXME,
      XXX,
      TODO

# Regular expression of note tags to take in consideration.
#notes-rgx=


[BASIC]

# Naming style matching correct argument names.
argument-naming-style=snake_case

# Regular expression matching correct argument names. Overrides argument-
# naming-style.
#argument-rgx=

# Naming style matching correct attribute names.
attr-naming-style=snake_case

# Regular expression matching correct attribute names. Overrides attr-naming-
# style.
#attr-rgx=

# Bad variable names which should always be refused, separated by a comma.
bad-names=foo,
          bar,
          baz,
          toto,
          tutu,
          tata

# Bad variable names regexes, separated by a comma. If names match any regex,
# they will always be refused
bad-names-rgxs=

# Naming style matching correct class attribute names.
class-attribute-naming-style=any

# Regular expression matching correct class attribute names. Overrides class-
# attribute-naming-style.
#class-attribute-rgx=

# Naming style matching correct class constant names.
class-const-naming-style=UPPER_CASE

# Regular expression matching correct class constant names. Overrides class-
# const-naming-style.
#class-const-rgx=

# Naming style matching correct class names.
class-naming-style=PascalCase

# Regular expression matching correct class names. Overrides class-naming-
# style.
#class-rgx=

# Naming style matching correct constant names.
const-naming-style=UPPER_CASE

# Regular expression matching correct constant names. Overrides const-naming-
# style.
#const-rgx=

# Minimum line length for functions/classes that require docstrings, shorter
# ones are exempt.
docstring-min-length=-1

# Naming style matching correct function names.
function-naming-style=snake_case

# Regular expression matching correct function names. Overrides function-
# naming-style.
#function-rgx=

# Good variable names which should always be accepted, separated by a comma.
good-names=i,
           j,
           k,
           ex,
           Run,
           _

# Good variable names regexes, separated by a comma. If names match any regex,
# they will always be accepted
good-names-rgxs=

# Include a hint for the correct naming format with invalid-name.
include-naming-hint=no

# Naming style matching correct inline iteration names.
inlinevar-naming-style=any

# Regular expression matching correct inline iteration names. Overrides
# inlinevar-naming-style.
#inlinevar-rgx=

# Naming style matching correct method names.
method-naming-style=snake_case

# Regular expression matching correct method names. Overrides method-naming-
# style.
#method-rgx=

# Naming style matching correct module names.
module-naming-style=snake_case

# Regular expression matching correct module names. Overrides module-naming-
# style.
#module-rgx=

# Colon-delimited sets of names that determine each other's naming style when
# the name regexes allow several styles.
name-group=

# Regular expression which should only match function or class names that do
# not require a docstring.
no-docstring-rgx=^_

# List of decorators that produce properties, such as abc.abstractproperty. Add
# to this list to register other decorators that produce valid properties.
# These decorators are taken in consideration only for invalid-name.
property-classes=abc.abstractproperty

# Naming style matching correct variable names.
variable-naming-style=snake_case

# Regular expression matching correct variable names. Overrides variable-
# naming-style.
#variable-rgx=


[STRING]

# This flag controls whether inconsistent-quotes generates a warning when the
# character used as a quote delimiter is used inconsistently within a module.
check-quote-consistency=no

# This flag controls whether the implicit-str-concat should generate a warning
# on implicit string concatenation in sequences defined over several lines.
check-str-concat-over-line-jumps=no


[TYPECHECK]

# List of decorators that produce context managers, such as
# contextlib.contextmanager. Add to this list to register other decorators that
# produce valid context managers.
contextmanager-decorators=contextlib.contextmanager

# List of members which are set dynamically and missed by pylint inference
# system, and so shouldn't trigger E1101 when accessed. Python regular
# expressions are accepted.
generated-members=

# Tells whether missing members accessed in mixin class should be ignored. A
# class is considered mixin if its name matches the mixin-class-rgx option.
ignore-mixin-members=yes

# Tells whether to warn about missing members when the owner of the attribute
# is inferred to be None.
ignore-none=yes

# This flag controls whether pylint should warn about no-member and similar
# checks whenever an opaque object is returned when inferring. The inference
# can return multiple potential results while evaluating a Python object, but
# some branches might not be evaluated, which results in partial inference. In
# that case, it might be useful to still emit no-member and other checks for
# the rest of the inferred objects.
ignore-on-opaque-inference=yes

# List of class names for which member attributes should not be checked (useful
# for classes with dynamically set attributes). This supports the use of
# qualified names.
ignored-classes=optparse.Values,thread._local,_thread._local

# List of module names for which member attributes should not be checked
# (useful for modules/projects where namespaces are manipulated during runtime
# and thus existing member attributes cannot be deduced by static analysis). It
# supports qualified module names, as well as Unix pattern matching.
ignored-modules=

# Show a hint with possible names when a member name was not found. The aspect
# of finding the hint is based on edit distance.
missing-member-hint=yes

# The minimum edit distance a name should have in order to be considered a
# similar match for a missing member name.
missing-member-hint-distance=1

# The total number of similar names that should be taken in consideration when
# showing a hint for a missing member.
missing-member-max-choices=1

# Regex pattern to define which classes are considered mixins ignore-mixin-
# members is set to 'yes'
mixin-class-rgx=.*[Mm]ixin

# List of decorators that change the signature of a decorated function.
signature-mutators=


[IMPORTS]

# List of modules that can be imported at any level, not just the top level
# one.
allow-any-import-level=

# Allow wildcard imports from modules that define __all__.
allow-wildcard-with-all=no

# Analyse import fallback blocks. This can be used to support both Python 2 and
# 3 compatible code, which means that the block might have code that exists
# only in one or another interpreter, leading to false positives when analysed.
analyse-fallback-blocks=no

# Deprecated modules which should not be used, separated by a comma.
deprecated-modules=

# Output a graph (.gv or any supported image format) of external dependencies
# to the given file (report RP0402 must not be disabled).
ext-import-graph=

# Output a graph (.gv or any supported image format) of all (i.e. internal and
# external) dependencies to the given file (report RP0402 must not be
# disabled).
import-graph=

# Output a graph (.gv or any supported image format) of internal dependencies
# to the given file (report RP0402 must not be disabled).
int-import-graph=

# Force import order to recognize a module as part of the standard
# compatibility libraries.
known-standard-library=

# Force import order to recognize a module as part of a third party library.
known-third-party=enchant

# Couples of modules and preferred modules, separated by a comma.
preferred-modules=


[DESIGN]

# List of regular expressions of class ancestor names to ignore when counting
# public methods (see R0903)
exclude-too-few-public-methods=

# List of qualified class names to ignore when counting class parents (see
# R0901)
ignored-parents=

# Maximum number of arguments for function / method.
max-args=5

# Maximum number of attributes for a class (see R0902).
max-attributes=7

# Maximum number of boolean expressions in an if statement (see R0916).
max-bool-expr=5

# Maximum number of branch for function / method body.
max-branches=12

# Maximum number of locals for function / method body.
max-locals=15

# Maximum number of parents for a class (see R0901).
max-parents=7

# Maximum number of public methods for a class (see R0904).
max-public-methods=20

# Maximum number of return / yield for function / method body.
max-returns=6

# Maximum number of statements in function / method body.
max-statements=50

# Minimum number of public methods for a class (see R0903).
min-public-methods=2


[CLASSES]

# Warn about protected attribute access inside special methods
check-protected-access-in-special-methods=no

# List of method names used to declare (i.e. assign) instance attributes.
defining-attr-methods=__init__,
                      __new__,
                      setUp,
                      __post_init__

# List of member names, which should be excluded from the protected access
# warning.
exclude-protected=_asdict,
                  _fields,
                  _replace,
                  _source,
                  _make

# List of valid names for the first argument in a class method.
valid-classmethod-first-arg=cls

# List of valid names for the first argument in a metaclass class method.
valid-metaclass-classmethod-first-arg=cls


[EXCEPTIONS]

# Exceptions that will emit a warning when being caught. Defaults to
# "BaseException, Exception".
overgeneral-exceptions=BaseException,
                       Exception


================================================
FILE: .python-version
================================================
3.10.14


================================================
FILE: .readthedocs.yml
================================================
version: 2

mkdocs:
  configuration: docs/obsolete/mkdocs.yml
  fail_on_warning: false

formats: all

build:
  image: latest

python:
  version: 3.7
  install:
    - requirements: docs/obsolete/requirements.txt


================================================
FILE: LICENSE
================================================
The MIT License (MIT)

Copyright (c) 2013-2025 crazy rabbidz

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.


================================================
FILE: README.md
================================================
<p align="center">
  <img src="docs/assets/images/logo.png" alt="logo"/>
</p>

<p align="center">
    <a href="https://discord.gg/hSbqxxBgRX"><img alt="Discord" src="https://img.shields.io/badge/Discord-BlahCats-yellow"></a>
  <a href="https://hugsy.github.io/gef"><img alt="Docs" src="https://img.shields.io/badge/Docs-gh--pages-brightgreen"></a>
  <a title="Use the IDs: gef/gef-demo" href="https://demo.gef.blah.cat"><img alt="Try GEF" src="https://img.shields.io/badge/Demo-Try%20GEF%20Live-blue"></a>
</p>

`GEF` (pronounced ʤɛf - "Jeff") is a set of commands for x86/64, ARM, MIPS, PowerPC and SPARC to
assist exploit developers and reverse-engineers when using old school GDB. It provides additional
features to GDB using the Python API to assist during the process of dynamic analysis and exploit
development. Application developers will also benefit from it, as GEF lifts a great part of regular
GDB obscurity, avoiding repeating traditional commands, or bringing out the relevant information
from the debugging runtime.

## Instant Setup

Simply make sure you have [GDB 10.0 or higher](https://www.gnu.org/s/gdb) compiled with Python3.10+
bindings, then:

```bash
# via the install script
## using curl
$ bash -c "$(curl -fsSL https://gef.blah.cat/sh)"

## using wget
$ bash -c "$(wget https://gef.blah.cat/sh -O -)"

# or manually
$ wget -O ~/.gdbinit-gef.py -q https://gef.blah.cat/py
$ echo source ~/.gdbinit-gef.py >> ~/.gdbinit

# or alternatively from inside gdb directly
$ gdb -q
(gdb) pi import urllib.request as u, tempfile as t; g=t.NamedTemporaryFile(suffix='-gef.py'); open(g.name, 'wb+').write(u.urlopen('https://tinyurl.com/gef-main').read()); gdb.execute('source %s' % g.name)
```

You can immediately see that GEF is correctly installed by launching GDB:

![gef-context](docs/assets/images/gef-context.png)

A few of `GEF` features include:

*  **One** single GDB script
*  Entirely **architecture agnostic**, **NO** dependencies: `GEF` is battery-included and [is
  installable instantly](https://hugsy.github.io/gef/#setup)
*  **Fast** limiting the number of dependencies and optimizing code to make the commands as fast as
  possible
*  Provides a great variety of commands to drastically change your experience in GDB.
*  [**Easily** extensible](https://hugsy.github.io/gef/api/) to create other commands by providing
d more comprehensible layout to GDB Python API.
*  Full Python3 support ([Python2 support was
  dropped](https://github.com/hugsy/gef/releases/tag/2020.03) - see
  [`gef-legacy`](https://github.com/hugsy/gef-legacy)).
*  Built around an architecture abstraction layer, so all commands work in any GDB-supported
  architecture such as x86-32/64, ARMv5/6/7, AARCH64, SPARC, MIPS, PowerPC, etc.
* Suited for real-life apps debugging, exploit development, just as much as CTF
* And a lot more commands contributed by the community available on
  [GEF-Extras](https://github.com/hugsy/gef-extras) !!

Check out the [Screenshot page](docs/screenshots.md) for more or [try it
online](https://demo.gef.blah.cat) (user:`gef`/password:`gef-demo`)

## Documentation

Unlike other GDB plugins, GEF has an extensive and up-to-date
[documentation](https://hugsy.github.io/gef/). Users are recommended to refer to it as it may help
them in their attempts to use GEF. In particular, new users should navigate through it (see the
[FAQ](https://hugsy.github.io/gef/faq/) for common installation problems), and the problem persists,
try to reach out for help on the Discord channel or submit an issue.

## Current status

|                                                                          Documentation                                                                           |                                                                  License                                                                   | Compatibility                                                                                 | CI Tests (`main`)                                                                                                                                  |
| :--------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| [![Documentation](https://github.com/hugsy/gef/actions/workflows/generate-docs.yml/badge.svg)](https://github.com/hugsy/gef/actions/workflows/generate-docs.yml) | [![MIT](https://img.shields.io/packagist/l/doctrine/orm.svg?maxAge=2592000?style=plastic)](https://github.com/hugsy/gef/blob/main/LICENSE) | [![Python 3](https://img.shields.io/badge/Python-3-green.svg)](https://github.com/hugsy/gef/) | [![CI Test for GEF](https://github.com/hugsy/gef/actions/workflows/tests.yml/badge.svg)](https://github.com/hugsy/gef/actions/workflows/tests.yml) |

## Contribute

To get involved, refer to the [Contribution
documentation](https://hugsy.github.io/gef/#contribution) and the
[guidelines](https://github.com/hugsy/gef/blob/main/.github/CONTRIBUTING.md) to start.

## Sponsors

Another way to contribute to keeping the project alive is by sponsoring it! Check out [the
sponsoring documentation](https://hugsy.github.io/gef/#sponsors) for details so you can be part of
the list of those [awesome sponsors](https://github.com/sponsors/hugsy).

## Happy Hacking 🍻


================================================
FILE: docs/.markdownlint.yaml
================================================
#
# Rules: https://github.com/DavidAnson/markdownlint/blob/main/doc/Rules.md
#
# Default state for all rules
default: true

# Path to configuration file to extend
extends: null

# MD001/heading-increment/header-increment - Heading levels should only increment by one level at a time
MD001: true

# MD002/first-heading-h1/first-header-h1 - First heading should be a top-level heading
MD002:
  # Heading level
  level: 2

# MD003/heading-style/header-style - Heading style
MD003:
  # Heading style
  style: "consistent"

# MD004/ul-style - Unordered list style
MD004:
  # List style
  style: "consistent"

# MD005/list-indent - Inconsistent indentation for list items at the same level
MD005: true

# MD006/ul-start-left - Consider starting bulleted lists at the beginning of the line
MD006: true

# MD007/ul-indent - Unordered list indentation
MD007:
  # Spaces for indent
  indent: 2
  # Whether to indent the first level of the list
  start_indented: false
  # Spaces for first level indent (when start_indented is set)
  start_indent: 2

# MD009/no-trailing-spaces - Trailing spaces
MD009:
  # Spaces for line break
  br_spaces: 2
  # Allow spaces for empty lines in list items
  list_item_empty_lines: false
  # Include unnecessary breaks
  strict: false

# MD010/no-hard-tabs - Hard tabs
MD010:
  # Include code blocks
  code_blocks: false
  # Fenced code languages to ignore
  ignore_code_languages: []
  # Number of spaces for each hard tab
  spaces_per_tab: 4

# MD011/no-reversed-links - Reversed link syntax
MD011: true

# MD012/no-multiple-blanks - Multiple consecutive blank lines
MD012:
  # Consecutive blank lines
  maximum: 2

# MD013/line-length - Line length
MD013:
  # Number of characters
  line_length: 100
  # Number of characters for headings
  heading_line_length: 100
  # Number of characters for code blocks
  code_block_line_length: 100
  # Include code blocks
  code_blocks: false
  # Include tables
  tables: false
  # Include headings
  headings: true
  # Include headings
  headers: true
  # Strict length checking
  strict: false
  # Stern length checking
  stern: false

# MD014/commands-show-output - Dollar signs used before commands without showing output
MD014: true

# MD018/no-missing-space-atx - No space after hash on atx style heading
MD018: true

# MD019/no-multiple-space-atx - Multiple spaces after hash on atx style heading
MD019: true

# MD020/no-missing-space-closed-atx - No space inside hashes on closed atx style heading
MD020: true

# MD021/no-multiple-space-closed-atx - Multiple spaces inside hashes on closed atx style heading
MD021: true

# MD022/blanks-around-headings/blanks-around-headers - Headings should be surrounded by blank lines
MD022:
  # Blank lines above heading
  lines_above: 1
  # Blank lines below heading
  lines_below: 1

# MD023/heading-start-left/header-start-left - Headings must start at the beginning of the line
MD023: true

# MD024/no-duplicate-heading/no-duplicate-header - Multiple headings with the same content
MD024:
  # Only check sibling headings
  allow_different_nesting: false
  # Only check sibling headings
  siblings_only: false

# MD025/single-title/single-h1 - Multiple top-level headings in the same document
MD025:
  # Heading level
  level: 1
  # RegExp for matching title in front matter
  front_matter_title: "^\\s*title\\s*[:=]"

# MD026/no-trailing-punctuation - Trailing punctuation in heading
MD026:
  # Punctuation characters not allowed at end of headings
  punctuation: ".,;:!。,;:!"

# MD027/no-multiple-space-blockquote - Multiple spaces after blockquote symbol
MD027: true

# MD028/no-blanks-blockquote - Blank line inside blockquote
MD028: true

# MD029/ol-prefix - Ordered list item prefix
MD029:
  # List style
  style: "one_or_ordered"

# MD030/list-marker-space - Spaces after list markers
MD030:
  # Spaces for single-line unordered list items
  ul_single: 2
  # Spaces for single-line ordered list items
  ol_single: 2
  # Spaces for multi-line unordered list items
  ul_multi: 2
  # Spaces for multi-line ordered list items
  ol_multi: 2

# MD031/blanks-around-fences - Fenced code blocks should be surrounded by blank lines
MD031:
  # Include list items
  list_items: true

# MD032/blanks-around-lists - Lists should be surrounded by blank lines
MD032: true

# MD033/no-inline-html - Inline HTML
MD033:
  # Allowed elements
  allowed_elements: ["img"]

# MD034/no-bare-urls - Bare URL used
MD034: true

# MD035/hr-style - Horizontal rule style
MD035:
  # Horizontal rule style
  style: "consistent"

# MD036/no-emphasis-as-heading/no-emphasis-as-header - Emphasis used instead of a heading
MD036:
  # Punctuation characters
  punctuation: ".,;:!?。,;:!?"

# MD037/no-space-in-emphasis - Spaces inside emphasis markers
MD037: true

# MD038/no-space-in-code - Spaces inside code span elements
MD038: true

# MD039/no-space-in-links - Spaces inside link text
MD039: true

# MD040/fenced-code-language - Fenced code blocks should have a language specified
MD040:
  # List of languages
  allowed_languages: []
  # Require language only
  language_only: false

# MD041/first-line-heading/first-line-h1 - First line in a file should be a top-level heading
MD041:
  # Heading level
  level: 2
  # RegExp for matching title in front matter
  front_matter_title: "^\\s*title\\s*[:=]"

# MD042/no-empty-links - No empty links
MD042: true

# MD043/required-headings/required-headers - Required heading structure
MD043: false

# MD044/proper-names - Proper names should have the correct capitalization
MD044:
  # List of proper names
  names: []
  # Include code blocks
  code_blocks: false
  # Include HTML elements
  html_elements: false

# MD045/no-alt-text - Images should have alternate text (alt text)
MD045: true

# MD046/code-block-style - Code block style
MD046:
  # Block style
  style: "consistent"

# MD047/single-trailing-newline - Files should end with a single newline character
MD047: true

# MD048/code-fence-style - Code fence style
MD048:
  # Code fence style
  style: "consistent"

# MD049/emphasis-style - Emphasis style should be consistent
MD049:
  # Emphasis style should be consistent
  style: "consistent"

# MD050/strong-style - Strong style should be consistent
MD050:
  # Strong style should be consistent
  style: "consistent"

# MD051/link-fragments - Link fragments should be valid
MD051: true

# MD052/reference-links-images - Reference links and images should use a label that is defined
MD052: true

# MD053/link-image-reference-definitions - Link and image reference definitions should be needed
MD053:
  # Ignored definitions
  ignored_definitions:
    - "//"


================================================
FILE: docs/api/gef.md
================================================
<!-- markdownlint-disable -->

# <kbd>module</kbd> `GEF`




**Global Variables**
---------------
- **GEF_DEFAULT_BRANCH**
- **GEF_EXTRAS_DEFAULT_BRANCH**
- **GDB_MIN_VERSION**
- **GDB_VERSION**
- **PYTHON_MIN_VERSION**
- **PYTHON_VERSION**
- **DEFAULT_PAGE_ALIGN_SHIFT**
- **DEFAULT_PAGE_SIZE**
- **GEF_TEMP_DIR**
- **GEF_MAX_STRING_LENGTH**
- **LIBC_HEAP_MAIN_ARENA_DEFAULT_NAME**
- **ANSI_SPLIT_RE**
- **LEFT_ARROW**
- **RIGHT_ARROW**
- **DOWN_ARROW**
- **HORIZONTAL_LINE**
- **VERTICAL_LINE**
- **CROSS**
- **TICK**
- **BP_GLYPH**
- **GEF_PROMPT**
- **GEF_PROMPT_ON**
- **GEF_PROMPT_OFF**
- **PREFIX**
- **gdb_initial_settings**
- **cmd**
- **gef**
- **errmsg**

---

<a href="https://cs.github.com/hugsy/gef?q=http_get"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `http_get`

```python
http_get(url: str) → Optional[bytes]
```

Basic HTTP wrapper for GET request. Return the body of the page if HTTP code is OK, otherwise return None.


---

<a href="https://cs.github.com/hugsy/gef?q=update_gef"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `update_gef`

```python
update_gef(argv: List[str]) → int
```

Try to update `gef` to the latest version pushed on GitHub main branch. Return 0 on success, 1 on failure.


---

<a href="https://cs.github.com/hugsy/gef?q=reset_all_caches"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `reset_all_caches`

```python
reset_all_caches() → None
```

Free all caches. If an object is cached, it will have a callable attribute `cache_clear` which will be invoked to purge the function cache.


---

<a href="https://cs.github.com/hugsy/gef?q=reset"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `reset`

```python
reset() → None
```






---

<a href="https://cs.github.com/hugsy/gef?q=highlight_text"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `highlight_text`

```python
highlight_text(text: str) → str
```

Highlight text using `gef.ui.highlight_table` { match -> color } settings.

If RegEx is enabled it will create a match group around all items in the `gef.ui.highlight_table` and wrap the specified color in the `gef.ui.highlight_table` around those matches.

If RegEx is disabled, split by ANSI codes and 'colorify' each match found within the specified string.


---

<a href="https://cs.github.com/hugsy/gef?q=gef_print"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `gef_print`

```python
gef_print(*args: str, end='\n', sep=' ', **kwargs: Any) → None
```

Wrapper around print(), using string buffering feature.


---

<a href="https://cs.github.com/hugsy/gef?q=bufferize"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `bufferize`

```python
bufferize(f: Callable) → Callable
```

Store the content to be printed for a function in memory, and flush it on function exit.


---

<a href="https://cs.github.com/hugsy/gef?q=p8"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `p8`

```python
p8(
    x: int,
    s: bool = False,
    e: Optional[ForwardRef('Endianness')] = None
) → bytes
```

Pack one byte respecting the current architecture endianness.


---

<a href="https://cs.github.com/hugsy/gef?q=p16"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `p16`

```python
p16(
    x: int,
    s: bool = False,
    e: Optional[ForwardRef('Endianness')] = None
) → bytes
```

Pack one word respecting the current architecture endianness.


---

<a href="https://cs.github.com/hugsy/gef?q=p32"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `p32`

```python
p32(
    x: int,
    s: bool = False,
    e: Optional[ForwardRef('Endianness')] = None
) → bytes
```

Pack one dword respecting the current architecture endianness.


---

<a href="https://cs.github.com/hugsy/gef?q=p64"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `p64`

```python
p64(
    x: int,
    s: bool = False,
    e: Optional[ForwardRef('Endianness')] = None
) → bytes
```

Pack one qword respecting the current architecture endianness.


---

<a href="https://cs.github.com/hugsy/gef?q=u8"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `u8`

```python
u8(
    x: bytes,
    s: bool = False,
    e: Optional[ForwardRef('Endianness')] = None
) → int
```

Unpack one byte respecting the current architecture endianness.


---

<a href="https://cs.github.com/hugsy/gef?q=u16"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `u16`

```python
u16(
    x: bytes,
    s: bool = False,
    e: Optional[ForwardRef('Endianness')] = None
) → int
```

Unpack one word respecting the current architecture endianness.


---

<a href="https://cs.github.com/hugsy/gef?q=u32"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `u32`

```python
u32(
    x: bytes,
    s: bool = False,
    e: Optional[ForwardRef('Endianness')] = None
) → int
```

Unpack one dword respecting the current architecture endianness.


---

<a href="https://cs.github.com/hugsy/gef?q=u64"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `u64`

```python
u64(
    x: bytes,
    s: bool = False,
    e: Optional[ForwardRef('Endianness')] = None
) → int
```

Unpack one qword respecting the current architecture endianness.


---

<a href="https://cs.github.com/hugsy/gef?q=is_ascii_string"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `is_ascii_string`

```python
is_ascii_string(address: int) → bool
```

Helper function to determine if the buffer pointed by `address` is an ASCII string (in GDB)


---

<a href="https://cs.github.com/hugsy/gef?q=is_alive"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `is_alive`

```python
is_alive() → bool
```

Check if GDB is running.


---

<a href="https://cs.github.com/hugsy/gef?q=calling_function"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `calling_function`

```python
calling_function() → Optional[str]
```

Return the name of the calling function


---

<a href="https://cs.github.com/hugsy/gef?q=only_if_gdb_running"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `only_if_gdb_running`

```python
only_if_gdb_running(f: Callable) → Callable
```

Decorator wrapper to check if GDB is running.


---

<a href="https://cs.github.com/hugsy/gef?q=only_if_gdb_target_local"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `only_if_gdb_target_local`

```python
only_if_gdb_target_local(f: Callable) → Callable
```

Decorator wrapper to check if GDB is running locally (target not remote).


---

<a href="https://cs.github.com/hugsy/gef?q=deprecated"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `deprecated`

```python
deprecated(solution: str = '') → Callable
```

Decorator to add a warning when a command is obsolete and will be removed.


---

<a href="https://cs.github.com/hugsy/gef?q=experimental_feature"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `experimental_feature`

```python
experimental_feature(f: Callable) → Callable
```

Decorator to add a warning when a feature is experimental.


---

<a href="https://cs.github.com/hugsy/gef?q=only_if_events_supported"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `only_if_events_supported`

```python
only_if_events_supported(event_type: str) → Callable
```

Checks if GDB supports events without crashing.


---

<a href="https://cs.github.com/hugsy/gef?q=wrapped_f"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `wrapped_f`

```python
wrapped_f(*args: Any, **kwargs: Any) → Any
```






---

<a href="https://cs.github.com/hugsy/gef?q=wrapped_f"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `wrapped_f`

```python
wrapped_f(*args: Any, **kwargs: Any) → Any
```






---

<a href="https://cs.github.com/hugsy/gef?q=wrapped_f"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `wrapped_f`

```python
wrapped_f(*args: Any, **kwargs: Any) → Any
```






---

<a href="https://cs.github.com/hugsy/gef?q=wrapped_f"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `wrapped_f`

```python
wrapped_f(*args: Any, **kwargs: Any) → Any
```






---

<a href="https://cs.github.com/hugsy/gef?q=wrapped_f"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `wrapped_f`

```python
wrapped_f(*args: Any, **kwargs: Any) → Any
```






---

<a href="https://cs.github.com/hugsy/gef?q=wrapped_f"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `wrapped_f`

```python
wrapped_f(*args: Any, **kwargs: Any) → Any
```






---

<a href="https://cs.github.com/hugsy/gef?q=wrapped_f"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `wrapped_f`

```python
wrapped_f(*args: Any, **kwargs: Any) → Any
```






---

<a href="https://cs.github.com/hugsy/gef?q=wrapped_f"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `wrapped_f`

```python
wrapped_f(*args: Any, **kwargs: Any) → Any
```






---

<a href="https://cs.github.com/hugsy/gef?q=wrapped_f"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `wrapped_f`

```python
wrapped_f(*args: Any, **kwargs: Any) → Any
```






---

<a href="https://cs.github.com/hugsy/gef?q=wrapped_f"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `wrapped_f`

```python
wrapped_f(*args: Any, **kwargs: Any) → Any
```






---

<a href="https://cs.github.com/hugsy/gef?q=wrapped_f"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `wrapped_f`

```python
wrapped_f(*args: Any, **kwargs: Any) → Any
```






---

<a href="https://cs.github.com/hugsy/gef?q=wrapped_f"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `wrapped_f`

```python
wrapped_f(*args: Any, **kwargs: Any) → Any
```






---

<a href="https://cs.github.com/hugsy/gef?q=wrapped_f"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `wrapped_f`

```python
wrapped_f(*args: Any, **kwargs: Any) → Any
```






---

<a href="https://cs.github.com/hugsy/gef?q=wrapped_f"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `wrapped_f`

```python
wrapped_f(*args: Any, **kwargs: Any) → Any
```






---

<a href="https://cs.github.com/hugsy/gef?q=FakeExit"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `FakeExit`

```python
FakeExit(*args: Any, **kwargs: Any) → NoReturn
```






---

<a href="https://cs.github.com/hugsy/gef?q=parse_arguments"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `parse_arguments`

```python
parse_arguments(
    required_arguments: Dict[Union[str, Tuple[str, str]], Any],
    optional_arguments: Dict[Union[str, Tuple[str, str]], Any]
) → Callable
```

Argument parsing decorator.


---

<a href="https://cs.github.com/hugsy/gef?q=search_for_main_arena"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `search_for_main_arena`

```python
search_for_main_arena() → int
```

`search_for_main_arena` is **DEPRECATED** and will be removed in the future.
 Use GefHeapManager.find_main_arena_addr()


---

<a href="https://cs.github.com/hugsy/gef?q=get_libc_version"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `get_libc_version`

```python
get_libc_version() → Tuple[int, ...]
```

`get_libc_version` is **DEPRECATED** and will be removed in the future.
 Use GefLibcManager.find_libc_version()


---

<a href="https://cs.github.com/hugsy/gef?q=titlify"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `titlify`

```python
titlify(
    text: str,
    color: Optional[str] = None,
    msg_color: Optional[str] = None
) → str
```

Print a centered title.


---

<a href="https://cs.github.com/hugsy/gef?q=dbg"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `dbg`

```python
dbg(msg: str) → None
```






---

<a href="https://cs.github.com/hugsy/gef?q=err"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `err`

```python
err(msg: str) → None
```






---

<a href="https://cs.github.com/hugsy/gef?q=warn"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `warn`

```python
warn(msg: str) → None
```






---

<a href="https://cs.github.com/hugsy/gef?q=ok"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ok`

```python
ok(msg: str) → None
```






---

<a href="https://cs.github.com/hugsy/gef?q=info"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `info`

```python
info(msg: str) → None
```






---

<a href="https://cs.github.com/hugsy/gef?q=push_context_message"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `push_context_message`

```python
push_context_message(level: str, message: str) → None
```

Push the message to be displayed the next time the context is invoked.


---

<a href="https://cs.github.com/hugsy/gef?q=show_last_exception"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `show_last_exception`

```python
show_last_exception() → None
```

Display the last Python exception.


---

<a href="https://cs.github.com/hugsy/gef?q=gef_pystring"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `gef_pystring`

```python
gef_pystring(x: bytes) → str
```

Returns a sanitized version as string of the bytes list given in input.


---

<a href="https://cs.github.com/hugsy/gef?q=gef_pybytes"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `gef_pybytes`

```python
gef_pybytes(x: str) → bytes
```

Returns an immutable bytes list from the string given as input.


---

<a href="https://cs.github.com/hugsy/gef?q=style_byte"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `style_byte`

```python
style_byte(b: int, color: bool = True) → str
```






---

<a href="https://cs.github.com/hugsy/gef?q=hexdump"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `hexdump`

```python
hexdump(
    source: ByteString,
    length: int = 16,
    separator: str = '.',
    show_raw: bool = False,
    show_symbol: bool = True,
    base: int = 0
) → str
```

Return the hexdump of `src` argument. @param source *MUST* be of type bytes or bytearray @param length is the length of items per line @param separator is the default character to use if one byte is not printable @param show_raw if True, do not add the line nor the text translation @param base is the start address of the block being hexdump @return a string with the hexdump


---

<a href="https://cs.github.com/hugsy/gef?q=is_debug"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `is_debug`

```python
is_debug() → bool
```

Check if debug mode is enabled.


---

<a href="https://cs.github.com/hugsy/gef?q=buffer_output"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `buffer_output`

```python
buffer_output() → bool
```

Check if output should be buffered until command completion.


---

<a href="https://cs.github.com/hugsy/gef?q=hide_context"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `hide_context`

```python
hide_context() → bool
```

Helper function to hide the context pane.


---

<a href="https://cs.github.com/hugsy/gef?q=unhide_context"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `unhide_context`

```python
unhide_context() → bool
```

Helper function to unhide the context pane.


---

<a href="https://cs.github.com/hugsy/gef?q=enable_redirect_output"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `enable_redirect_output`

```python
enable_redirect_output(to_file: str = '/dev/null') → None
```

Redirect all GDB output to `to_file` parameter. By default, `to_file` redirects to `/dev/null`.


---

<a href="https://cs.github.com/hugsy/gef?q=disable_redirect_output"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `disable_redirect_output`

```python
disable_redirect_output() → None
```

Disable the output redirection, if any.


---

<a href="https://cs.github.com/hugsy/gef?q=gef_makedirs"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `gef_makedirs`

```python
gef_makedirs(path: str, mode: int = 493) → Path
```

Recursive mkdir() creation. If successful, return the absolute path of the directory created.


---

<a href="https://cs.github.com/hugsy/gef?q=gdb_disassemble"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `gdb_disassemble`

```python
gdb_disassemble(
    start_pc: int,
    **kwargs: int
) → Generator[__main__.Instruction, NoneType, NoneType]
```

Disassemble instructions from `start_pc` (Integer). Accepts the following named

**parameters:**

- `end_pc` (Integer) only instructions whose start address fall in the interval from  start_pc to end_pc are returned.
- `count` (Integer) list at most this many disassembled instructions If `end_pc` and `count` are not provided, the function will behave as if `count=1`. Return an iterator of Instruction objects


---

<a href="https://cs.github.com/hugsy/gef?q=gdb_get_nth_previous_instruction_address"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `gdb_get_nth_previous_instruction_address`

```python
gdb_get_nth_previous_instruction_address(addr: int, n: int) → Optional[int]
```

Return the address (Integer) of the `n`-th instruction before `addr`.


---

<a href="https://cs.github.com/hugsy/gef?q=gdb_get_nth_next_instruction_address"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `gdb_get_nth_next_instruction_address`

```python
gdb_get_nth_next_instruction_address(addr: int, n: int) → int
```

Return the address (Integer) of the `n`-th instruction after `addr`.


---

<a href="https://cs.github.com/hugsy/gef?q=gef_instruction_n"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `gef_instruction_n`

```python
gef_instruction_n(addr: int, n: int) → Instruction
```

Return the `n`-th instruction after `addr` as an Instruction object.


---

<a href="https://cs.github.com/hugsy/gef?q=gef_get_instruction_at"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `gef_get_instruction_at`

```python
gef_get_instruction_at(addr: int) → Instruction
```

Return the full Instruction found at the specified address.


---

<a href="https://cs.github.com/hugsy/gef?q=gef_current_instruction"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `gef_current_instruction`

```python
gef_current_instruction(addr: int) → Instruction
```

Return the current instruction as an Instruction object.


---

<a href="https://cs.github.com/hugsy/gef?q=gef_next_instruction"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `gef_next_instruction`

```python
gef_next_instruction(addr: int) → Instruction
```

Return the next instruction as an Instruction object.


---

<a href="https://cs.github.com/hugsy/gef?q=gef_disassemble"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `gef_disassemble`

```python
gef_disassemble(
    addr: int,
    nb_insn: int,
    nb_prev: int = 0
) → Generator[__main__.Instruction, NoneType, NoneType]
```

Disassemble `nb_insn` instructions after `addr` and `nb_prev` before `addr`. Return an iterator of Instruction objects.


---

<a href="https://cs.github.com/hugsy/gef?q=gef_execute_external"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `gef_execute_external`

```python
gef_execute_external(
    command: Sequence[str],
    as_list: bool = False,
    **kwargs: Any
) → Union[str, List[str]]
```

Execute an external command and return the result.


---

<a href="https://cs.github.com/hugsy/gef?q=gef_execute_gdb_script"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `gef_execute_gdb_script`

```python
gef_execute_gdb_script(commands: str) → None
```

Execute the parameter `source` as GDB command. This is done by writing `commands` to a temporary file, which is then executed via GDB `source` command. The tempfile is then deleted.


---

<a href="https://cs.github.com/hugsy/gef?q=checksec"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `checksec`

```python
checksec(filename: str) → Dict[str, bool]
```

`checksec` is **DEPRECATED** and will be removed in the future.
 Use Elf(fname).checksec()


---

<a href="https://cs.github.com/hugsy/gef?q=get_entry_point"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `get_entry_point`

```python
get_entry_point() → Optional[int]
```

Return the binary entry point.
 `get_entry_point` is **DEPRECATED** and will be removed in the future.
 Use `gef.binary.entry_point` instead


---

<a href="https://cs.github.com/hugsy/gef?q=is_pie"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `is_pie`

```python
is_pie(fpath: str) → bool
```






---

<a href="https://cs.github.com/hugsy/gef?q=is_big_endian"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `is_big_endian`

```python
is_big_endian() → bool
```

`is_big_endian` is **DEPRECATED** and will be removed in the future.
 Prefer `gef.arch.endianness == Endianness.BIG_ENDIAN`


---

<a href="https://cs.github.com/hugsy/gef?q=is_little_endian"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `is_little_endian`

```python
is_little_endian() → bool
```

`is_little_endian` is **DEPRECATED** and will be removed in the future.
 gef.arch.endianness == Endianness.LITTLE_ENDIAN


---

<a href="https://cs.github.com/hugsy/gef?q=flags_to_human"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `flags_to_human`

```python
flags_to_human(reg_value: int, value_table: Dict[int, str]) → str
```

Return a human readable string showing the flag states.


---

<a href="https://cs.github.com/hugsy/gef?q=register_architecture"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `register_architecture`

```python
register_architecture(
    cls: Type[ForwardRef('Architecture')]
) → Type[ForwardRef('Architecture')]
```

`register_architecture` is **DEPRECATED** and will be removed in the future.
 Using the decorator `register_architecture` is unnecessary


---

<a href="https://cs.github.com/hugsy/gef?q=copy_to_clipboard"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `copy_to_clipboard`

```python
copy_to_clipboard(data: bytes) → None
```

Helper function to submit data to the clipboard


---

<a href="https://cs.github.com/hugsy/gef?q=use_stdtype"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `use_stdtype`

```python
use_stdtype() → str
```






---

<a href="https://cs.github.com/hugsy/gef?q=use_default_type"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `use_default_type`

```python
use_default_type() → str
```






---

<a href="https://cs.github.com/hugsy/gef?q=use_golang_type"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `use_golang_type`

```python
use_golang_type() → str
```






---

<a href="https://cs.github.com/hugsy/gef?q=use_rust_type"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `use_rust_type`

```python
use_rust_type() → str
```






---

<a href="https://cs.github.com/hugsy/gef?q=to_unsigned_long"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `to_unsigned_long`

```python
to_unsigned_long(v: gdb.Value) → int
```

Cast a gdb.Value to unsigned long.


---

<a href="https://cs.github.com/hugsy/gef?q=get_path_from_info_proc"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `get_path_from_info_proc`

```python
get_path_from_info_proc() → Optional[str]
```






---

<a href="https://cs.github.com/hugsy/gef?q=get_os"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `get_os`

```python
get_os() → str
```

`get_os` is **DEPRECATED** and will be removed in the future.
 Use `gef.session.os`


---

<a href="https://cs.github.com/hugsy/gef?q=get_filepath"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `get_filepath`

```python
get_filepath() → Optional[str]
```

Return the local absolute path of the file currently debugged.


---

<a href="https://cs.github.com/hugsy/gef?q=get_function_length"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `get_function_length`

```python
get_function_length(sym: str) → int
```

Attempt to get the length of the raw bytes of a function.


---

<a href="https://cs.github.com/hugsy/gef?q=process_lookup_address"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `process_lookup_address`

```python
process_lookup_address(address: int) → Optional[__main__.Section]
```

Look up for an address in memory. Return an Address object if found, None otherwise.


---

<a href="https://cs.github.com/hugsy/gef?q=xor"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `xor`

```python
xor(data: ByteString, key: str) → bytearray
```

Return `data` xor-ed with `key`.


---

<a href="https://cs.github.com/hugsy/gef?q=is_hex"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `is_hex`

```python
is_hex(pattern: str) → bool
```

Return whether provided string is a hexadecimal value.


---

<a href="https://cs.github.com/hugsy/gef?q=continue_handler"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `continue_handler`

```python
continue_handler(_: 'gdb.Event') → None
```

GDB event handler for new object continue cases.


---

<a href="https://cs.github.com/hugsy/gef?q=hook_stop_handler"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `hook_stop_handler`

```python
hook_stop_handler(_: 'gdb.StopEvent') → None
```

GDB event handler for stop cases.


---

<a href="https://cs.github.com/hugsy/gef?q=new_objfile_handler"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `new_objfile_handler`

```python
new_objfile_handler(evt: Optional[ForwardRef('gdb.NewObjFileEvent')]) → None
```

GDB event handler for new object file cases.


---

<a href="https://cs.github.com/hugsy/gef?q=exit_handler"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `exit_handler`

```python
exit_handler(_: 'gdb.ExitedEvent') → None
```

GDB event handler for exit cases.


---

<a href="https://cs.github.com/hugsy/gef?q=memchanged_handler"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `memchanged_handler`

```python
memchanged_handler(_: 'gdb.MemoryChangedEvent') → None
```

GDB event handler for mem changes cases.


---

<a href="https://cs.github.com/hugsy/gef?q=regchanged_handler"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `regchanged_handler`

```python
regchanged_handler(_: 'gdb.RegisterChangedEvent') → None
```

GDB event handler for reg changes cases.


---

<a href="https://cs.github.com/hugsy/gef?q=get_terminal_size"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `get_terminal_size`

```python
get_terminal_size() → Tuple[int, int]
```

Return the current terminal size.


---

<a href="https://cs.github.com/hugsy/gef?q=reset_architecture"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `reset_architecture`

```python
reset_architecture(arch: Optional[str] = None) → None
```

Sets the current architecture. If an architecture is explicitly specified by parameter, try to use that one. If this fails, an `OSError` exception will occur. If no architecture is specified, then GEF will attempt to determine automatically based on the current ELF target. If this fails, an `OSError` exception will occur.


---

<a href="https://cs.github.com/hugsy/gef?q=get_memory_alignment"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `get_memory_alignment`

```python
get_memory_alignment(in_bits: bool = False) → int
```

Try to determine the size of a pointer on this system.  First, try to parse it out of the ELF header.  Next, use the size of `size_t`.  Finally, try the size of $pc.  If `in_bits` is set to True, the result is returned in bits, otherwise in  bytes.
 `get_memory_alignment` is **DEPRECATED** and will be removed in the future.
 Use `gef.arch.ptrsize` instead


---

<a href="https://cs.github.com/hugsy/gef?q=clear_screen"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `clear_screen`

```python
clear_screen(tty: str = '') → None
```

Clear the screen.


---

<a href="https://cs.github.com/hugsy/gef?q=format_address"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `format_address`

```python
format_address(addr: int) → str
```

Format the address according to its size.


---

<a href="https://cs.github.com/hugsy/gef?q=format_address_spaces"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `format_address_spaces`

```python
format_address_spaces(addr: int, left: bool = True) → str
```

Format the address according to its size, but with spaces instead of zeroes.


---

<a href="https://cs.github.com/hugsy/gef?q=align_address"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `align_address`

```python
align_address(address: int) → int
```

Align the provided address to the process's native length.


---

<a href="https://cs.github.com/hugsy/gef?q=align_address_to_size"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `align_address_to_size`

```python
align_address_to_size(address: int, align: int) → int
```

Align the address to the given size.


---

<a href="https://cs.github.com/hugsy/gef?q=align_address_to_page"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `align_address_to_page`

```python
align_address_to_page(address: int) → int
```

Align the address to a page.


---

<a href="https://cs.github.com/hugsy/gef?q=parse_address"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `parse_address`

```python
parse_address(address: str) → int
```

Parse an address and return it as an Integer.


---

<a href="https://cs.github.com/hugsy/gef?q=is_in_x86_kernel"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `is_in_x86_kernel`

```python
is_in_x86_kernel(address: int) → bool
```






---

<a href="https://cs.github.com/hugsy/gef?q=is_remote_debug"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `is_remote_debug`

```python
is_remote_debug() → bool
```

"Return True is the current debugging session is running through GDB remote session.


---

<a href="https://cs.github.com/hugsy/gef?q=de_bruijn"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `de_bruijn`

```python
de_bruijn(alphabet: bytes, n: int) → Generator[str, NoneType, NoneType]
```

De Bruijn sequence for alphabet and subsequences of length n (for compat. w/ pwnlib).


---

<a href="https://cs.github.com/hugsy/gef?q=generate_cyclic_pattern"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `generate_cyclic_pattern`

```python
generate_cyclic_pattern(length: int, cycle: int = 4) → bytearray
```

Create a `length` byte bytearray of a de Bruijn cyclic pattern.


---

<a href="https://cs.github.com/hugsy/gef?q=safe_parse_and_eval"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `safe_parse_and_eval`

```python
safe_parse_and_eval(value: str) → Optional[ForwardRef('gdb.Value')]
```

GEF wrapper for gdb.parse_and_eval(): this function returns None instead of raising gdb.error if the eval failed.


---

<a href="https://cs.github.com/hugsy/gef?q=gef_convenience"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `gef_convenience`

```python
gef_convenience(value: Union[str, bytes]) → str
```

Defines a new convenience value.


---

<a href="https://cs.github.com/hugsy/gef?q=parse_string_range"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `parse_string_range`

```python
parse_string_range(s: str) → Iterator[int]
```

Parses an address range (e.g. 0x400000-0x401000)


---

<a href="https://cs.github.com/hugsy/gef?q=gef_get_pie_breakpoint"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `gef_get_pie_breakpoint`

```python
gef_get_pie_breakpoint(num: int) → PieVirtualBreakpoint
```

`gef_get_pie_breakpoint` is **DEPRECATED** and will be removed in the future.
 Use `gef.session.pie_breakpoints[num]`


---

<a href="https://cs.github.com/hugsy/gef?q=endian_str"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `endian_str`

```python
endian_str() → str
```

`endian_str` is **DEPRECATED** and will be removed in the future.
 Use `str(gef.arch.endianness)` instead


---

<a href="https://cs.github.com/hugsy/gef?q=get_gef_setting"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `get_gef_setting`

```python
get_gef_setting(name: str) → Any
```

`get_gef_setting` is **DEPRECATED** and will be removed in the future.
 Use `gef.config[key]`


---

<a href="https://cs.github.com/hugsy/gef?q=set_gef_setting"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `set_gef_setting`

```python
set_gef_setting(name: str, value: Any) → None
```

`set_gef_setting` is **DEPRECATED** and will be removed in the future.
 Use `gef.config[key] = value`


---

<a href="https://cs.github.com/hugsy/gef?q=gef_getpagesize"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `gef_getpagesize`

```python
gef_getpagesize() → int
```

`gef_getpagesize` is **DEPRECATED** and will be removed in the future.
 Use `gef.session.pagesize`


---

<a href="https://cs.github.com/hugsy/gef?q=gef_read_canary"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `gef_read_canary`

```python
gef_read_canary() → Optional[Tuple[int, int]]
```

`gef_read_canary` is **DEPRECATED** and will be removed in the future.
 Use `gef.session.canary`


---

<a href="https://cs.github.com/hugsy/gef?q=get_pid"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `get_pid`

```python
get_pid() → int
```

`get_pid` is **DEPRECATED** and will be removed in the future.
 Use `gef.session.pid`


---

<a href="https://cs.github.com/hugsy/gef?q=get_filename"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `get_filename`

```python
get_filename() → str
```

`get_filename` is **DEPRECATED** and will be removed in the future.
 Use `gef.session.file.name`


---

<a href="https://cs.github.com/hugsy/gef?q=get_glibc_arena"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `get_glibc_arena`

```python
get_glibc_arena() → Optional[__main__.GlibcArena]
```

`get_glibc_arena` is **DEPRECATED** and will be removed in the future.
 Use `gef.heap.main_arena`


---

<a href="https://cs.github.com/hugsy/gef?q=get_register"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `get_register`

```python
get_register(regname) → Optional[int]
```

`get_register` is **DEPRECATED** and will be removed in the future.
 Use `gef.arch.register(regname)`


---

<a href="https://cs.github.com/hugsy/gef?q=get_process_maps"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `get_process_maps`

```python
get_process_maps() → List[__main__.Section]
```

`get_process_maps` is **DEPRECATED** and will be removed in the future.
 Use `gef.memory.maps`


---

<a href="https://cs.github.com/hugsy/gef?q=set_arch"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `set_arch`

```python
set_arch(arch: Optional[str] = None, _: Optional[str] = None) → None
```

`set_arch` is **DEPRECATED** and will be removed in the future.
 Use `reset_architecture`


---

<a href="https://cs.github.com/hugsy/gef?q=register_external_context_pane"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `register_external_context_pane`

```python
register_external_context_pane(
    pane_name: str,
    display_pane_function: Callable[[], NoneType],
    pane_title_function: Callable[[], Optional[str]],
    condition: Optional[Callable[[], bool]] = None
) → None
```

Registering function for new GEF Context View. pane_name: a string that has no spaces (used in settings) display_pane_function: a function that uses gef_print() to print strings pane_title_function: a function that returns a string or None, which will be displayed as the title. If None, no title line is displayed. condition: an optional callback: if not None, the callback will be executed first. If it returns true,  then only the pane title and content will displayed. Otherwise, it's simply skipped.

Example usage for a simple text to show when we hit a syscall: def only_syscall(): return gef_current_instruction(gef.arch.pc).is_syscall() def display_pane():  gef_print("Wow, I am a context pane!") def pane_title():  return "example:pane" register_external_context_pane("example_pane", display_pane, pane_title, only_syscall)


---

<a href="https://cs.github.com/hugsy/gef?q=register_external_command"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `register_external_command`

```python
register_external_command(
    cls: Type[ForwardRef('GenericCommand')]
) → Type[ForwardRef('GenericCommand')]
```

Registering function for new GEF (sub-)command to GDB.
 `register_external_command` is **DEPRECATED** and will be removed in the future.
 Use `register()`, and inherit from `GenericCommand` instead


---

<a href="https://cs.github.com/hugsy/gef?q=register_command"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `register_command`

```python
register_command(
    cls: Type[ForwardRef('GenericCommand')]
) → Type[ForwardRef('GenericCommand')]
```

Decorator for registering new GEF (sub-)command to GDB.
 `register_command` is **DEPRECATED** and will be removed in the future.
 Use `register()`, and inherit from `GenericCommand` instead


---

<a href="https://cs.github.com/hugsy/gef?q=register_priority_command"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `register_priority_command`

```python
register_priority_command(
    cls: Type[ForwardRef('GenericCommand')]
) → Type[ForwardRef('GenericCommand')]
```

Decorator for registering new command with priority, meaning that it must  loaded before the other generic commands.
 `register_priority_command` is **DEPRECATED** and will be removed in the future.


---

<a href="https://cs.github.com/hugsy/gef?q=register"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `register`

```python
register(
    cls: Union[Type[ForwardRef('GenericCommand')], Type[ForwardRef('GenericFunction')]]
) → Union[Type[ForwardRef('GenericCommand')], Type[ForwardRef('GenericFunction')]]
```






---

<a href="https://cs.github.com/hugsy/gef?q=register_function"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `register_function`

```python
register_function(
    cls: Type[ForwardRef('GenericFunction')]
) → Type[ForwardRef('GenericFunction')]
```

Decorator for registering a new convenience function to GDB.
 `register_function` is **DEPRECATED** and will be removed in the future.


---

## <kbd>class</kbd> `AARCH64`





---

#### <kbd>property</kbd> AARCH64.cpsr





---

#### <kbd>property</kbd> AARCH64.endianness





---

#### <kbd>property</kbd> AARCH64.fp





---

#### <kbd>property</kbd> AARCH64.instruction_length





---

#### <kbd>property</kbd> AARCH64.pc





---

#### <kbd>property</kbd> AARCH64.ptrsize

Determine the size of pointer from the current CPU mode

---

#### <kbd>property</kbd> AARCH64.registers





---

#### <kbd>property</kbd> AARCH64.sp







---

<a href="https://cs.github.com/hugsy/gef?q=AARCH64.canary_address"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `AARCH64.canary_address`

```python
canary_address() → int
```





---

<a href="https://cs.github.com/hugsy/gef?q=AARCH64.flag_register_to_human"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `AARCH64.flag_register_to_human`

```python
flag_register_to_human(val: Optional[int] = None) → str
```





---

<a href="https://cs.github.com/hugsy/gef?q=AARCH64.get_ith_parameter"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `AARCH64.get_ith_parameter`

```python
get_ith_parameter(i: int, in_func: bool = True) → Tuple[str, Optional[int]]
```

Retrieves the correct parameter used for the current function call.

---

<a href="https://cs.github.com/hugsy/gef?q=AARCH64.get_ra"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `AARCH64.get_ra`

```python
get_ra(insn: __main__.Instruction, frame: 'gdb.Frame') → int
```





---

<a href="https://cs.github.com/hugsy/gef?q=AARCH64.is_aarch32"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `AARCH64.is_aarch32`

```python
is_aarch32() → bool
```

Determine if the CPU is currently in AARCH32 mode from runtime.

---

<a href="https://cs.github.com/hugsy/gef?q=AARCH64.is_branch_taken"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `AARCH64.is_branch_taken`

```python
is_branch_taken(insn: __main__.Instruction) → Tuple[bool, str]
```





---

<a href="https://cs.github.com/hugsy/gef?q=AARCH64.is_call"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `AARCH64.is_call`

```python
is_call(insn: __main__.Instruction) → bool
```





---

<a href="https://cs.github.com/hugsy/gef?q=AARCH64.is_conditional_branch"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `AARCH64.is_conditional_branch`

```python
is_conditional_branch(insn: __main__.Instruction) → bool
```





---

<a href="https://cs.github.com/hugsy/gef?q=AARCH64.is_ret"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `AARCH64.is_ret`

```python
is_ret(insn: __main__.Instruction) → bool
```





---

<a href="https://cs.github.com/hugsy/gef?q=AARCH64.is_thumb"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `AARCH64.is_thumb`

```python
is_thumb() → bool
```

Determine if the machine is currently in THUMB mode.

---

<a href="https://cs.github.com/hugsy/gef?q=AARCH64.is_thumb32"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `AARCH64.is_thumb32`

```python
is_thumb32() → bool
```

Determine if the CPU is currently in THUMB32 mode from runtime.

---

<a href="https://cs.github.com/hugsy/gef?q=AARCH64.mprotect_asm"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `AARCH64.mprotect_asm`

```python
mprotect_asm(addr: int, size: int, perm: __main__.Permission) → str
```





---

<a href="https://cs.github.com/hugsy/gef?q=AARCH64.register"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `AARCH64.register`

```python
register(name: str) → int
```





---

<a href="https://cs.github.com/hugsy/gef?q=AARCH64.reset_caches"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `AARCH64.reset_caches`

```python
reset_caches() → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=AARCH64.supports_gdb_arch"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `AARCH64.supports_gdb_arch`

```python
supports_gdb_arch(gdb_arch: str) → Optional[bool]
```

If implemented by a child `Architecture`, this function dictates if the current class supports the loaded ELF file (which can be accessed via `gef.binary`). This callback function will override any assumption made by GEF to determine the architecture.


---

## <kbd>class</kbd> `ARM`





---

#### <kbd>property</kbd> ARM.cpsr





---

#### <kbd>property</kbd> ARM.endianness





---

#### <kbd>property</kbd> ARM.fp





---

#### <kbd>property</kbd> ARM.instruction_length





---

#### <kbd>property</kbd> ARM.mode





---

#### <kbd>property</kbd> ARM.pc





---

#### <kbd>property</kbd> ARM.ptrsize





---

#### <kbd>property</kbd> ARM.registers





---

#### <kbd>property</kbd> ARM.sp







---

<a href="https://cs.github.com/hugsy/gef?q=ARM.canary_address"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ARM.canary_address`

```python
canary_address() → int
```





---

<a href="https://cs.github.com/hugsy/gef?q=ARM.flag_register_to_human"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ARM.flag_register_to_human`

```python
flag_register_to_human(val: Optional[int] = None) → str
```





---

<a href="https://cs.github.com/hugsy/gef?q=ARM.get_ith_parameter"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ARM.get_ith_parameter`

```python
get_ith_parameter(i: int, in_func: bool = True) → Tuple[str, Optional[int]]
```

Retrieves the correct parameter used for the current function call.

---

<a href="https://cs.github.com/hugsy/gef?q=ARM.get_ra"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ARM.get_ra`

```python
get_ra(insn: __main__.Instruction, frame: 'gdb.Frame') → int
```





---

<a href="https://cs.github.com/hugsy/gef?q=ARM.is_branch_taken"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ARM.is_branch_taken`

```python
is_branch_taken(insn: __main__.Instruction) → Tuple[bool, str]
```





---

<a href="https://cs.github.com/hugsy/gef?q=ARM.is_call"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ARM.is_call`

```python
is_call(insn: __main__.Instruction) → bool
```





---

<a href="https://cs.github.com/hugsy/gef?q=ARM.is_conditional_branch"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ARM.is_conditional_branch`

```python
is_conditional_branch(insn: __main__.Instruction) → bool
```





---

<a href="https://cs.github.com/hugsy/gef?q=ARM.is_ret"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ARM.is_ret`

```python
is_ret(insn: __main__.Instruction) → bool
```





---

<a href="https://cs.github.com/hugsy/gef?q=ARM.is_thumb"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ARM.is_thumb`

```python
is_thumb() → bool
```

Determine if the machine is currently in THUMB mode.

---

<a href="https://cs.github.com/hugsy/gef?q=ARM.mprotect_asm"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ARM.mprotect_asm`

```python
mprotect_asm(addr: int, size: int, perm: __main__.Permission) → str
```





---

<a href="https://cs.github.com/hugsy/gef?q=ARM.register"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ARM.register`

```python
register(name: str) → int
```





---

<a href="https://cs.github.com/hugsy/gef?q=ARM.reset_caches"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ARM.reset_caches`

```python
reset_caches() → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=ARM.supports_gdb_arch"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ARM.supports_gdb_arch`

```python
supports_gdb_arch(gdb_arch: str) → Optional[bool]
```

If implemented by a child `Architecture`, this function dictates if the current class supports the loaded ELF file (which can be accessed via `gef.binary`). This callback function will override any assumption made by GEF to determine the architecture.


---

## <kbd>class</kbd> `ASLRCommand`
View/modify the ASLR setting of GDB. By default, GDB will disable ASLR when it starts the process. (i.e. not attached). This command allows to change that setting.

<a href="https://cs.github.com/hugsy/gef?q=ASLRCommand.__init__"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ASLRCommand.__init__`

```python
__init__(*args: Any, **kwargs: Any) → None
```






---

#### <kbd>property</kbd> ASLRCommand.settings

Return the list of settings for this command.



---

<a href="https://cs.github.com/hugsy/gef?q=ASLRCommand.add_setting"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ASLRCommand.add_setting`

```python
add_setting(
    name: str,
    value: Tuple[Any, type, str],
    description: str = ''
) → None
```

`add_setting` is **DEPRECATED** and will be removed in the future.
 Use `self[setting_name] = value` instead

---

<a href="https://cs.github.com/hugsy/gef?q=ASLRCommand.del_setting"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ASLRCommand.del_setting`

```python
del_setting(name: str) → None
```

`del_setting` is **DEPRECATED** and will be removed in the future.
 Use `del self[setting_name]` instead

---

<a href="https://cs.github.com/hugsy/gef?q=ASLRCommand.do_invoke"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ASLRCommand.do_invoke`

```python
do_invoke(argv: List[str]) → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=ASLRCommand.get_setting"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ASLRCommand.get_setting`

```python
get_setting(name: str) → Any
```

`get_setting` is **DEPRECATED** and will be removed in the future.
 Use `self[setting_name]` instead

---

<a href="https://cs.github.com/hugsy/gef?q=ASLRCommand.has_setting"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ASLRCommand.has_setting`

```python
has_setting(name: str) → bool
```

`has_setting` is **DEPRECATED** and will be removed in the future.
 Use `setting_name in self` instead

---

<a href="https://cs.github.com/hugsy/gef?q=ASLRCommand.invoke"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ASLRCommand.invoke`

```python
invoke(args: str, from_tty: bool) → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=ASLRCommand.post_load"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ASLRCommand.post_load`

```python
post_load() → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=ASLRCommand.pre_load"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ASLRCommand.pre_load`

```python
pre_load() → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=ASLRCommand.usage"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ASLRCommand.usage`

```python
usage() → None
```






---

## <kbd>class</kbd> `Address`
GEF representation of memory addresses.

<a href="https://cs.github.com/hugsy/gef?q=Address.__init__"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `Address.__init__`

```python
__init__(**kwargs: Any) → None
```






---

#### <kbd>property</kbd> Address.valid







---

<a href="https://cs.github.com/hugsy/gef?q=Address.dereference"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `Address.dereference`

```python
dereference() → Optional[int]
```





---

<a href="https://cs.github.com/hugsy/gef?q=Address.is_in_heap_segment"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `Address.is_in_heap_segment`

```python
is_in_heap_segment() → bool
```





---

<a href="https://cs.github.com/hugsy/gef?q=Address.is_in_stack_segment"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `Address.is_in_stack_segment`

```python
is_in_stack_segment() → bool
```





---

<a href="https://cs.github.com/hugsy/gef?q=Address.is_in_text_segment"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `Address.is_in_text_segment`

```python
is_in_text_segment() → bool
```






---

## <kbd>class</kbd> `AliasesAddCommand`
Command to add aliases.

<a href="https://cs.github.com/hugsy/gef?q=AliasesAddCommand.__init__"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `AliasesAddCommand.__init__`

```python
__init__() → None
```






---

#### <kbd>property</kbd> AliasesAddCommand.settings

Return the list of settings for this command.



---

<a href="https://cs.github.com/hugsy/gef?q=AliasesAddCommand.add_setting"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `AliasesAddCommand.add_setting`

```python
add_setting(
    name: str,
    value: Tuple[Any, type, str],
    description: str = ''
) → None
```

`add_setting` is **DEPRECATED** and will be removed in the future.
 Use `self[setting_name] = value` instead

---

<a href="https://cs.github.com/hugsy/gef?q=AliasesAddCommand.del_setting"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `AliasesAddCommand.del_setting`

```python
del_setting(name: str) → None
```

`del_setting` is **DEPRECATED** and will be removed in the future.
 Use `del self[setting_name]` instead

---

<a href="https://cs.github.com/hugsy/gef?q=AliasesAddCommand.do_invoke"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `AliasesAddCommand.do_invoke`

```python
do_invoke(argv: List[str]) → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=AliasesAddCommand.get_setting"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `AliasesAddCommand.get_setting`

```python
get_setting(name: str) → Any
```

`get_setting` is **DEPRECATED** and will be removed in the future.
 Use `self[setting_name]` instead

---

<a href="https://cs.github.com/hugsy/gef?q=AliasesAddCommand.has_setting"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `AliasesAddCommand.has_setting`

```python
has_setting(name: str) → bool
```

`has_setting` is **DEPRECATED** and will be removed in the future.
 Use `setting_name in self` instead

---

<a href="https://cs.github.com/hugsy/gef?q=AliasesAddCommand.invoke"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `AliasesAddCommand.invoke`

```python
invoke(args: str, from_tty: bool) → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=AliasesAddCommand.post_load"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `AliasesAddCommand.post_load`

```python
post_load() → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=AliasesAddCommand.pre_load"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `AliasesAddCommand.pre_load`

```python
pre_load() → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=AliasesAddCommand.usage"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `AliasesAddCommand.usage`

```python
usage() → None
```






---

## <kbd>class</kbd> `AliasesCommand`
Base command to add, remove, or list aliases.

<a href="https://cs.github.com/hugsy/gef?q=AliasesCommand.__init__"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `AliasesCommand.__init__`

```python
__init__() → None
```






---

#### <kbd>property</kbd> AliasesCommand.settings

Return the list of settings for this command.



---

<a href="https://cs.github.com/hugsy/gef?q=AliasesCommand.add_setting"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `AliasesCommand.add_setting`

```python
add_setting(
    name: str,
    value: Tuple[Any, type, str],
    description: str = ''
) → None
```

`add_setting` is **DEPRECATED** and will be removed in the future.
 Use `self[setting_name] = value` instead

---

<a href="https://cs.github.com/hugsy/gef?q=AliasesCommand.del_setting"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `AliasesCommand.del_setting`

```python
del_setting(name: str) → None
```

`del_setting` is **DEPRECATED** and will be removed in the future.
 Use `del self[setting_name]` instead

---

<a href="https://cs.github.com/hugsy/gef?q=AliasesCommand.do_invoke"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `AliasesCommand.do_invoke`

```python
do_invoke(_: List[str]) → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=AliasesCommand.get_setting"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `AliasesCommand.get_setting`

```python
get_setting(name: str) → Any
```

`get_setting` is **DEPRECATED** and will be removed in the future.
 Use `self[setting_name]` instead

---

<a href="https://cs.github.com/hugsy/gef?q=AliasesCommand.has_setting"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `AliasesCommand.has_setting`

```python
has_setting(name: str) → bool
```

`has_setting` is **DEPRECATED** and will be removed in the future.
 Use `setting_name in self` instead

---

<a href="https://cs.github.com/hugsy/gef?q=AliasesCommand.invoke"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `AliasesCommand.invoke`

```python
invoke(args: str, from_tty: bool) → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=AliasesCommand.post_load"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `AliasesCommand.post_load`

```python
post_load() → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=AliasesCommand.pre_load"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `AliasesCommand.pre_load`

```python
pre_load() → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=AliasesCommand.usage"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `AliasesCommand.usage`

```python
usage() → None
```






---

## <kbd>class</kbd> `AliasesListCommand`
Command to list aliases.

<a href="https://cs.github.com/hugsy/gef?q=AliasesListCommand.__init__"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `AliasesListCommand.__init__`

```python
__init__() → None
```






---

#### <kbd>property</kbd> AliasesListCommand.settings

Return the list of settings for this command.



---

<a href="https://cs.github.com/hugsy/gef?q=AliasesListCommand.add_setting"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `AliasesListCommand.add_setting`

```python
add_setting(
    name: str,
    value: Tuple[Any, type, str],
    description: str = ''
) → None
```

`add_setting` is **DEPRECATED** and will be removed in the future.
 Use `self[setting_name] = value` instead

---

<a href="https://cs.github.com/hugsy/gef?q=AliasesListCommand.del_setting"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `AliasesListCommand.del_setting`

```python
del_setting(name: str) → None
```

`del_setting` is **DEPRECATED** and will be removed in the future.
 Use `del self[setting_name]` instead

---

<a href="https://cs.github.com/hugsy/gef?q=AliasesListCommand.do_invoke"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `AliasesListCommand.do_invoke`

```python
do_invoke(_: List[str]) → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=AliasesListCommand.get_setting"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `AliasesListCommand.get_setting`

```python
get_setting(name: str) → Any
```

`get_setting` is **DEPRECATED** and will be removed in the future.
 Use `self[setting_name]` instead

---

<a href="https://cs.github.com/hugsy/gef?q=AliasesListCommand.has_setting"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `AliasesListCommand.has_setting`

```python
has_setting(name: str) → bool
```

`has_setting` is **DEPRECATED** and will be removed in the future.
 Use `setting_name in self` instead

---

<a href="https://cs.github.com/hugsy/gef?q=AliasesListCommand.invoke"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `AliasesListCommand.invoke`

```python
invoke(args: str, from_tty: bool) → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=AliasesListCommand.post_load"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `AliasesListCommand.post_load`

```python
post_load() → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=AliasesListCommand.pre_load"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `AliasesListCommand.pre_load`

```python
pre_load() → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=AliasesListCommand.usage"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `AliasesListCommand.usage`

```python
usage() → None
```






---

## <kbd>class</kbd> `AliasesRmCommand`
Command to remove aliases.

<a href="https://cs.github.com/hugsy/gef?q=AliasesRmCommand.__init__"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `AliasesRmCommand.__init__`

```python
__init__() → None
```






---

#### <kbd>property</kbd> AliasesRmCommand.settings

Return the list of settings for this command.



---

<a href="https://cs.github.com/hugsy/gef?q=AliasesRmCommand.add_setting"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `AliasesRmCommand.add_setting`

```python
add_setting(
    name: str,
    value: Tuple[Any, type, str],
    description: str = ''
) → None
```

`add_setting` is **DEPRECATED** and will be removed in the future.
 Use `self[setting_name] = value` instead

---

<a href="https://cs.github.com/hugsy/gef?q=AliasesRmCommand.del_setting"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `AliasesRmCommand.del_setting`

```python
del_setting(name: str) → None
```

`del_setting` is **DEPRECATED** and will be removed in the future.
 Use `del self[setting_name]` instead

---

<a href="https://cs.github.com/hugsy/gef?q=AliasesRmCommand.do_invoke"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `AliasesRmCommand.do_invoke`

```python
do_invoke(argv: List[str]) → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=AliasesRmCommand.get_setting"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `AliasesRmCommand.get_setting`

```python
get_setting(name: str) → Any
```

`get_setting` is **DEPRECATED** and will be removed in the future.
 Use `self[setting_name]` instead

---

<a href="https://cs.github.com/hugsy/gef?q=AliasesRmCommand.has_setting"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `AliasesRmCommand.has_setting`

```python
has_setting(name: str) → bool
```

`has_setting` is **DEPRECATED** and will be removed in the future.
 Use `setting_name in self` instead

---

<a href="https://cs.github.com/hugsy/gef?q=AliasesRmCommand.invoke"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `AliasesRmCommand.invoke`

```python
invoke(args: str, from_tty: bool) → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=AliasesRmCommand.post_load"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `AliasesRmCommand.post_load`

```python
post_load() → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=AliasesRmCommand.pre_load"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `AliasesRmCommand.pre_load`

```python
pre_load() → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=AliasesRmCommand.usage"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `AliasesRmCommand.usage`

```python
usage() → None
```






---

## <kbd>class</kbd> `Architecture`
Generic metaclass for the architecture supported by GEF.


---

#### <kbd>property</kbd> Architecture.endianness





---

#### <kbd>property</kbd> Architecture.fp





---

#### <kbd>property</kbd> Architecture.pc





---

#### <kbd>property</kbd> Architecture.ptrsize





---

#### <kbd>property</kbd> Architecture.registers





---

#### <kbd>property</kbd> Architecture.sp







---

<a href="https://cs.github.com/hugsy/gef?q=Architecture.canary_address"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `Architecture.canary_address`

```python
canary_address() → int
```





---

<a href="https://cs.github.com/hugsy/gef?q=Architecture.flag_register_to_human"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `Architecture.flag_register_to_human`

```python
flag_register_to_human(val: Optional[int] = None) → str
```





---

<a href="https://cs.github.com/hugsy/gef?q=Architecture.get_ith_parameter"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `Architecture.get_ith_parameter`

```python
get_ith_parameter(i: int, in_func: bool = True) → Tuple[str, Optional[int]]
```

Retrieves the correct parameter used for the current function call.

---

<a href="https://cs.github.com/hugsy/gef?q=Architecture.get_ra"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `Architecture.get_ra`

```python
get_ra(insn: __main__.Instruction, frame: 'gdb.Frame') → Optional[int]
```





---

<a href="https://cs.github.com/hugsy/gef?q=Architecture.is_branch_taken"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `Architecture.is_branch_taken`

```python
is_branch_taken(insn: __main__.Instruction) → Tuple[bool, str]
```





---

<a href="https://cs.github.com/hugsy/gef?q=Architecture.is_call"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `Architecture.is_call`

```python
is_call(insn: __main__.Instruction) → bool
```





---

<a href="https://cs.github.com/hugsy/gef?q=Architecture.is_conditional_branch"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `Architecture.is_conditional_branch`

```python
is_conditional_branch(insn: __main__.Instruction) → bool
```





---

<a href="https://cs.github.com/hugsy/gef?q=Architecture.is_ret"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `Architecture.is_ret`

```python
is_ret(insn: __main__.Instruction) → bool
```





---

<a href="https://cs.github.com/hugsy/gef?q=Architecture.mprotect_asm"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `Architecture.mprotect_asm`

```python
mprotect_asm(addr: int, size: int, perm: __main__.Permission) → str
```





---

<a href="https://cs.github.com/hugsy/gef?q=Architecture.register"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `Architecture.register`

```python
register(name: str) → int
```





---

<a href="https://cs.github.com/hugsy/gef?q=Architecture.reset_caches"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `Architecture.reset_caches`

```python
reset_caches() → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=Architecture.supports_gdb_arch"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `Architecture.supports_gdb_arch`

```python
supports_gdb_arch(gdb_arch: str) → Optional[bool]
```

If implemented by a child `Architecture`, this function dictates if the current class supports the loaded ELF file (which can be accessed via `gef.binary`). This callback function will override any assumption made by GEF to determine the architecture.


---

## <kbd>class</kbd> `ArchitectureBase`
Class decorator for declaring an architecture to GEF.





---

## <kbd>class</kbd> `BssBaseFunction`
Return the current bss base address plus the given offset.

<a href="https://cs.github.com/hugsy/gef?q=BssBaseFunction.__init__"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `BssBaseFunction.__init__`

```python
__init__() → None
```








---

<a href="https://cs.github.com/hugsy/gef?q=BssBaseFunction.arg_to_long"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `BssBaseFunction.arg_to_long`

```python
arg_to_long(args: List, index: int, default: int = 0) → int
```





---

<a href="https://cs.github.com/hugsy/gef?q=BssBaseFunction.do_invoke"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `BssBaseFunction.do_invoke`

```python
do_invoke(args: List) → int
```





---

<a href="https://cs.github.com/hugsy/gef?q=BssBaseFunction.invoke"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `BssBaseFunction.invoke`

```python
invoke(*args: Any) → int
```






---

## <kbd>class</kbd> `CanaryCommand`
Shows the canary value of the current process.

<a href="https://cs.github.com/hugsy/gef?q=CanaryCommand.__init__"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `CanaryCommand.__init__`

```python
__init__(*args: Any, **kwargs: Any) → None
```






---

#### <kbd>property</kbd> CanaryCommand.settings

Return the list of settings for this command.



---

<a href="https://cs.github.com/hugsy/gef?q=CanaryCommand.add_setting"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `CanaryCommand.add_setting`

```python
add_setting(
    name: str,
    value: Tuple[Any, type, str],
    description: str = ''
) → None
```

`add_setting` is **DEPRECATED** and will be removed in the future.
 Use `self[setting_name] = value` instead

---

<a href="https://cs.github.com/hugsy/gef?q=CanaryCommand.del_setting"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `CanaryCommand.del_setting`

```python
del_setting(name: str) → None
```

`del_setting` is **DEPRECATED** and will be removed in the future.
 Use `del self[setting_name]` instead

---

<a href="https://cs.github.com/hugsy/gef?q=CanaryCommand.do_invoke"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `CanaryCommand.do_invoke`

```python
do_invoke(argv: List[str]) → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=CanaryCommand.get_setting"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `CanaryCommand.get_setting`

```python
get_setting(name: str) → Any
```

`get_setting` is **DEPRECATED** and will be removed in the future.
 Use `self[setting_name]` instead

---

<a href="https://cs.github.com/hugsy/gef?q=CanaryCommand.has_setting"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `CanaryCommand.has_setting`

```python
has_setting(name: str) → bool
```

`has_setting` is **DEPRECATED** and will be removed in the future.
 Use `setting_name in self` instead

---

<a href="https://cs.github.com/hugsy/gef?q=CanaryCommand.invoke"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `CanaryCommand.invoke`

```python
invoke(args: str, from_tty: bool) → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=CanaryCommand.post_load"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `CanaryCommand.post_load`

```python
post_load() → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=CanaryCommand.pre_load"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `CanaryCommand.pre_load`

```python
pre_load() → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=CanaryCommand.usage"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `CanaryCommand.usage`

```python
usage() → None
```






---

## <kbd>class</kbd> `ChangeFdCommand`
ChangeFdCommand: redirect file descriptor during runtime.

<a href="https://cs.github.com/hugsy/gef?q=ChangeFdCommand.__init__"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ChangeFdCommand.__init__`

```python
__init__(*args: Any, **kwargs: Any) → None
```






---

#### <kbd>property</kbd> ChangeFdCommand.settings

Return the list of settings for this command.



---

<a href="https://cs.github.com/hugsy/gef?q=ChangeFdCommand.add_setting"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ChangeFdCommand.add_setting`

```python
add_setting(
    name: str,
    value: Tuple[Any, type, str],
    description: str = ''
) → None
```

`add_setting` is **DEPRECATED** and will be removed in the future.
 Use `self[setting_name] = value` instead

---

<a href="https://cs.github.com/hugsy/gef?q=ChangeFdCommand.del_setting"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ChangeFdCommand.del_setting`

```python
del_setting(name: str) → None
```

`del_setting` is **DEPRECATED** and will be removed in the future.
 Use `del self[setting_name]` instead

---

<a href="https://cs.github.com/hugsy/gef?q=ChangeFdCommand.do_invoke"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ChangeFdCommand.do_invoke`

```python
do_invoke(argv: List[str]) → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=ChangeFdCommand.get_fd_from_result"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ChangeFdCommand.get_fd_from_result`

```python
get_fd_from_result(res: str) → int
```





---

<a href="https://cs.github.com/hugsy/gef?q=ChangeFdCommand.get_setting"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ChangeFdCommand.get_setting`

```python
get_setting(name: str) → Any
```

`get_setting` is **DEPRECATED** and will be removed in the future.
 Use `self[setting_name]` instead

---

<a href="https://cs.github.com/hugsy/gef?q=ChangeFdCommand.has_setting"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ChangeFdCommand.has_setting`

```python
has_setting(name: str) → bool
```

`has_setting` is **DEPRECATED** and will be removed in the future.
 Use `setting_name in self` instead

---

<a href="https://cs.github.com/hugsy/gef?q=ChangeFdCommand.invoke"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ChangeFdCommand.invoke`

```python
invoke(args: str, from_tty: bool) → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=ChangeFdCommand.post_load"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ChangeFdCommand.post_load`

```python
post_load() → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=ChangeFdCommand.pre_load"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ChangeFdCommand.pre_load`

```python
pre_load() → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=ChangeFdCommand.usage"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ChangeFdCommand.usage`

```python
usage() → None
```






---

## <kbd>class</kbd> `ChangePermissionBreakpoint`
When hit, this temporary breakpoint will restore the original code, and position $pc correctly.

<a href="https://cs.github.com/hugsy/gef?q=ChangePermissionBreakpoint.__init__"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ChangePermissionBreakpoint.__init__`

```python
__init__(loc: str, code: ByteString, pc: int) → None
```








---

<a href="https://cs.github.com/hugsy/gef?q=ChangePermissionBreakpoint.stop"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ChangePermissionBreakpoint.stop`

```python
stop() → bool
```






---

## <kbd>class</kbd> `ChecksecCommand`
Checksec the security properties of the current executable or passed as argument. The command checks for the following protections:
- PIE
- NX
- RelRO
- Glibc Stack Canaries
- Fortify Source

<a href="https://cs.github.com/hugsy/gef?q=ChecksecCommand.__init__"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ChecksecCommand.__init__`

```python
__init__() → None
```






---

#### <kbd>property</kbd> ChecksecCommand.settings

Return the list of settings for this command.



---

<a href="https://cs.github.com/hugsy/gef?q=ChecksecCommand.add_setting"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ChecksecCommand.add_setting`

```python
add_setting(
    name: str,
    value: Tuple[Any, type, str],
    description: str = ''
) → None
```

`add_setting` is **DEPRECATED** and will be removed in the future.
 Use `self[setting_name] = value` instead

---

<a href="https://cs.github.com/hugsy/gef?q=ChecksecCommand.del_setting"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ChecksecCommand.del_setting`

```python
del_setting(name: str) → None
```

`del_setting` is **DEPRECATED** and will be removed in the future.
 Use `del self[setting_name]` instead

---

<a href="https://cs.github.com/hugsy/gef?q=ChecksecCommand.do_invoke"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ChecksecCommand.do_invoke`

```python
do_invoke(argv: List[str]) → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=ChecksecCommand.get_setting"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ChecksecCommand.get_setting`

```python
get_setting(name: str) → Any
```

`get_setting` is **DEPRECATED** and will be removed in the future.
 Use `self[setting_name]` instead

---

<a href="https://cs.github.com/hugsy/gef?q=ChecksecCommand.has_setting"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ChecksecCommand.has_setting`

```python
has_setting(name: str) → bool
```

`has_setting` is **DEPRECATED** and will be removed in the future.
 Use `setting_name in self` instead

---

<a href="https://cs.github.com/hugsy/gef?q=ChecksecCommand.invoke"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ChecksecCommand.invoke`

```python
invoke(args: str, from_tty: bool) → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=ChecksecCommand.post_load"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ChecksecCommand.post_load`

```python
post_load() → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=ChecksecCommand.pre_load"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ChecksecCommand.pre_load`

```python
pre_load() → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=ChecksecCommand.print_security_properties"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ChecksecCommand.print_security_properties`

```python
print_security_properties(filename: str) → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=ChecksecCommand.usage"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ChecksecCommand.usage`

```python
usage() → None
```






---

## <kbd>class</kbd> `Color`
Used to colorify terminal output.




---

<a href="https://cs.github.com/hugsy/gef?q=Color.blinkify"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `Color.blinkify`

```python
blinkify(msg: str) → str
```





---

<a href="https://cs.github.com/hugsy/gef?q=Color.blueify"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `Color.blueify`

```python
blueify(msg: str) → str
```





---

<a href="https://cs.github.com/hugsy/gef?q=Color.boldify"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `Color.boldify`

```python
boldify(msg: str) → str
```





---

<a href="https://cs.github.com/hugsy/gef?q=Color.colorify"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `Color.colorify`

```python
colorify(text: str, attrs: str) → str
```

Color text according to the given attributes.

---

<a href="https://cs.github.com/hugsy/gef?q=Color.cyanify"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `Color.cyanify`

```python
cyanify(msg: str) → str
```





---

<a href="https://cs.github.com/hugsy/gef?q=Color.grayify"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `Color.grayify`

```python
grayify(msg: str) → str
```





---

<a href="https://cs.github.com/hugsy/gef?q=Color.greenify"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `Color.greenify`

```python
greenify(msg: str) → str
```





---

<a href="https://cs.github.com/hugsy/gef?q=Color.highlightify"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `Color.highlightify`

```python
highlightify(msg: str) → str
```





---

<a href="https://cs.github.com/hugsy/gef?q=Color.light_grayify"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `Color.light_grayify`

```python
light_grayify(msg: str) → str
```





---

<a href="https://cs.github.com/hugsy/gef?q=Color.pinkify"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `Color.pinkify`

```python
pinkify(msg: str) → str
```





---

<a href="https://cs.github.com/hugsy/gef?q=Color.redify"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `Color.redify`

```python
redify(msg: str) → str
```





---

<a href="https://cs.github.com/hugsy/gef?q=Color.underlinify"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `Color.underlinify`

```python
underlinify(msg: str) → str
```





---

<a href="https://cs.github.com/hugsy/gef?q=Color.yellowify"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `Color.yellowify`

```python
yellowify(msg: str) → str
```






---

## <kbd>class</kbd> `ContextCommand`
Displays a comprehensive and modular summary of runtime context. Unless setting `enable` is set to False, this command will be spawned automatically every time GDB hits a breakpoint, a watchpoint, or any kind of interrupt. By default, it will show panes that contain the register states, the stack, and the disassembly code around $pc.

<a href="https://cs.github.com/hugsy/gef?q=ContextCommand.__init__"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ContextCommand.__init__`

```python
__init__() → None
```






---

#### <kbd>property</kbd> ContextCommand.settings

Return the list of settings for this command.



---

<a href="https://cs.github.com/hugsy/gef?q=ContextCommand.add_setting"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ContextCommand.add_setting`

```python
add_setting(
    name: str,
    value: Tuple[Any, type, str],
    description: str = ''
) → None
```

`add_setting` is **DEPRECATED** and will be removed in the future.
 Use `self[setting_name] = value` instead

---

<a href="https://cs.github.com/hugsy/gef?q=ContextCommand.addr_has_breakpoint"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ContextCommand.addr_has_breakpoint`

```python
addr_has_breakpoint(address: int, bp_locations: List[str]) → bool
```





---

<a href="https://cs.github.com/hugsy/gef?q=ContextCommand.context_additional_information"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ContextCommand.context_additional_information`

```python
context_additional_information() → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=ContextCommand.context_args"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ContextCommand.context_args`

```python
context_args() → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=ContextCommand.context_code"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ContextCommand.context_code`

```python
context_code() → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=ContextCommand.context_memory"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ContextCommand.context_memory`

```python
context_memory() → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=ContextCommand.context_regs"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ContextCommand.context_regs`

```python
context_regs() → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=ContextCommand.context_source"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ContextCommand.context_source`

```python
context_source() → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=ContextCommand.context_stack"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ContextCommand.context_stack`

```python
context_stack() → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=ContextCommand.context_threads"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ContextCommand.context_threads`

```python
context_threads() → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=ContextCommand.context_title"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ContextCommand.context_title`

```python
context_title(m: Optional[str]) → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=ContextCommand.context_trace"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ContextCommand.context_trace`

```python
context_trace() → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=ContextCommand.del_setting"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ContextCommand.del_setting`

```python
del_setting(name: str) → None
```

`del_setting` is **DEPRECATED** and will be removed in the future.
 Use `del self[setting_name]` instead

---

<a href="https://cs.github.com/hugsy/gef?q=ContextCommand.do_invoke"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ContextCommand.do_invoke`

```python
do_invoke(argv: List[str]) → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=ContextCommand.empty_extra_messages"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ContextCommand.empty_extra_messages`

```python
empty_extra_messages(_) → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=ContextCommand.get_pc_context_info"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ContextCommand.get_pc_context_info`

```python
get_pc_context_info(pc: int, line: str) → str
```





---

<a href="https://cs.github.com/hugsy/gef?q=ContextCommand.get_setting"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ContextCommand.get_setting`

```python
get_setting(name: str) → Any
```

`get_setting` is **DEPRECATED** and will be removed in the future.
 Use `self[setting_name]` instead

---

<a href="https://cs.github.com/hugsy/gef?q=ContextCommand.has_setting"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ContextCommand.has_setting`

```python
has_setting(name: str) → bool
```

`has_setting` is **DEPRECATED** and will be removed in the future.
 Use `setting_name in self` instead

---

<a href="https://cs.github.com/hugsy/gef?q=ContextCommand.invoke"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ContextCommand.invoke`

```python
invoke(args: str, from_tty: bool) → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=ContextCommand.line_has_breakpoint"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ContextCommand.line_has_breakpoint`

```python
line_has_breakpoint(
    file_name: str,
    line_number: int,
    bp_locations: List[str]
) → bool
```





---

<a href="https://cs.github.com/hugsy/gef?q=ContextCommand.post_load"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ContextCommand.post_load`

```python
post_load() → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=ContextCommand.pre_load"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ContextCommand.pre_load`

```python
pre_load() → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=ContextCommand.print_arguments_from_symbol"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ContextCommand.print_arguments_from_symbol`

```python
print_arguments_from_symbol(function_name: str, symbol: 'gdb.Symbol') → None
```

If symbols were found, parse them and print the argument adequately.

---

<a href="https://cs.github.com/hugsy/gef?q=ContextCommand.print_guessed_arguments"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ContextCommand.print_guessed_arguments`

```python
print_guessed_arguments(function_name: str) → None
```

When no symbol, read the current basic block and look for "interesting" instructions.

---

<a href="https://cs.github.com/hugsy/gef?q=ContextCommand.show_legend"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ContextCommand.show_legend`

```python
show_legend() → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=ContextCommand.update_registers"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ContextCommand.update_registers`

```python
update_registers(_) → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=ContextCommand.usage"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ContextCommand.usage`

```python
usage() → None
```






---

## <kbd>class</kbd> `DereferenceCommand`
Dereference recursively from an address and display information. This acts like WinDBG `dps` command.

<a href="https://cs.github.com/hugsy/gef?q=DereferenceCommand.__init__"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `DereferenceCommand.__init__`

```python
__init__() → None
```






---

#### <kbd>property</kbd> DereferenceCommand.settings

Return the list of settings for this command.



---

<a href="https://cs.github.com/hugsy/gef?q=DereferenceCommand.add_setting"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `DereferenceCommand.add_setting`

```python
add_setting(
    name: str,
    value: Tuple[Any, type, str],
    description: str = ''
) → None
```

`add_setting` is **DEPRECATED** and will be removed in the future.
 Use `self[setting_name] = value` instead

---

<a href="https://cs.github.com/hugsy/gef?q=DereferenceCommand.del_setting"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `DereferenceCommand.del_setting`

```python
del_setting(name: str) → None
```

`del_setting` is **DEPRECATED** and will be removed in the future.
 Use `del self[setting_name]` instead

---

<a href="https://cs.github.com/hugsy/gef?q=DereferenceCommand.wrapper"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `DereferenceCommand.wrapper`

```python
wrapper(*args: Any, **kwargs: Any) → Callable
```





---

<a href="https://cs.github.com/hugsy/gef?q=DereferenceCommand.get_setting"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `DereferenceCommand.get_setting`

```python
get_setting(name: str) → Any
```

`get_setting` is **DEPRECATED** and will be removed in the future.
 Use `self[setting_name]` instead

---

<a href="https://cs.github.com/hugsy/gef?q=DereferenceCommand.has_setting"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `DereferenceCommand.has_setting`

```python
has_setting(name: str) → bool
```

`has_setting` is **DEPRECATED** and will be removed in the future.
 Use `setting_name in self` instead

---

<a href="https://cs.github.com/hugsy/gef?q=DereferenceCommand.invoke"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `DereferenceCommand.invoke`

```python
invoke(args: str, from_tty: bool) → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=DereferenceCommand.post_load"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `DereferenceCommand.post_load`

```python
post_load() → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=DereferenceCommand.pprint_dereferenced"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `DereferenceCommand.pprint_dereferenced`

```python
pprint_dereferenced(addr: int, idx: int, base_offset: int = 0) → str
```





---

<a href="https://cs.github.com/hugsy/gef?q=DereferenceCommand.pre_load"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `DereferenceCommand.pre_load`

```python
pre_load() → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=DereferenceCommand.usage"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `DereferenceCommand.usage`

```python
usage() → None
```






---

## <kbd>class</kbd> `DetailRegistersCommand`
Display full details on one, many or all registers value from current architecture.

<a href="https://cs.github.com/hugsy/gef?q=DetailRegistersCommand.__init__"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `DetailRegistersCommand.__init__`

```python
__init__(*args: Any, **kwargs: Any) → None
```






---

#### <kbd>property</kbd> DetailRegistersCommand.settings

Return the list of settings for this command.



---

<a href="https://cs.github.com/hugsy/gef?q=DetailRegistersCommand.add_setting"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `DetailRegistersCommand.add_setting`

```python
add_setting(
    name: str,
    value: Tuple[Any, type, str],
    description: str = ''
) → None
```

`add_setting` is **DEPRECATED** and will be removed in the future.
 Use `self[setting_name] = value` instead

---

<a href="https://cs.github.com/hugsy/gef?q=DetailRegistersCommand.del_setting"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `DetailRegistersCommand.del_setting`

```python
del_setting(name: str) → None
```

`del_setting` is **DEPRECATED** and will be removed in the future.
 Use `del self[setting_name]` instead

---

<a href="https://cs.github.com/hugsy/gef?q=DetailRegistersCommand.wrapper"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `DetailRegistersCommand.wrapper`

```python
wrapper(*args: Any, **kwargs: Any) → Callable
```





---

<a href="https://cs.github.com/hugsy/gef?q=DetailRegistersCommand.get_setting"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `DetailRegistersCommand.get_setting`

```python
get_setting(name: str) → Any
```

`get_setting` is **DEPRECATED** and will be removed in the future.
 Use `self[setting_name]` instead

---

<a href="https://cs.github.com/hugsy/gef?q=DetailRegistersCommand.has_setting"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `DetailRegistersCommand.has_setting`

```python
has_setting(name: str) → bool
```

`has_setting` is **DEPRECATED** and will be removed in the future.
 Use `setting_name in self` instead

---

<a href="https://cs.github.com/hugsy/gef?q=DetailRegistersCommand.invoke"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `DetailRegistersCommand.invoke`

```python
invoke(args: str, from_tty: bool) → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=DetailRegistersCommand.post_load"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `DetailRegistersCommand.post_load`

```python
post_load() → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=DetailRegistersCommand.pre_load"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `DetailRegistersCommand.pre_load`

```python
pre_load() → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=DetailRegistersCommand.usage"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `DetailRegistersCommand.usage`

```python
usage() → None
```






---

## <kbd>class</kbd> `DisableContextOutputContext`








---

## <kbd>class</kbd> `Elf`
Basic ELF parsing. Ref:
- https://refspecs.linuxfoundation.org/elf/TIS1.1.pdf
- https://refspecs.linuxfoundation.org/elf/elfspec_ppc.pdf
- https://refspecs.linuxfoundation.org/ELF/ppc64/PPC-elf64abi.html

<a href="https://cs.github.com/hugsy/gef?q=Elf.__init__"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `Elf.__init__`

```python
__init__(path: Union[str, pathlib.Path]) → None
```

Instantiate an ELF object. A valid ELF must be provided, or an exception will be thrown.


---

#### <kbd>property</kbd> Elf.checksec

Check the security property of the ELF binary. The following properties are:
- Canary
- NX
- PIE
- Fortify
- Partial/Full RelRO. Return a dict() with the different keys mentioned above, and the boolean associated whether the protection was found.

---

#### <kbd>property</kbd> Elf.entry_point







---

<a href="https://cs.github.com/hugsy/gef?q=Elf.is_valid"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `Elf.is_valid`

```python
is_valid(path: pathlib.Path) → bool
```





---

<a href="https://cs.github.com/hugsy/gef?q=Elf.read"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `Elf.read`

```python
read(size: int) → bytes
```





---

<a href="https://cs.github.com/hugsy/gef?q=Elf.read_and_unpack"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `Elf.read_and_unpack`

```python
read_and_unpack(fmt: str) → Tuple[Any, ...]
```





---

<a href="https://cs.github.com/hugsy/gef?q=Elf.seek"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `Elf.seek`

```python
seek(off: int) → None
```






---

## <kbd>class</kbd> `ElfInfoCommand`
Display a limited subset of ELF header information. If no argument is provided, the command will show information about the current ELF being debugged.

<a href="https://cs.github.com/hugsy/gef?q=ElfInfoCommand.__init__"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ElfInfoCommand.__init__`

```python
__init__() → None
```






---

#### <kbd>property</kbd> ElfInfoCommand.settings

Return the list of settings for this command.



---

<a href="https://cs.github.com/hugsy/gef?q=ElfInfoCommand.add_setting"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ElfInfoCommand.add_setting`

```python
add_setting(
    name: str,
    value: Tuple[Any, type, str],
    description: str = ''
) → None
```

`add_setting` is **DEPRECATED** and will be removed in the future.
 Use `self[setting_name] = value` instead

---

<a href="https://cs.github.com/hugsy/gef?q=ElfInfoCommand.del_setting"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ElfInfoCommand.del_setting`

```python
del_setting(name: str) → None
```

`del_setting` is **DEPRECATED** and will be removed in the future.
 Use `del self[setting_name]` instead

---

<a href="https://cs.github.com/hugsy/gef?q=ElfInfoCommand.wrapper"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ElfInfoCommand.wrapper`

```python
wrapper(*args: Any, **kwargs: Any) → Callable
```





---

<a href="https://cs.github.com/hugsy/gef?q=ElfInfoCommand.get_setting"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ElfInfoCommand.get_setting`

```python
get_setting(name: str) → Any
```

`get_setting` is **DEPRECATED** and will be removed in the future.
 Use `self[setting_name]` instead

---

<a href="https://cs.github.com/hugsy/gef?q=ElfInfoCommand.has_setting"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ElfInfoCommand.has_setting`

```python
has_setting(name: str) → bool
```

`has_setting` is **DEPRECATED** and will be removed in the future.
 Use `setting_name in self` instead

---

<a href="https://cs.github.com/hugsy/gef?q=ElfInfoCommand.invoke"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ElfInfoCommand.invoke`

```python
invoke(args: str, from_tty: bool) → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=ElfInfoCommand.post_load"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ElfInfoCommand.post_load`

```python
post_load() → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=ElfInfoCommand.pre_load"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ElfInfoCommand.pre_load`

```python
pre_load() → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=ElfInfoCommand.usage"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ElfInfoCommand.usage`

```python
usage() → None
```






---

## <kbd>class</kbd> `Endianness`
An enumeration.





---

## <kbd>class</kbd> `EntryBreakBreakpoint`
Breakpoint used internally to stop execution at the most convenient entry point.

<a href="https://cs.github.com/hugsy/gef?q=EntryBreakBreakpoint.__init__"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `EntryBreakBreakpoint.__init__`

```python
__init__(location: str) → None
```








---

<a href="https://cs.github.com/hugsy/gef?q=EntryBreakBreakpoint.stop"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `EntryBreakBreakpoint.stop`

```python
stop() → bool
```






---

## <kbd>class</kbd> `EntryPointBreakCommand`
Tries to find best entry point and sets a temporary breakpoint on it. The command will test for well-known symbols for entry points, such as `main`, `_main`, `__libc_start_main`, etc. defined by the setting `entrypoint_symbols`.

<a href="https://cs.github.com/hugsy/gef?q=EntryPointBreakCommand.__init__"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `EntryPointBreakCommand.__init__`

```python
__init__() → None
```






---

#### <kbd>property</kbd> EntryPointBreakCommand.settings

Return the list of settings for this command.



---

<a href="https://cs.github.com/hugsy/gef?q=EntryPointBreakCommand.add_setting"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `EntryPointBreakCommand.add_setting`

```python
add_setting(
    name: str,
    value: Tuple[Any, type, str],
    description: str = ''
) → None
```

`add_setting` is **DEPRECATED** and will be removed in the future.
 Use `self[setting_name] = value` instead

---

<a href="https://cs.github.com/hugsy/gef?q=EntryPointBreakCommand.del_setting"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `EntryPointBreakCommand.del_setting`

```python
del_setting(name: str) → None
```

`del_setting` is **DEPRECATED** and will be removed in the future.
 Use `del self[setting_name]` instead

---

<a href="https://cs.github.com/hugsy/gef?q=EntryPointBreakCommand.do_invoke"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `EntryPointBreakCommand.do_invoke`

```python
do_invoke(argv: List[str]) → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=EntryPointBreakCommand.get_setting"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `EntryPointBreakCommand.get_setting`

```python
get_setting(name: str) → Any
```

`get_setting` is **DEPRECATED** and will be removed in the future.
 Use `self[setting_name]` instead

---

<a href="https://cs.github.com/hugsy/gef?q=EntryPointBreakCommand.has_setting"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `EntryPointBreakCommand.has_setting`

```python
has_setting(name: str) → bool
```

`has_setting` is **DEPRECATED** and will be removed in the future.
 Use `setting_name in self` instead

---

<a href="https://cs.github.com/hugsy/gef?q=EntryPointBreakCommand.invoke"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `EntryPointBreakCommand.invoke`

```python
invoke(args: str, from_tty: bool) → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=EntryPointBreakCommand.post_load"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `EntryPointBreakCommand.post_load`

```python
post_load() → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=EntryPointBreakCommand.pre_load"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `EntryPointBreakCommand.pre_load`

```python
pre_load() → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=EntryPointBreakCommand.set_init_tbreak"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `EntryPointBreakCommand.set_init_tbreak`

```python
set_init_tbreak(addr: int) → EntryBreakBreakpoint
```





---

<a href="https://cs.github.com/hugsy/gef?q=EntryPointBreakCommand.set_init_tbreak_pie"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `EntryPointBreakCommand.set_init_tbreak_pie`

```python
set_init_tbreak_pie(addr: int, argv: List[str]) → EntryBreakBreakpoint
```





---

<a href="https://cs.github.com/hugsy/gef?q=EntryPointBreakCommand.usage"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `EntryPointBreakCommand.usage`

```python
usage() → None
```






---

## <kbd>class</kbd> `ExternalStructureManager`




<a href="https://cs.github.com/hugsy/gef?q=ExternalStructureManager.__init__"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ExternalStructureManager.__init__`

```python
__init__() → None
```






---

#### <kbd>property</kbd> ExternalStructureManager.modules





---

#### <kbd>property</kbd> ExternalStructureManager.path





---

#### <kbd>property</kbd> ExternalStructureManager.structures






---

#### <kbd>handler</kbd> ExternalStructureManager.find


---

<a href="https://cs.github.com/hugsy/gef?q=ExternalStructureManager.clear_caches"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `ExternalStructureManager.clear_caches`

```python
clear_caches() → None
```






---

## <kbd>class</kbd> `FileFormat`




<a href="https://cs.github.com/hugsy/gef?q=FileFormat.__init__"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `FileFormat.__init__`

```python
__init__(path: Union[str, pathlib.Path]) → None
```








---

<a href="https://cs.github.com/hugsy/gef?q=FileFormat.is_valid"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `FileFormat.is_valid`

```python
is_valid(path: pathlib.Path) → bool
```






---

## <kbd>class</kbd> `FileFormatSection`








---

## <kbd>class</kbd> `FlagsCommand`
Edit flags in a human friendly way.

<a href="https://cs.github.com/hugsy/gef?q=FlagsCommand.__init__"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `FlagsCommand.__init__`

```python
__init__(*args: Any, **kwargs: Any) → None
```






---

#### <kbd>property</kbd> FlagsCommand.settings

Return the list of settings for this command.



---

<a href="https://cs.github.com/hugsy/gef?q=FlagsCommand.add_setting"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `FlagsCommand.add_setting`

```python
add_setting(
    name: str,
    value: Tuple[Any, type, str],
    description: str = ''
) → None
```

`add_setting` is **DEPRECATED** and will be removed in the future.
 Use `self[setting_name] = value` instead

---

<a href="https://cs.github.com/hugsy/gef?q=FlagsCommand.del_setting"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `FlagsCommand.del_setting`

```python
del_setting(name: str) → None
```

`del_setting` is **DEPRECATED** and will be removed in the future.
 Use `del self[setting_name]` instead

---

<a href="https://cs.github.com/hugsy/gef?q=FlagsCommand.do_invoke"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `FlagsCommand.do_invoke`

```python
do_invoke(argv: List[str]) → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=FlagsCommand.get_setting"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `FlagsCommand.get_setting`

```python
get_setting(name: str) → Any
```

`get_setting` is **DEPRECATED** and will be removed in the future.
 Use `self[setting_name]` instead

---

<a href="https://cs.github.com/hugsy/gef?q=FlagsCommand.has_setting"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `FlagsCommand.has_setting`

```python
has_setting(name: str) → bool
```

`has_setting` is **DEPRECATED** and will be removed in the future.
 Use `setting_name in self` instead

---

<a href="https://cs.github.com/hugsy/gef?q=FlagsCommand.invoke"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `FlagsCommand.invoke`

```python
invoke(args: str, from_tty: bool) → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=FlagsCommand.post_load"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `FlagsCommand.post_load`

```python
post_load() → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=FlagsCommand.pre_load"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `FlagsCommand.pre_load`

```python
pre_load() → None
```





---

<a href="https://cs.github.com/hugsy/gef?q=FlagsCommand.usage"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `FlagsCommand.usage`

```python
usage() → None
```






---

## <kbd>class</kbd> `FormatStringBreakpoint`
Inspect stack for format string.

<a href="https://cs.github.com/hugsy/gef?q=FormatStringBreakpoint.__init__"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `FormatStringBreakpoint.__init__`

```python
__init__(spec: str, num_args: int) → None
```








---

<a href="https://cs.github.com/hugsy/gef?q=FormatStringBreakpoint.stop"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `FormatStringBreakpoint.stop`

```python
stop() → bool
```






---

## <kbd>class</kbd> `FormatStringSearchCommand`
Exploitable format-string helper: this command wil
Download .txt
gitextract_tg8j9h13/

├── .editorconfig
├── .gitattributes
├── .github/
│   ├── CONTRIBUTING.md
│   ├── FUNDING.yml
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.yaml
│   │   └── feature_request.yaml
│   ├── PULL_REQUEST_TEMPLATE.md
│   ├── stale.yml
│   ├── tests/
│   │   ├── entrypoint.sh
│   │   ├── run-tests.sh
│   │   └── setup-dockerfile.sh
│   └── workflows/
│       ├── coverage.yml
│       ├── extended-tests.yml
│       ├── generate-docs.yml
│       ├── notify.yml
│       ├── tests.yml
│       └── validate.yml
├── .gitignore
├── .pre-commit-config.yaml
├── .pylintrc
├── .python-version
├── .readthedocs.yml
├── LICENSE
├── README.md
├── docs/
│   ├── .markdownlint.yaml
│   ├── api/
│   │   └── gef.md
│   ├── api.md
│   ├── commands/
│   │   ├── aliases.md
│   │   ├── arch.md
│   │   ├── aslr.md
│   │   ├── canary.md
│   │   ├── checksec.md
│   │   ├── config.md
│   │   ├── context.md
│   │   ├── dereference.md
│   │   ├── edit-flags.md
│   │   ├── elf-info.md
│   │   ├── entry-break.md
│   │   ├── eval.md
│   │   ├── format-string-helper.md
│   │   ├── functions.md
│   │   ├── gef-remote.md
│   │   ├── gef.md
│   │   ├── got.md
│   │   ├── heap-analysis-helper.md
│   │   ├── heap.md
│   │   ├── help.md
│   │   ├── hexdump.md
│   │   ├── highlight.md
│   │   ├── hijack-fd.md
│   │   ├── memory.md
│   │   ├── name-break.md
│   │   ├── nop.md
│   │   ├── patch.md
│   │   ├── pattern.md
│   │   ├── pcustom.md
│   │   ├── pie.md
│   │   ├── print-format.md
│   │   ├── process-search.md
│   │   ├── process-status.md
│   │   ├── registers.md
│   │   ├── reset-cache.md
│   │   ├── scan.md
│   │   ├── search-pattern.md
│   │   ├── shellcode.md
│   │   ├── skipi.md
│   │   ├── stepover.md
│   │   ├── stub.md
│   │   ├── theme.md
│   │   ├── tmux-setup.md
│   │   ├── trace-run.md
│   │   ├── version.md
│   │   ├── vmmap.md
│   │   ├── xfiles.md
│   │   ├── xinfo.md
│   │   └── xor-memory.md
│   ├── compat.md
│   ├── config.md
│   ├── debugging.md
│   ├── deprecated.md
│   ├── faq.md
│   ├── functions/
│   │   ├── base.md
│   │   ├── bss.md
│   │   ├── got.md
│   │   ├── heap.md
│   │   └── stack.md
│   ├── index.md
│   ├── install.md
│   ├── obsolete/
│   │   ├── docs/
│   │   │   └── index.md
│   │   ├── mkdocs.yml
│   │   └── requirements.txt
│   ├── requirements.txt
│   ├── screenshots.md
│   └── testing.md
├── gef.py
├── get-pip.py
├── mkdocs.yml
├── ruff.toml
├── scripts/
│   ├── gef-extras.sh
│   ├── gef.sh
│   ├── generate-api-docs.sh
│   ├── generate-coverage-docs.sh
│   ├── generate-settings-docs.sh
│   ├── new-release.py
│   ├── remote_debug.py
│   └── vscode_debug.py
└── tests/
    ├── __init__.py
    ├── api/
    │   ├── __init__.py
    │   ├── deprecated.py
    │   ├── gef_arch.py
    │   ├── gef_disassemble.py
    │   ├── gef_heap.py
    │   ├── gef_memory.py
    │   ├── gef_session.py
    │   └── misc.py
    ├── base.py
    ├── binaries/
    │   ├── Makefile
    │   ├── bss.c
    │   ├── canary.c
    │   ├── checksec-no-canary.c
    │   ├── checksec-no-nx.c
    │   ├── checksec-no-pie.c
    │   ├── class.cpp
    │   ├── collision.c
    │   ├── default.c
    │   ├── format-string-helper.c
    │   ├── heap-analysis.c
    │   ├── heap-bins.c
    │   ├── heap-fastbins.c
    │   ├── heap-multiple-heaps.c
    │   ├── heap-non-main.c
    │   ├── heap-tcache.c
    │   ├── heap.c
    │   ├── memwatch.c
    │   ├── mmap-known-address.c
    │   ├── nested.c
    │   ├── nested2.c
    │   ├── pattern.c
    │   ├── pcustom.c
    │   └── utils.h
    ├── commands/
    │   ├── __init__.py
    │   ├── aliases.py
    │   ├── arch.py
    │   ├── aslr.py
    │   ├── canary.py
    │   ├── checksec.py
    │   ├── context.py
    │   ├── dereference.py
    │   ├── edit_flags.py
    │   ├── elf_info.py
    │   ├── entry_break.py
    │   ├── format_string_helper.py
    │   ├── functions.py
    │   ├── gef.py
    │   ├── gef_remote.py
    │   ├── got.py
    │   ├── heap.py
    │   ├── heap_analysis.py
    │   ├── hexdump.py
    │   ├── highlight.py
    │   ├── hijack_fd.py
    │   ├── memory.py
    │   ├── name_break.py
    │   ├── nop.py
    │   ├── patch.py
    │   ├── pattern.py
    │   ├── pcustom.py
    │   ├── pie.py
    │   ├── print_format.py
    │   ├── process_search.py
    │   ├── process_status.py
    │   ├── registers.py
    │   ├── reset_cache.py
    │   ├── scan.py
    │   ├── search_pattern.py
    │   ├── shellcode.py
    │   ├── skipi.py
    │   ├── smart_eval.py
    │   ├── stepover.py
    │   ├── stub.py
    │   ├── theme.py
    │   ├── trace_run.py
    │   ├── version.py
    │   ├── vmmap.py
    │   ├── xfiles.py
    │   ├── xinfo.py
    │   └── xor_memory.py
    ├── config/
    │   └── __init__.py
    ├── extended/
    │   ├── archlinux.sh
    │   ├── debian.sh
    │   ├── fedora.sh
    │   └── run_pytest.sh
    ├── functions/
    │   ├── __init__.py
    │   └── elf_sections.py
    ├── perf/
    │   ├── __init__.py
    │   └── benchmark.py
    ├── pytest.ini
    ├── regressions/
    │   ├── __init__.py
    │   ├── filename_collision_lookup.py
    │   ├── gdbserver_connection.py
    │   └── registers_register_order.py
    ├── requirements.txt
    ├── scripts/
    │   ├── __init__.py
    │   └── test_gef.py
    └── utils.py
Download .txt
SYMBOL INDEX (1414 symbols across 88 files)

FILE: gef.py
  function http_get (line 93) | def http_get(url: str) -> bytes | None:
  function update_gef (line 103) | def update_gef(argv: list[str]) -> int:
  function reset_all_caches (line 154) | def reset_all_caches() -> None:
  function reset (line 167) | def reset() -> None:
  function highlight_text (line 184) | def highlight_text(text: str) -> str:
  function gef_print (line 219) | def gef_print(*args: str, end="\n", sep=" ", **kwargs: Any) -> None:
  function bufferize (line 230) | def bufferize(f: Callable) -> Callable:
  class ValidationError (line 276) | class ValidationError(Exception): pass
  class ObsoleteException (line 282) | class ObsoleteException(Exception): pass
  class AlreadyRegisteredException (line 284) | class AlreadyRegisteredException(Exception): pass
  function p8 (line 286) | def p8(x: int, s: bool = False, e: "Endianness | None" = None) -> bytes:
  function p16 (line 292) | def p16(x: int, s: bool = False, e: "Endianness | None" = None) -> bytes:
  function p32 (line 298) | def p32(x: int, s: bool = False, e: "Endianness | None" = None) -> bytes:
  function p64 (line 304) | def p64(x: int, s: bool = False, e: "Endianness | None" = None) -> bytes:
  function u8 (line 310) | def u8(x: bytes, s: bool = False, e: "Endianness | None" = None) -> int:
  function u16 (line 316) | def u16(x: bytes, s: bool = False, e: "Endianness | None" = None) -> int:
  function u32 (line 322) | def u32(x: bytes, s: bool = False, e: "Endianness | None" = None) -> int:
  function u64 (line 328) | def u64(x: bytes, s: bool = False, e: "Endianness | None" = None) -> int:
  function is_ascii_string (line 334) | def is_ascii_string(address: int) -> bool:
  function is_alive (line 342) | def is_alive() -> bool:
  function calling_function (line 350) | def calling_function() -> str | None:
  function only_if_gdb_running (line 363) | def only_if_gdb_running(f: Callable) -> Callable:
  function only_if_gdb_target_local (line 375) | def only_if_gdb_target_local(f: Callable) -> Callable:
  function deprecated (line 388) | def deprecated(solution: str = "") -> Callable:
  function experimental_feature (line 412) | def experimental_feature(f: Callable) -> Callable:
  function only_if_events_supported (line 423) | def only_if_events_supported(event_type: str) -> Callable:
  class classproperty (line 434) | class classproperty(property):
    method __get__ (line 436) | def __get__(self, cls, owner):
  function FakeExit (line 441) | def FakeExit(*args: Any, **kwargs: Any) -> NoReturn:
  function parse_arguments (line 448) | def parse_arguments(required_arguments: dict[str | tuple[str, str], Any],
  class Color (line 506) | class Color:
    method redify (line 535) | def redify(msg: str) -> str:        return Color.colorify(msg, "red")
    method greenify (line 537) | def greenify(msg: str) -> str:      return Color.colorify(msg, "green")
    method blueify (line 539) | def blueify(msg: str) -> str:       return Color.colorify(msg, "blue")
    method yellowify (line 541) | def yellowify(msg: str) -> str:     return Color.colorify(msg, "yellow")
    method grayify (line 543) | def grayify(msg: str) -> str:       return Color.colorify(msg, "gray")
    method light_grayify (line 545) | def light_grayify(msg: str) -> str: return Color.colorify(msg, "light_...
    method pinkify (line 547) | def pinkify(msg: str) -> str:       return Color.colorify(msg, "pink")
    method cyanify (line 549) | def cyanify(msg: str) -> str:       return Color.colorify(msg, "cyan")
    method boldify (line 551) | def boldify(msg: str) -> str:       return Color.colorify(msg, "bold")
    method underlinify (line 553) | def underlinify(msg: str) -> str:   return Color.colorify(msg, "underl...
    method highlightify (line 555) | def highlightify(msg: str) -> str:  return Color.colorify(msg, "highli...
    method blinkify (line 557) | def blinkify(msg: str) -> str:      return Color.colorify(msg, "blink")
    method colorify (line 560) | def colorify(text: str, attrs: str) -> str:
  class Address (line 574) | class Address:
    method __init__ (line 576) | def __init__(self, **kwargs: Any) -> None:
    method __str__ (line 582) | def __str__(self) -> str:
    method __int__ (line 595) | def __int__(self) -> int:
    method is_in_text_segment (line 598) | def is_in_text_segment(self) -> bool:
    method is_in_stack_segment (line 602) | def is_in_stack_segment(self) -> bool:
    method is_in_heap_segment (line 605) | def is_in_heap_segment(self) -> bool:
    method dereference (line 608) | def dereference(self) -> int | None:
    method valid (line 614) | def valid(self) -> bool:
  class Permission (line 618) | class Permission(enum.Flag):
    method __str__ (line 626) | def __str__(self) -> str:
    method from_info_sections (line 634) | def from_info_sections(cls, *args: str) -> "Permission":
    method from_process_maps (line 643) | def from_process_maps(cls, perm_str: str) -> "Permission":
    method from_monitor_info_mem (line 651) | def from_monitor_info_mem(cls, perm_str: str) -> "Permission":
    method from_info_mem (line 660) | def from_info_mem(cls, perm_str: str) -> "Permission":
  class Section (line 668) | class Section:
    method __init__ (line 671) | def __init__(self, **kwargs: Any) -> None:
    method is_readable (line 680) | def is_readable(self) -> bool:
    method is_writable (line 683) | def is_writable(self) -> bool:
    method is_executable (line 686) | def is_executable(self) -> bool:
    method size (line 690) | def size(self) -> int:
    method _search_for_realpath_without_versions (line 695) | def _search_for_realpath_without_versions(self, path: pathlib.Path) ->...
    method _search_for_realpath (line 710) | def _search_for_realpath(self) -> str | None:
    method realpath (line 743) | def realpath(self) -> str:
    method __str__ (line 752) | def __str__(self) -> str:
    method __repr__ (line 756) | def __repr__(self) -> str:
    method __eq__ (line 759) | def __eq__(self, other: "Section") -> bool:
    method overlaps (line 766) | def overlaps(self, other: "Section") -> bool:
    method contains (line 769) | def contains(self, addr: int) -> bool:
  class Endianness (line 776) | class Endianness(enum.Enum):
    method __str__ (line 780) | def __str__(self) -> str:
    method __repr__ (line 783) | def __repr__(self) -> str:
    method __int__ (line 786) | def __int__(self) -> int:
  class FileFormatSection (line 790) | class FileFormatSection:
  class FileFormat (line 794) | class FileFormat:
    method __init__ (line 801) | def __init__(self, path: str | pathlib.Path) -> None:
    method __init_subclass__ (line 804) | def __init_subclass__(cls: Type["FileFormat"], **kwargs):
    method is_valid (line 815) | def is_valid(cls, _: pathlib.Path) -> bool:
    method __str__ (line 818) | def __str__(self) -> str:
  class Elf (line 822) | class Elf(FileFormat):
    class Class (line 829) | class Class(enum.Enum):
    class Abi (line 835) | class Abi(enum.Enum):
    class Type (line 849) | class Type(enum.Enum):
    class OsAbi (line 855) | class OsAbi(enum.Enum):
    method __init__ (line 894) | def __init__(self, path: str | pathlib.Path) -> None:
    method read (line 952) | def read(self, size: int) -> bytes:
    method read_and_unpack (line 955) | def read_and_unpack(self, fmt: str) -> tuple[Any, ...]:
    method seek (line 960) | def seek(self, off: int) -> None:
    method __str__ (line 963) | def __str__(self) -> str:
    method __repr__ (line 966) | def __repr__(self) -> str:
    method entry_point (line 970) | def entry_point(self) -> int:
    method is_valid (line 974) | def is_valid(cls, path: pathlib.Path) -> bool:
    method checksec (line 978) | def checksec(self) -> dict[str, bool]:
    method X86_64 (line 1014) | def X86_64(cls) -> int: return Elf.Abi.X86_64.value # pylint: disable=...
    method X86_32 (line 1018) | def X86_32(cls) -> int : return Elf.Abi.X86_32.value # pylint: disable...
    method ARM (line 1022) | def ARM(cls) -> int : return Elf.Abi.ARM.value # pylint: disable=no-se...
    method MIPS (line 1026) | def MIPS(cls) -> int : return Elf.Abi.MIPS.value # pylint: disable=no-...
    method POWERPC (line 1030) | def POWERPC(cls) -> int : return Elf.Abi.POWERPC.value # pylint: disab...
    method POWERPC64 (line 1034) | def POWERPC64(cls) -> int : return Elf.Abi.POWERPC64.value # pylint: d...
    method SPARC (line 1038) | def SPARC(cls) -> int : return Elf.Abi.SPARC.value # pylint: disable=n...
    method SPARC64 (line 1042) | def SPARC64(cls) -> int : return Elf.Abi.SPARC64.value # pylint: disab...
    method AARCH64 (line 1046) | def AARCH64(cls) -> int : return Elf.Abi.AARCH64.value  # pylint: disa...
    method RISCV (line 1050) | def RISCV(cls) -> int : return Elf.Abi.RISCV.value # pylint: disable=n...
  class Phdr (line 1053) | class Phdr:
    class Type (line 1054) | class Type(enum.IntEnum):
      method _missing_ (line 1079) | def _missing_(cls, _:int) -> "Phdr.Type":
    class Flags (line 1082) | class Flags(enum.IntFlag):
    method __init__ (line 1096) | def __init__(self, elf: Elf, off: int) -> None:
    method __str__ (line 1114) | def __str__(self) -> str:
  class Shdr (line 1120) | class Shdr:
    class Type (line 1121) | class Type(enum.IntEnum):
      method _missing_ (line 1164) | def _missing_(cls, _:int) -> "Shdr.Type":
    class Flags (line 1167) | class Flags(enum.IntFlag):
      method _missing_ (line 1186) | def _missing_(cls, _:int):
    method __init__ (line 1201) | def __init__(self, elf: Elf | None, off: int) -> None:
    method __str__ (line 1236) | def __str__(self) -> str:
  class Instruction (line 1242) | class Instruction:
    method __init__ (line 1245) | def __init__(self, address: int, location: str, mnemo: str, operands: ...
    method __format__ (line 1252) | def __format__(self, format_spec: str) -> str:
    method __str__ (line 1267) | def __str__(self) -> str:
    method is_valid (line 1270) | def is_valid(self) -> bool:
    method size (line 1273) | def size(self) -> int:
    method next (line 1276) | def next(self) -> "Instruction":
  function search_for_main_arena (line 1282) | def search_for_main_arena() -> int:
  class GlibcHeapInfo (line 1285) | class GlibcHeapInfo:
    method heap_info_t (line 1289) | def heap_info_t() -> Type[ctypes.Structure]:
    method __init__ (line 1316) | def __init__(self, addr: str |  int) -> None:
    method reset (line 1321) | def reset(self):
    method __getattr__ (line 1327) | def __getattr__(self, item: Any) -> Any:
    method __abs__ (line 1332) | def __abs__(self) -> int:
    method __int__ (line 1335) | def __int__(self) -> int:
    method address (line 1339) | def address(self) -> int:
    method sizeof (line 1343) | def sizeof(self) -> int:
    method addr (line 1347) | def addr(self) -> int:
    method heap_start (line 1351) | def heap_start(self) -> int:
    method heap_end (line 1368) | def heap_end(self) -> int:
  class GlibcArena (line 1372) | class GlibcArena:
    method malloc_state_t (line 1383) | def malloc_state_t() -> Type[ctypes.Structure]:
    method __init__ (line 1417) | def __init__(self, addr: str) -> None:
    method reset (line 1427) | def reset(self):
    method __abs__ (line 1433) | def __abs__(self) -> int:
    method __int__ (line 1436) | def __int__(self) -> int:
    method __iter__ (line 1439) | def __iter__(self) -> Generator["GlibcArena", None, None]:
    method __eq__ (line 1454) | def __eq__(self, other: "GlibcArena") -> bool:
    method __str__ (line 1457) | def __str__(self) -> str:
    method __repr__ (line 1463) | def __repr__(self) -> str:
    method address (line 1467) | def address(self) -> int:
    method sizeof (line 1471) | def sizeof(self) -> int:
    method addr (line 1475) | def addr(self) -> int:
    method top (line 1479) | def top(self) -> int:
    method last_remainder (line 1483) | def last_remainder(self) -> int:
    method fastbinsY (line 1487) | def fastbinsY(self) -> ctypes.Array:
    method bins (line 1491) | def bins(self) -> ctypes.Array:
    method binmap (line 1495) | def binmap(self) -> ctypes.Array:
    method next (line 1499) | def next(self) -> int:
    method next_free (line 1503) | def next_free(self) -> int:
    method attached_threads (line 1507) | def attached_threads(self) -> int:
    method system_mem (line 1511) | def system_mem(self) -> int:
    method max_system_mem (line 1515) | def max_system_mem(self) -> int:
    method fastbin (line 1518) | def fastbin(self, i: int) -> "GlibcFastChunk | None":
    method bin (line 1525) | def bin(self, i: int) -> tuple[int, int]:
    method bin_at (line 1531) | def bin_at(self, i) -> int:
    method is_main_arena (line 1536) | def is_main_arena(self) -> bool:
    method heap_addr (line 1539) | def heap_addr(self, allow_unaligned: bool = False) -> int | None:
    method get_heap_info_list (line 1550) | def get_heap_info_list(self) -> list[GlibcHeapInfo] | None:
    method get_heap_for_ptr (line 1562) | def get_heap_for_ptr(ptr: int) -> int:
    method verify (line 1575) | def verify(addr: int) -> bool:
  class GlibcChunk (line 1590) | class GlibcChunk:
    class ChunkFlags (line 1595) | class ChunkFlags(enum.IntFlag):
      method __str__ (line 1600) | def __str__(self) -> str:
    method malloc_chunk_t (line 1608) | def malloc_chunk_t() -> Type[ctypes.Structure]:
    method __init__ (line 1623) | def __init__(self, addr: int, from_base: bool = False, allow_unaligned...
    method reset (line 1634) | def reset(self):
    method prev_size (line 1642) | def prev_size(self) -> int:
    method size (line 1646) | def size(self) -> int:
    method flags (line 1650) | def flags(self) -> ChunkFlags:
    method fd (line 1654) | def fd(self) -> int:
    method bk (line 1658) | def bk(self) -> int:
    method fd_nextsize (line 1662) | def fd_nextsize(self) -> int:
    method bk_nextsize (line 1666) | def bk_nextsize(self) -> int:
    method get_usable_size (line 1669) | def get_usable_size(self) -> int:
    method usable_size (line 1678) | def usable_size(self) -> int:
    method get_prev_chunk_size (line 1681) | def get_prev_chunk_size(self) -> int:
    method __iter__ (line 1684) | def __iter__(self) -> Generator["GlibcChunk", None, None]:
    method get_next_chunk (line 1710) | def get_next_chunk(self, allow_unaligned: bool = False) -> "GlibcChunk":
    method get_next_chunk_addr (line 1714) | def get_next_chunk_addr(self) -> int:
    method has_p_bit (line 1717) | def has_p_bit(self) -> bool:
    method has_m_bit (line 1720) | def has_m_bit(self) -> bool:
    method has_n_bit (line 1723) | def has_n_bit(self) -> bool:
    method is_used (line 1726) | def is_used(self) -> bool:
    method __str_sizes (line 1736) | def __str_sizes(self) -> str:
    method _str_pointers (line 1759) | def _str_pointers(self) -> str:
    method __str__ (line 1776) | def __str__(self) -> str:
    method psprint (line 1780) | def psprint(self) -> str:
    method resolve_type (line 1789) | def resolve_type(self) -> str:
  class GlibcFastChunk (line 1799) | class GlibcFastChunk(GlibcChunk):
    method fd (line 1802) | def fd(self) -> int:
    method protect_ptr (line 1808) | def protect_ptr(self, pos: int, pointer: int) -> int:
    method reveal_ptr (line 1815) | def reveal_ptr(self, pointer: int) -> int:
  class GlibcTcacheChunk (line 1822) | class GlibcTcacheChunk(GlibcFastChunk):
  function get_libc_version (line 1826) | def get_libc_version() -> tuple[int, ...]:
  function titlify (line 1829) | def titlify(text: str, color: str | None = None, msg_color: str | None =...
  function dbg (line 1842) | def dbg(msg: str) -> None:
  function err (line 1848) | def err(msg: str) -> None:
  function warn (line 1853) | def warn(msg: str) -> None:
  function ok (line 1858) | def ok(msg: str) -> None:
  function info (line 1863) | def info(msg: str) -> None:
  function push_context_message (line 1868) | def push_context_message(level: str, message: str) -> None:
  function show_last_exception (line 1877) | def show_last_exception() -> None:
  function gef_pystring (line 1921) | def gef_pystring(x: bytes) -> str:
  function gef_pybytes (line 1929) | def gef_pybytes(x: str) -> bytes:
  function which (line 1935) | def which(program: str) -> pathlib.Path:
  function style_byte (line 1943) | def style_byte(b: int, color: bool = True) -> str:
  function hexdump (line 1966) | def hexdump(source: ByteString, length: int = 0x10, separator: str = "."...
  function is_debug (line 1996) | def is_debug() -> bool:
  function buffer_output (line 2001) | def buffer_output() -> bool:
  function hide_context (line 2006) | def hide_context() -> bool:
  function unhide_context (line 2012) | def unhide_context() -> bool:
  class DisableContextOutputContext (line 2018) | class DisableContextOutputContext:
    method __enter__ (line 2019) | def __enter__(self) -> None:
    method __exit__ (line 2023) | def __exit__(self, *exc: Any) -> None:
  class RedirectOutputContext (line 2028) | class RedirectOutputContext:
    method __init__ (line 2029) | def __init__(self, to_file: str = "/dev/null") -> None:
    method __enter__ (line 2034) | def __enter__(self) -> None:
    method __exit__ (line 2046) | def __exit__(self, *exc: Any) -> None:
  function enable_redirect_output (line 2056) | def enable_redirect_output(to_file: str = "/dev/null") -> None:
  function disable_redirect_output (line 2070) | def disable_redirect_output() -> None:
  function gef_makedirs (line 2080) | def gef_makedirs(path: str, mode: int = 0o755) -> pathlib.Path:
  function gdb_lookup_symbol (line 2089) | def gdb_lookup_symbol(sym: str) -> tuple[gdb.Symtab_and_line, ...] | None:
  function gdb_get_location_from_symbol (line 2098) | def gdb_get_location_from_symbol(address: int) -> tuple[str, int] | None:
  function gdb_disassemble (line 2117) | def gdb_disassemble(start_pc: int, **kwargs: int) -> Generator[Instructi...
  function gdb_get_nth_previous_instruction_address (line 2149) | def gdb_get_nth_previous_instruction_address(addr: int, n: int) -> int |...
  function gdb_get_nth_next_instruction_address (line 2187) | def gdb_get_nth_next_instruction_address(addr: int, n: int) -> int:
  function gef_instruction_n (line 2192) | def gef_instruction_n(addr: int, n: int) -> Instruction:
  function gef_get_instruction_at (line 2198) | def gef_get_instruction_at(addr: int) -> Instruction:
  function gef_current_instruction (line 2204) | def gef_current_instruction(addr: int) -> Instruction:
  function gef_next_instruction (line 2209) | def gef_next_instruction(addr: int) -> Instruction:
  function gef_disassemble (line 2214) | def gef_disassemble(addr: int, nb_insn: int, nb_prev: int = 0) -> Genera...
  function gef_execute_external (line 2234) | def gef_execute_external(command: Sequence[str], as_list: bool = False, ...
  function gef_execute_gdb_script (line 2240) | def gef_execute_gdb_script(commands: str) -> None:
  function checksec (line 2256) | def checksec(filename: str) -> dict[str, bool]:
  function get_arch (line 2261) | def get_arch() -> str:
  function get_entry_point (line 2289) | def get_entry_point() -> int | None:
  function is_pie (line 2294) | def is_pie(fpath: str) -> bool:
  function is_big_endian (line 2299) | def is_big_endian() -> bool:
  function is_little_endian (line 2304) | def is_little_endian() -> bool:
  function flags_to_human (line 2308) | def flags_to_human(reg_value: int, value_table: dict[int, str]) -> str:
  function get_section_base_address (line 2317) | def get_section_base_address(name: str) -> int | None:
  function get_zone_base_address (line 2323) | def get_zone_base_address(name: str) -> int | None:
  function register_architecture (line 2333) | def register_architecture(cls: Type["Architecture"]) -> Type["Architectu...
  class ArchitectureBase (line 2336) | class ArchitectureBase:
    method __init_subclass__ (line 2340) | def __init_subclass__(cls: Type["ArchitectureBase"], **kwargs):
  class Architecture (line 2352) | class Architecture(ArchitectureBase):
    method __init_subclass__ (line 2374) | def __init_subclass__(cls, **kwargs):
    method __str__ (line 2382) | def __str__(self) -> str:
    method __repr__ (line 2385) | def __repr__(self) -> str:
    method supports_gdb_arch (line 2389) | def supports_gdb_arch(gdb_arch: str) -> bool | None:
    method flag_register_to_human (line 2395) | def flag_register_to_human(self, val: int | None = None) -> str:
    method is_call (line 2398) | def is_call(self, insn: Instruction) -> bool:
    method is_ret (line 2401) | def is_ret(self, insn: Instruction) -> bool:
    method is_conditional_branch (line 2404) | def is_conditional_branch(self, insn: Instruction) -> bool:
    method is_branch_taken (line 2407) | def is_branch_taken(self, insn: Instruction) -> tuple[bool, str]:
    method get_ra (line 2410) | def get_ra(self, insn: Instruction, frame: "gdb.Frame") -> int | None:
    method canary_address (line 2413) | def canary_address(self) -> int:
    method mprotect_asm (line 2417) | def mprotect_asm(cls, addr: int, size: int, perm: Permission) -> str:
    method reset_caches (line 2420) | def reset_caches(self) -> None:
    method __get_register (line 2424) | def __get_register(self, regname: str) -> int:
    method __get_register_for_selected_frame (line 2431) | def __get_register_for_selected_frame(self, regname: str, hash_key: in...
    method register (line 2443) | def register(self, name: str) -> int:
    method registers (line 2449) | def registers(self) -> Generator[str, None, None]:
    method pc (line 2453) | def pc(self) -> int:
    method sp (line 2457) | def sp(self) -> int:
    method fp (line 2461) | def fp(self) -> int:
    method ptrsize (line 2465) | def ptrsize(self) -> int:
    method endianness (line 2475) | def endianness(self) -> Endianness:
    method get_ith_parameter (line 2486) | def get_ith_parameter(self, i: int, in_func: bool = True) -> tuple[str...
  class GenericArchitecture (line 2494) | class GenericArchitecture(Architecture):
  class RISCV (line 2509) | class RISCV(Architecture):
    method instruction_length (line 2528) | def instruction_length(self) -> int:
    method is_call (line 2531) | def is_call(self, insn: Instruction) -> bool:
    method is_ret (line 2534) | def is_ret(self, insn: Instruction) -> bool:
    method mprotect_asm (line 2546) | def mprotect_asm(cls, addr: int, size: int, perm: Permission) -> str:
    method ptrsize (line 2550) | def ptrsize(self) -> int:
    method is_conditional_branch (line 2558) | def is_conditional_branch(self, insn: Instruction) -> bool:
    method is_branch_taken (line 2561) | def is_branch_taken(self, insn: Instruction) -> tuple[bool, str]:
    method get_ra (line 2617) | def get_ra(self, insn: Instruction, frame: "gdb.Frame") -> int | None:
    method flag_register_to_human (line 2627) | def flag_register_to_human(self, val: int | None = None) -> str:
  class ARM (line 2632) | class ARM(Architecture):
    method is_thumb (line 2656) | def is_thumb(self) -> bool:
    method pc (line 2661) | def pc(self) -> int | None:
    method cpsr (line 2668) | def cpsr(self) -> int:
    method mode (line 2674) | def mode(self) -> str:
    method instruction_length (line 2678) | def instruction_length(self) -> int | None:
    method ptrsize (line 2683) | def ptrsize(self) -> int:
    method is_call (line 2686) | def is_call(self, insn: Instruction) -> bool:
    method is_ret (line 2691) | def is_ret(self, insn: Instruction) -> bool:
    method flag_register_to_human (line 2703) | def flag_register_to_human(self, val: int | None = None) -> str:
    method is_conditional_branch (line 2710) | def is_conditional_branch(self, insn: Instruction) -> bool:
    method is_branch_taken (line 2714) | def is_branch_taken(self, insn: Instruction) -> tuple[bool, str]:
    method get_ra (line 2747) | def get_ra(self, insn: Instruction, frame: "gdb.Frame") -> int | None:
    method mprotect_asm (line 2772) | def mprotect_asm(cls, addr: int, size: int, perm: Permission) -> str:
  class AARCH64 (line 2789) | class AARCH64(ARM):
    method is_call (line 2818) | def is_call(self, insn: Instruction) -> bool:
    method flag_register_to_human (line 2823) | def flag_register_to_human(self, val: int | None = None) -> str:
    method is_aarch32 (line 2830) | def is_aarch32(self) -> bool:
    method is_thumb32 (line 2834) | def is_thumb32(self) -> bool:
    method ptrsize (line 2839) | def ptrsize(self) -> int:
    method mprotect_asm (line 2850) | def mprotect_asm(cls, addr: int, size: int, perm: Permission) -> str:
    method is_conditional_branch (line 2873) | def is_conditional_branch(self, insn: Instruction) -> bool:
    method is_branch_taken (line 2880) | def is_branch_taken(self, insn: Instruction) -> tuple[bool, str]:
  class X86 (line 2911) | class X86(Architecture):
    method flag_register_to_human (line 2943) | def flag_register_to_human(self, val: int | None = None) -> str:
    method is_call (line 2949) | def is_call(self, insn: Instruction) -> bool:
    method is_ret (line 2954) | def is_ret(self, insn: Instruction) -> bool:
    method is_conditional_branch (line 2957) | def is_conditional_branch(self, insn: Instruction) -> bool:
    method is_branch_taken (line 2967) | def is_branch_taken(self, insn: Instruction) -> tuple[bool, str]:
    method get_ra (line 3012) | def get_ra(self, insn: Instruction, frame: "gdb.Frame") -> int | None:
    method mprotect_asm (line 3025) | def mprotect_asm(cls, addr: int, size: int, perm: Permission) -> str:
    method get_ith_parameter (line 3040) | def get_ith_parameter(self, i: int, in_func: bool = True) -> tuple[str...
  class X86_64 (line 3051) | class X86_64(X86):
    method mprotect_asm (line 3069) | def mprotect_asm(cls, addr: int, size: int, perm: Permission) -> str:
    method canary_address (line 3094) | def canary_address(self) -> int:
  class PowerPC (line 3097) | class PowerPC(Architecture):
    method flag_register_to_human (line 3129) | def flag_register_to_human(self, val: int | None = None) -> str:
    method is_call (line 3136) | def is_call(self, insn: Instruction) -> bool:
    method is_ret (line 3139) | def is_ret(self, insn: Instruction) -> bool:
    method is_conditional_branch (line 3142) | def is_conditional_branch(self, insn: Instruction) -> bool:
    method is_branch_taken (line 3147) | def is_branch_taken(self, insn: Instruction) -> tuple[bool, str]:
    method get_ra (line 3160) | def get_ra(self, insn: Instruction, frame: "gdb.Frame") -> int | None:
    method mprotect_asm (line 3171) | def mprotect_asm(cls, addr: int, size: int, perm: Permission) -> str:
  class PowerPC64 (line 3196) | class PowerPC64(PowerPC):
  class SPARC (line 3203) | class SPARC(Architecture):
    method flag_register_to_human (line 3233) | def flag_register_to_human(self, val: int | None = None) -> str:
    method is_call (line 3240) | def is_call(self, insn: Instruction) -> bool:
    method is_ret (line 3243) | def is_ret(self, insn: Instruction) -> bool:
    method is_conditional_branch (line 3246) | def is_conditional_branch(self, insn: Instruction) -> bool:
    method is_branch_taken (line 3255) | def is_branch_taken(self, insn: Instruction) -> tuple[bool, str]:
    method get_ra (line 3279) | def get_ra(self, insn: Instruction, frame: "gdb.Frame") -> int | None:
    method mprotect_asm (line 3290) | def mprotect_asm(cls, addr: int, size: int, perm: Permission) -> str:
  class SPARC64 (line 3309) | class SPARC64(SPARC):
    method mprotect_asm (line 3336) | def mprotect_asm(cls, addr: int, size: int, perm: Permission) -> str:
  class MIPS (line 3355) | class MIPS(Architecture):
    method flag_register_to_human (line 3377) | def flag_register_to_human(self, val: int | None = None) -> str:
    method is_call (line 3380) | def is_call(self, insn: Instruction) -> bool:
    method is_ret (line 3383) | def is_ret(self, insn: Instruction) -> bool:
    method is_conditional_branch (line 3386) | def is_conditional_branch(self, insn: Instruction) -> bool:
    method is_branch_taken (line 3391) | def is_branch_taken(self, insn: Instruction) -> tuple[bool, str]:
    method get_ra (line 3413) | def get_ra(self, insn: Instruction, frame: "gdb.Frame") -> int | None:
    method mprotect_asm (line 3424) | def mprotect_asm(cls, addr: int, size: int, perm: Permission) -> str:
  class MIPS64 (line 3440) | class MIPS64(MIPS):
    method supports_gdb_arch (line 3447) | def supports_gdb_arch(gdb_arch: str) -> bool | None:
  function copy_to_clipboard (line 3453) | def copy_to_clipboard(data: bytes) -> None:
  function use_stdtype (line 3472) | def use_stdtype() -> str:
  function use_default_type (line 3478) | def use_default_type() -> str:
  function use_golang_type (line 3484) | def use_golang_type() -> str:
  function use_rust_type (line 3490) | def use_rust_type() -> str:
  function to_unsigned_long (line 3496) | def to_unsigned_long(v: gdb.Value) -> int:
  function get_path_from_info_proc (line 3502) | def get_path_from_info_proc() -> str | None:
  function get_os (line 3510) | def get_os() -> str:
  function is_qemu (line 3515) | def is_qemu() -> bool:
  function is_qemu_usermode (line 3523) | def is_qemu_usermode() -> bool:
  function is_qemu_system (line 3531) | def is_qemu_system() -> bool:
  function is_target_coredump (line 3538) | def is_target_coredump() -> bool:
  function get_filepath (line 3548) | def get_filepath() -> str | None:
  function get_function_length (line 3557) | def get_function_length(sym: str) -> int:
  function get_info_files (line 3566) | def get_info_files() -> list[Zone]:
  function process_lookup_address (line 3592) | def process_lookup_address(address: int) -> Section | None:
  function process_lookup_path (line 3611) | def process_lookup_path(name: str, perm: Permission = Permission.ALL) ->...
  function file_lookup_name_path (line 3643) | def file_lookup_name_path(name: str, path: str) -> Zone | None:
  function file_lookup_address (line 3653) | def file_lookup_address(address: int) -> Zone | None:
  function lookup_address (line 3663) | def lookup_address(address: int) -> Address:
  function xor (line 3674) | def xor(data: ByteString, key: str) -> bytearray:
  function is_hex (line 3680) | def is_hex(pattern: str) -> bool:
  function continue_handler (line 3687) | def continue_handler(_: "gdb.ContinueEvent") -> None:
  function hook_stop_handler (line 3692) | def hook_stop_handler(_: "gdb.StopEvent") -> None:
  function new_objfile_handler (line 3699) | def new_objfile_handler(evt: "gdb.NewObjFileEvent | None") -> None:
  function exit_handler (line 3734) | def exit_handler(_: "gdb.ExitedEvent") -> None:
  function memchanged_handler (line 3765) | def memchanged_handler(_: "gdb.MemoryChangedEvent") -> None:
  function regchanged_handler (line 3771) | def regchanged_handler(_: "gdb.RegisterChangedEvent") -> None:
  function get_terminal_size (line 3777) | def get_terminal_size() -> tuple[int, int]:
  function is_64bit (line 3806) | def is_64bit() -> bool:
  function is_32bit (line 3812) | def is_32bit() -> bool:
  function is_x86_64 (line 3818) | def is_x86_64() -> bool:
  function is_x86_32 (line 3824) | def is_x86_32():
  function is_x86 (line 3830) | def is_x86() -> bool:
  function is_arch (line 3835) | def is_arch(arch: Elf.Abi) -> bool:
  function reset_architecture (line 3839) | def reset_architecture(arch: str | None = None) -> None:
  function cached_lookup_type (line 3880) | def cached_lookup_type(_type: str) -> gdb.Type | None:
  function get_memory_alignment (line 3888) | def get_memory_alignment(in_bits: bool = False) -> int:
  function clear_screen (line 3907) | def clear_screen(tty: str = "") -> None:
  function format_address (line 3918) | def format_address(addr: int) -> str:
  function format_address_spaces (line 3925) | def format_address_spaces(addr: int, left: bool = True) -> str:
  function align_address (line 3936) | def align_address(address: int) -> int:
  function align_address_to_size (line 3941) | def align_address_to_size(address: int, align: int) -> int:
  function align_address_to_page (line 3946) | def align_address_to_page(address: int) -> int:
  function parse_address (line 3952) | def parse_address(address: str) -> int:
  function is_in_x86_kernel (line 3959) | def is_in_x86_kernel(address: int) -> bool:
  function is_remote_debug (line 3965) | def is_remote_debug() -> bool:
  function de_bruijn (line 3970) | def de_bruijn(alphabet: bytes, n: int) -> Generator[int, None, None]:
  function generate_cyclic_pattern (line 3991) | def generate_cyclic_pattern(length: int, cycle: int = 4) -> bytearray:
  function safe_parse_and_eval (line 3997) | def safe_parse_and_eval(value: str) -> "gdb.Value | None":
  function dereference (line 4008) | def dereference(addr: int) -> "gdb.Value | None":
  function gef_convenience (line 4027) | def gef_convenience(value: str |  bytes) -> str:
  function parse_string_range (line 4042) | def parse_string_range(s: str) -> Iterator[int]:
  function is_syscall (line 4049) | def is_syscall(instruction: Instruction | int) -> bool:
  function gef_get_pie_breakpoint (line 4064) | def gef_get_pie_breakpoint(num: int) -> "PieVirtualBreakpoint":
  function endian_str (line 4069) | def endian_str() -> str:
  function get_gef_setting (line 4074) | def get_gef_setting(name: str) -> Any:
  function set_gef_setting (line 4079) | def set_gef_setting(name: str, value: Any) -> None:
  function gef_getpagesize (line 4085) | def gef_getpagesize() -> int:
  function gef_read_canary (line 4090) | def gef_read_canary() -> tuple[int, int] | None:
  function get_pid (line 4095) | def get_pid() -> int:
  function get_filename (line 4100) | def get_filename() -> str:
  function get_glibc_arena (line 4106) | def get_glibc_arena() -> GlibcArena | None:
  function get_register (line 4111) | def get_register(regname) -> int | None:
  function get_process_maps (line 4116) | def get_process_maps() -> list[Section]:
  function set_arch (line 4121) | def set_arch(arch: str | None = None, _: str | None = None) -> None:
  function gef_on_continue_hook (line 4129) | def gef_on_continue_hook(func: Callable[["gdb.ContinueEvent"], None]) ->...
  function gef_on_continue_unhook (line 4134) | def gef_on_continue_unhook(func: Callable[["gdb.ThreadEvent"], None]) ->...
  function gef_on_stop_hook (line 4139) | def gef_on_stop_hook(func: Callable[["gdb.StopEvent"], None]) -> None:
  function gef_on_stop_unhook (line 4144) | def gef_on_stop_unhook(func: Callable[["gdb.StopEvent"], None]) -> None:
  function gef_on_exit_hook (line 4149) | def gef_on_exit_hook(func: Callable[["gdb.ExitedEvent"], None]) -> None:
  function gef_on_exit_unhook (line 4154) | def gef_on_exit_unhook(func: Callable[["gdb.ExitedEvent"], None]) -> None:
  function gef_on_new_hook (line 4159) | def gef_on_new_hook(func: Callable[["gdb.NewObjFileEvent"], None]) -> None:
  function gef_on_new_unhook (line 4164) | def gef_on_new_unhook(func: Callable[["gdb.NewObjFileEvent"], None]) -> ...
  function gef_on_unload_objfile_hook (line 4169) | def gef_on_unload_objfile_hook(func: Callable[["gdb.ClearObjFilesEvent"]...
  function gef_on_unload_objfile_unhook (line 4174) | def gef_on_unload_objfile_unhook(func: Callable[["gdb.ClearObjFilesEvent...
  function gef_on_memchanged_hook (line 4179) | def gef_on_memchanged_hook(func: Callable[["gdb.MemoryChangedEvent"], No...
  function gef_on_memchanged_unhook (line 4184) | def gef_on_memchanged_unhook(func: Callable[["gdb.MemoryChangedEvent"], ...
  function gef_on_regchanged_hook (line 4189) | def gef_on_regchanged_hook(func: Callable[["gdb.RegisterChangedEvent"], ...
  function gef_on_regchanged_unhook (line 4194) | def gef_on_regchanged_unhook(func: Callable[["gdb.RegisterChangedEvent"]...
  class PieVirtualBreakpoint (line 4202) | class PieVirtualBreakpoint:
    method __init__ (line 4205) | def __init__(self, set_func: Callable[[int], str], vbp_num: int, addr:...
    method instantiate (line 4220) | def instantiate(self, base: int) -> None:
    method destroy (line 4240) | def destroy(self) -> None:
  class FormatStringBreakpoint (line 4253) | class FormatStringBreakpoint(gdb.Breakpoint):
    method __init__ (line 4255) | def __init__(self, spec: str, num_args: int) -> None:
    method stop (line 4261) | def stop(self) -> bool:
  class StubBreakpoint (line 4283) | class StubBreakpoint(gdb.Breakpoint):
    method __init__ (line 4286) | def __init__(self, func: str, retval: int | None) -> None:
    method stop (line 4297) | def stop(self) -> bool:
  class ChangePermissionBreakpoint (line 4305) | class ChangePermissionBreakpoint(gdb.Breakpoint):
    method __init__ (line 4309) | def __init__(self, loc: str, code: ByteString, pc: int) -> None:
    method stop (line 4315) | def stop(self) -> bool:
  class TraceMallocBreakpoint (line 4323) | class TraceMallocBreakpoint(gdb.Breakpoint):
    method __init__ (line 4326) | def __init__(self, name: str) -> None:
    method stop (line 4332) | def stop(self) -> bool:
  class TraceMallocRetBreakpoint (line 4340) | class TraceMallocRetBreakpoint(gdb.FinishBreakpoint):
    method __init__ (line 4343) | def __init__(self, size: int, name: str) -> None:
    method stop (line 4350) | def stop(self) -> bool:
  class TraceReallocBreakpoint (line 4409) | class TraceReallocBreakpoint(gdb.Breakpoint):
    method __init__ (line 4412) | def __init__(self) -> None:
    method stop (line 4417) | def stop(self) -> bool:
  class TraceReallocRetBreakpoint (line 4425) | class TraceReallocRetBreakpoint(gdb.FinishBreakpoint):
    method __init__ (line 4428) | def __init__(self, ptr: int, size: int) -> None:
    method stop (line 4435) | def stop(self) -> bool:
  class TraceFreeBreakpoint (line 4466) | class TraceFreeBreakpoint(gdb.Breakpoint):
    method __init__ (line 4469) | def __init__(self) -> None:
    method stop (line 4474) | def stop(self) -> bool:
  class TraceFreeRetBreakpoint (line 4528) | class TraceFreeRetBreakpoint(gdb.FinishBreakpoint):
    method __init__ (line 4531) | def __init__(self, addr: int) -> None:
    method stop (line 4537) | def stop(self) -> bool:
  class UafWatchpoint (line 4544) | class UafWatchpoint(gdb.Breakpoint):
    method __init__ (line 4547) | def __init__(self, addr: int) -> None:
    method stop (line 4554) | def stop(self) -> bool:
  class EntryBreakBreakpoint (line 4575) | class EntryBreakBreakpoint(gdb.Breakpoint):
    method __init__ (line 4578) | def __init__(self, location: str) -> None:
    method stop (line 4583) | def stop(self) -> bool:
  class NamedBreakpoint (line 4588) | class NamedBreakpoint(gdb.Breakpoint):
    method __init__ (line 4591) | def __init__(self, location: str, name: str) -> None:
    method stop (line 4597) | def stop(self) -> bool:
  class JustSilentStopBreakpoint (line 4603) | class JustSilentStopBreakpoint(gdb.Breakpoint):
    method __init__ (line 4606) | def __init__(self, loc: str) -> None:
  function register_external_context_pane (line 4616) | def register_external_context_pane(pane_name: str, display_pane_function...
  function register_external_context_layout_mapping (line 4637) | def register_external_context_layout_mapping(current_pane_name: str, dis...
  function register_external_command (line 4646) | def register_external_command(cls: Type["GenericCommand"]) -> Type["Gene...
  function register_command (line 4651) | def register_command(cls: Type["GenericCommand"]) -> Type["GenericComman...
  function register_priority_command (line 4656) | def register_priority_command(cls: Type["GenericCommand"]) -> Type["Gene...
  function register (line 4665) | def register(cls: Type["ValidCommandType"] |  Type["ValidFunctionType"])...
  class GenericCommand (line 4686) | class GenericCommand(gdb.Command):
    method __init_subclass__ (line 4694) | def __init_subclass__(cls, **kwargs):
    method __init__ (line 4700) | def __init__(self, *args: Any, **kwargs: Any) -> None:
    method invoke (line 4720) | def invoke(self, args: str, from_tty: bool) -> None:
    method usage (line 4736) | def usage(self) -> None:
    method do_invoke (line 4740) | def do_invoke(self, argv: list[str]) -> None:
    method pre_load (line 4743) | def pre_load(self) -> None:
    method post_load (line 4746) | def post_load(self) -> None:
    method __get_setting_name (line 4749) | def __get_setting_name(self, name: str) -> str:
    method __iter__ (line 4753) | def __iter__(self) -> Generator[str, None, None]:
    method settings (line 4759) | def settings(self) -> list[str]:
    method get_setting (line 4764) | def get_setting(self, name: str) -> Any:
    method __getitem__ (line 4767) | def __getitem__(self, name: str) -> Any:
    method has_setting (line 4772) | def has_setting(self, name: str) -> bool:
    method __contains__ (line 4775) | def __contains__(self, name: str) -> bool:
    method add_setting (line 4779) | def add_setting(self, name: str, value: tuple[Any, type, str], descrip...
    method __setitem__ (line 4782) | def __setitem__(self, name: str, value: "GefSetting | tuple[Any, str]"...
    method del_setting (line 4804) | def del_setting(self, name: str) -> None:
    method __delitem__ (line 4807) | def __delitem__(self, name: str) -> None:
    method __set_repeat_count (line 4811) | def __set_repeat_count(self, argv: list[str], from_tty: bool) -> None:
  class ArchCommand (line 4825) | class ArchCommand(GenericCommand):
    method __init__ (line 4832) | def __init__(self) -> None:
    method do_invoke (line 4836) | def do_invoke(self, argv: list[str]) -> None:
  class ArchGetCommand (line 4842) | class ArchGetCommand(GenericCommand):
    method do_invoke (line 4849) | def do_invoke(self, args: list[str]) -> None:
  class ArchSetCommand (line 4855) | class ArchSetCommand(GenericCommand):
    method do_invoke (line 4862) | def do_invoke(self, args: list[str]) -> None:
    method complete (line 4865) | def complete(self, text: str, word: str) -> list[str]:
  class ArchListCommand (line 4870) | class ArchListCommand(GenericCommand):
    method do_invoke (line 4877) | def do_invoke(self, args: list[str]) -> None:
  class VersionCommand (line 4890) | class VersionCommand(GenericCommand):
    method do_invoke (line 4897) | def do_invoke(self, argv: list[str]) -> None:
  class PrintFormatCommand (line 4927) | class PrintFormatCommand(GenericCommand):
    method __init__ (line 4943) | def __init__(self) -> None:
    method format_matrix (line 4949) | def format_matrix(self) -> dict[int, tuple[str, str, str]]:
    method do_invoke (line 4960) | def do_invoke(self, _: list[str], **kwargs: Any) -> None:
  class PieCommand (line 5018) | class PieCommand(GenericCommand):
    method __init__ (line 5024) | def __init__(self) -> None:
    method do_invoke (line 5028) | def do_invoke(self, argv: list[str]) -> None:
  class PieBreakpointCommand (line 5035) | class PieBreakpointCommand(GenericCommand):
    method do_invoke (line 5042) | def do_invoke(self, _: list[str], **kwargs: Any) -> None:
    method set_pie_breakpoint (line 5060) | def set_pie_breakpoint(set_func: Callable[[int], str], addr: int) -> N...
  class PieInfoCommand (line 5067) | class PieInfoCommand(GenericCommand):
    method do_invoke (line 5074) | def do_invoke(self, _: list[str], **kwargs: Any) -> None:
  class PieDeleteCommand (line 5093) | class PieDeleteCommand(GenericCommand):
    method do_invoke (line 5100) | def do_invoke(self, _: list[str], **kwargs: Any) -> None:
    method delete_bp (line 5115) | def delete_bp(breakpoints: list[PieVirtualBreakpoint]) -> None:
  class PieRunCommand (line 5127) | class PieRunCommand(GenericCommand):
    method do_invoke (line 5133) | def do_invoke(self, argv: list[str]) -> None:
  class PieAttachCommand (line 5170) | class PieAttachCommand(GenericCommand):
    method do_invoke (line 5176) | def do_invoke(self, argv: list[str]) -> None:
  class PieRemoteCommand (line 5194) | class PieRemoteCommand(GenericCommand):
    method do_invoke (line 5200) | def do_invoke(self, argv: list[str]) -> None:
  class SmartEvalCommand (line 5218) | class SmartEvalCommand(GenericCommand):
    method do_invoke (line 5226) | def do_invoke(self, argv: list[str]) -> None:
    method evaluate (line 5236) | def evaluate(self, expr: list[str]) -> None:
    method distance (line 5273) | def distance(self, args: list[str]) -> None:
  class CanaryCommand (line 5284) | class CanaryCommand(GenericCommand):
    method do_invoke (line 5291) | def do_invoke(self, argv: list[str]) -> None:
  class ProcessStatusCommand (line 5312) | class ProcessStatusCommand(GenericCommand):
    method __init__ (line 5320) | def __init__(self) -> None:
    method do_invoke (line 5326) | def do_invoke(self, argv: list[str]) -> None:
    method get_state_of (line 5334) | def get_state_of(self, pid: int) -> dict[str, str]:
    method get_cmdline_of (line 5343) | def get_cmdline_of(self, pid: int) -> str:
    method get_process_path_of (line 5347) | def get_process_path_of(self, pid: int) -> str:
    method get_children_pids (line 5350) | def get_children_pids(self, pid: int) -> list[int]:
    method show_info_proc (line 5357) | def show_info_proc(self) -> None:
    method show_ancestor (line 5366) | def show_ancestor(self) -> None:
    method show_descendants (line 5375) | def show_descendants(self) -> None:
    method show_fds (line 5389) | def show_fds(self) -> None:
    method list_sockets (line 5405) | def list_sockets(self, pid: int) -> list[int]:
    method parse_ip_port (line 5416) | def parse_ip_port(self, addr: str) -> tuple[str, int]:
    method show_connections (line 5420) | def show_connections(self) -> None:
  class GefThemeCommand (line 5469) | class GefThemeCommand(GenericCommand):
    method __init__ (line 5476) | def __init__(self) -> None:
    method do_invoke (line 5497) | def do_invoke(self, args: list[str]) -> None:
  class ExternalStructureManager (line 5522) | class ExternalStructureManager:
    class Structure (line 5523) | class Structure:
      method __init__ (line 5524) | def __init__(self, manager: "ExternalStructureManager", mod_path: pa...
      method __str__ (line 5534) | def __str__(self) -> str:
      method pprint (line 5537) | def pprint(self) -> None:
      method __get_structure_class (line 5549) | def __get_structure_class(self) -> Type[ctypes.Structure]:
      method apply_at (line 5560) | def apply_at(self, address: int, max_depth: int, depth: int = 0) -> ...
      method __get_ctypes_value (line 5616) | def __get_ctypes_value(self, struct, item, value) -> str:
    class Module (line 5631) | class Module(dict):
      method __init__ (line 5632) | def __init__(self, manager: "ExternalStructureManager", path: pathli...
      method __load (line 5643) | def __load(self) -> ModuleType:
      method __str__ (line 5653) | def __str__(self) -> str:
      method __iter__ (line 5656) | def __iter__(self) -> Generator[str, None, None]:
    class Modules (line 5673) | class Modules(dict):
      method __init__ (line 5674) | def __init__(self, manager: "ExternalStructureManager") -> None:
      method __contains__ (line 5686) | def __contains__(self, structure_name: str) -> bool:
    method __init__ (line 5693) | def __init__(self) -> None:
    method clear_caches (line 5697) | def clear_caches(self) -> None:
    method modules (line 5703) | def modules(self) -> "ExternalStructureManager.Modules":
    method path (line 5709) | def path(self) -> pathlib.Path:
    method structures (line 5715) | def structures(self) -> Generator[tuple["ExternalStructureManager.Modu...
    method find (line 5722) | def find(self, structure_name: str) -> tuple["ExternalStructureManager...
  class PCustomCommand (line 5731) | class PCustomCommand(GenericCommand):
    method __init__ (line 5742) | def __init__(self) -> None:
    method do_invoke (line 5755) | def do_invoke(self, *_: Any, **kwargs: dict[str, Any]) -> None:
    method explode_type (line 5782) | def explode_type(self, arg: str) -> tuple[str, str]:
  class PCustomListCommand (line 5789) | class PCustomListCommand(PCustomCommand):
    method __init__ (line 5795) | def __init__(self) -> None:
    method do_invoke (line 5799) | def do_invoke(self, _: list[str]) -> None:
  class PCustomShowCommand (line 5813) | class PCustomShowCommand(PCustomCommand):
    method __init__ (line 5820) | def __init__(self) -> None:
    method do_invoke (line 5824) | def do_invoke(self, argv: list[str]) -> None:
  class PCustomEditCommand (line 5841) | class PCustomEditCommand(PCustomCommand):
    method __init__ (line 5848) | def __init__(self) -> None:
    method do_invoke (line 5852) | def do_invoke(self, argv: list[str]) -> None:
    method __create_or_edit_structure (line 5861) | def __create_or_edit_structure(self, mod_name: str, struct_name: str) ...
    method __create_template (line 5873) | def __create_template(self, structname: str, fpath: pathlib.Path) -> N...
  class ChangeFdCommand (line 5887) | class ChangeFdCommand(GenericCommand):
    method do_invoke (line 5896) | def do_invoke(self, argv: list[str]) -> None:
    method get_fd_from_result (line 5957) | def get_fd_from_result(self, res: str) -> int:
  class ScanSectionCommand (line 5964) | class ScanSectionCommand(GenericCommand):
    method do_invoke (line 5974) | def do_invoke(self, argv: list[str]) -> None:
  class SearchPatternCommand (line 6039) | class SearchPatternCommand(GenericCommand):
    method __init__ (line 6051) | def __init__(self) -> None:
    method print_section (line 6057) | def print_section(self, section: Section) -> None:
    method print_loc (line 6067) | def print_loc(self, loc: tuple[int, int, str]) -> None:
    method search_pattern_by_address (line 6071) | def search_pattern_by_address(self, pattern: str, start_address: int, ...
    method search_binpattern_by_address (line 6103) | def search_binpattern_by_address(self, binpattern: bytes, start_addres...
    method search_pattern (line 6134) | def search_pattern(self, pattern: str, section_name: str) -> None:
    method do_invoke (line 6156) | def do_invoke(self, argv: list[str]) -> None:
  class FlagsCommand (line 6212) | class FlagsCommand(GenericCommand):
    method do_invoke (line 6221) | def do_invoke(self, argv: list[str]) -> None:
  class RemoteCommand (line 6259) | class RemoteCommand(GenericCommand):
    method __init__ (line 6272) | def __init__(self) -> None:
    method do_invoke (line 6277) | def do_invoke(self, _: list[str], **kwargs: Any) -> None:
  class SkipiCommand (line 6320) | class SkipiCommand(GenericCommand):
    method __init__ (line 6333) | def __init__(self) -> None:
    method do_invoke (line 6339) | def do_invoke(self, _: list[str], **kwargs: Any) -> None:
  class StepoverCommand (line 6354) | class StepoverCommand(GenericCommand):
    method __init__ (line 6363) | def __init__(self) -> None:
    method do_invoke (line 6368) | def do_invoke(self, _: list[str]) -> None:
  class NopCommand (line 6376) | class NopCommand(GenericCommand):
    method __init__ (line 6395) | def __init__(self) -> None:
    method do_invoke (line 6401) | def do_invoke(self, _: list[str], **kwargs: Any) -> None:
  class StubCommand (line 6468) | class StubCommand(GenericCommand):
    method __init__ (line 6478) | def __init__(self) -> None:
    method do_invoke (line 6484) | def do_invoke(self, _: list[str], **kwargs: Any) -> None:
  class GlibcHeapCommand (line 6492) | class GlibcHeapCommand(GenericCommand):
    method __init__ (line 6498) | def __init__(self) -> None:
    method do_invoke (line 6503) | def do_invoke(self, _: list[str]) -> None:
  class GlibcHeapSetArenaCommand (line 6509) | class GlibcHeapSetArenaCommand(GenericCommand):
    method __init__ (line 6516) | def __init__(self) -> None:
    method do_invoke (line 6522) | def do_invoke(self, _: list[str], **kwargs: Any) -> None:
  class GlibcHeapArenaCommand (line 6552) | class GlibcHeapArenaCommand(GenericCommand):
    method do_invoke (line 6559) | def do_invoke(self, _: list[str]) -> None:
  class GlibcHeapChunkCommand (line 6566) | class GlibcHeapChunkCommand(GenericCommand):
    method __init__ (line 6573) | def __init__(self) -> None:
    method do_invoke (line 6579) | def do_invoke(self, _: list[str], **kwargs: Any) -> None:
  class GlibcHeapChunkSummary (line 6609) | class GlibcHeapChunkSummary:
    method __init__ (line 6610) | def __init__(self, desc = ""):
    method process_chunk (line 6615) | def process_chunk(self, chunk: GlibcChunk) -> None:
  class GlibcHeapArenaSummary (line 6620) | class GlibcHeapArenaSummary:
    method __init__ (line 6621) | def __init__(self, resolve_type = False) -> None:
    method process_chunk (line 6630) | def process_chunk(self, chunk: GlibcChunk) -> None:
    method print (line 6646) | def print(self) -> None:
  class GlibcHeapWalkContext (line 6657) | class GlibcHeapWalkContext:
    method __init__ (line 6658) | def __init__(self, print_arena: bool = False, allow_unaligned: bool = ...
  class GlibcHeapChunksCommand (line 6668) | class GlibcHeapChunksCommand(GenericCommand):
    method __init__ (line 6677) | def __init__(self) -> None:
    method do_invoke (line 6684) | def do_invoke(self, _: list[str], **kwargs: Any) -> None:
    method dump_chunks_arena (line 6702) | def dump_chunks_arena(self, arena: GlibcArena, ctx: GlibcHeapWalkConte...
    method dump_chunks_heap (line 6719) | def dump_chunks_heap(self, start: int, end: int, arena: GlibcArena, ct...
    method should_process_chunk (line 6764) | def should_process_chunk(self, chunk: GlibcChunk, ctx: GlibcHeapWalkCo...
  class GlibcHeapBinsCommand (line 6775) | class GlibcHeapBinsCommand(GenericCommand):
    method __init__ (line 6783) | def __init__(self) -> None:
    method do_invoke (line 6788) | def do_invoke(self, argv: list[str]) -> None:
    method pprint_bin (line 6802) | def pprint_bin(self, arena_addr: str, index: int, _type: str = "") -> ...
  class GlibcHeapTcachebinsCommand (line 6837) | class GlibcHeapTcachebinsCommand(GenericCommand):
    method __init__ (line 6846) | def __init__(self) -> None:
    method do_invoke (line 6851) | def do_invoke(self, argv: list[str]) -> None:
    method find_tcache (line 6930) | def find_tcache(self) -> int:
    method check_thread_ids (line 6948) | def check_thread_ids(self, tids: list[int]) -> list[int]:
    method tcachebin (line 6953) | def tcachebin(self, tcache_base: int, i: int) -> tuple[GlibcTcacheChun...
  class GlibcHeapFastbinsYCommand (line 6989) | class GlibcHeapFastbinsYCommand(GenericCommand):
    method __init__ (line 6996) | def __init__(self) -> None:
    method do_invoke (line 7002) | def do_invoke(self, *_: Any, **kwargs: Any) -> None:
  class GlibcHeapUnsortedBinsCommand (line 7055) | class GlibcHeapUnsortedBinsCommand(GenericCommand):
    method __init__ (line 7062) | def __init__(self) -> None:
    method do_invoke (line 7068) | def do_invoke(self, *_: Any, **kwargs: Any) -> None:
  class GlibcHeapSmallBinsCommand (line 7085) | class GlibcHeapSmallBinsCommand(GenericCommand):
    method __init__ (line 7091) | def __init__(self) -> None:
    method do_invoke (line 7097) | def do_invoke(self, *_: Any, **kwargs: Any) -> None:
  class GlibcHeapLargeBinsCommand (line 7119) | class GlibcHeapLargeBinsCommand(GenericCommand):
    method __init__ (line 7125) | def __init__(self) -> None:
    method do_invoke (line 7131) | def do_invoke(self, *_: Any, **kwargs: Any) -> None:
  class DetailRegistersCommand (line 7153) | class DetailRegistersCommand(GenericCommand):
    method do_invoke (line 7163) | def do_invoke(self, _: list[str], **kwargs: Any) -> None:
  class ShellcodeCommand (line 7247) | class ShellcodeCommand(GenericCommand):
    method __init__ (line 7254) | def __init__(self) -> None:
    method do_invoke (line 7258) | def do_invoke(self, _: list[str]) -> None:
  class ShellcodeSearchCommand (line 7265) | class ShellcodeSearchCommand(GenericCommand):
    method do_invoke (line 7275) | def do_invoke(self, argv: list[str]) -> None:
  class ShellcodeGetCommand (line 7310) | class ShellcodeGetCommand(GenericCommand):
    method do_invoke (line 7320) | def do_invoke(self, argv: list[str]) -> None:
    method get_shellcode (line 7334) | def get_shellcode(self, sid: int) -> None:
  class ProcessListingCommand (line 7351) | class ProcessListingCommand(GenericCommand):
    method __init__ (line 7360) | def __init__(self) -> None:
    method do_invoke (line 7366) | def do_invoke(self, _: list, **kwargs: Any) -> None:
    method get_processes (line 7396) | def get_processes(self) -> Generator[dict[str, str], None, None]:
  class ElfInfoCommand (line 7416) | class ElfInfoCommand(GenericCommand):
    method __init__ (line 7424) | def __init__(self) -> None:
    method do_invoke (line 7429) | def do_invoke(self, _: list[str], **kwargs: Any) -> None:
  class EntryPointBreakCommand (line 7494) | class EntryPointBreakCommand(GenericCommand):
    method __init__ (line 7503) | def __init__(self) -> None:
    method do_invoke (line 7508) | def do_invoke(self, argv: list[str]) -> None:
    method set_init_tbreak (line 7557) | def set_init_tbreak(self, addr: int) -> EntryBreakBreakpoint:
    method set_init_tbreak_pie (line 7562) | def set_init_tbreak_pie(self, addr: int, argv: list[str]) -> EntryBrea...
  class NamedBreakpointCommand (line 7575) | class NamedBreakpointCommand(GenericCommand):
    method __init__ (line 7583) | def __init__(self) -> None:
    method do_invoke (line 7588) | def do_invoke(self, _: list[str], **kwargs: Any) -> None:
  class ContextCommand (line 7600) | class ContextCommand(GenericCommand):
    method __init__ (line 7612) | def __init__(self) -> None:
    method post_load (line 7654) | def post_load(self) -> None:
    method show_legend (line 7659) | def show_legend(self) -> None:
    method do_invoke (line 7671) | def do_invoke(self, argv: list[str]) -> None:
    method context_title (line 7721) | def context_title(self, m: str | None) -> None:
    method context_regs (line 7744) | def context_regs(self) -> None:
    method context_stack (line 7815) | def context_stack(self) -> None:
    method addr_has_breakpoint (line 7834) | def addr_has_breakpoint(self, address: int, bp_locations: list[str]) -...
    method context_code (line 7837) | def context_code(self) -> None:
    method context_args (line 7912) | def context_args(self) -> None:
    method print_arguments_from_symbol (line 7950) | def print_arguments_from_symbol(self, function_name: str, symbol: "gdb...
    method print_guessed_arguments (line 7972) | def print_guessed_arguments(self, function_name: str) -> None:
    method line_has_breakpoint (line 8037) | def line_has_breakpoint(self, file_name: str, line_number: int, bp_loc...
    method context_source (line 8041) | def context_source(self) -> None:
    method get_pc_context_info (line 8102) | def get_pc_context_info(self, pc: int, line: str) -> str:
    method context_trace (line 8135) | def context_trace(self) -> None:
    method context_threads (line 8202) | def context_threads(self) -> None:
    method context_additional_information (line 8271) | def context_additional_information(self) -> None:
    method context_memory (line 8283) | def context_memory(self) -> None:
    method update_registers (line 8293) | def update_registers(cls, _) -> None:
    method empty_extra_messages (line 8301) | def empty_extra_messages(self, _) -> None:
  class MemoryCommand (line 8307) | class MemoryCommand(GenericCommand):
    method __init__ (line 8312) | def __init__(self) -> None:
    method do_invoke (line 8317) | def do_invoke(self, argv: list[str]) -> None:
  class MemoryWatchCommand (line 8323) | class MemoryWatchCommand(GenericCommand):
    method __init__ (line 8330) | def __init__(self) -> None:
    method do_invoke (line 8335) | def do_invoke(self, argv: list[str]) -> None:
  class MemoryUnwatchCommand (line 8362) | class MemoryUnwatchCommand(GenericCommand):
    method __init__ (line 8369) | def __init__(self) -> None:
    method do_invoke (line 8374) | def do_invoke(self, argv: list[str]) -> None:
  class MemoryWatchResetCommand (line 8389) | class MemoryWatchResetCommand(GenericCommand):
    method do_invoke (line 8395) | def do_invoke(self, _: list[str]) -> None:
  class MemoryWatchListCommand (line 8402) | class MemoryWatchListCommand(GenericCommand):
    method do_invoke (line 8408) | def do_invoke(self, _: list[str]) -> None:
  class HexdumpCommand (line 8420) | class HexdumpCommand(GenericCommand):
    method __init__ (line 8427) | def __init__(self) -> None:
    method do_invoke (line 8436) | def do_invoke(self, _: list[str], **kwargs: Any) -> None:
    method _hexdump (line 8463) | def _hexdump(self, start_addr: int, length: int, arrange_as: str, offs...
  class HexdumpQwordCommand (line 8498) | class HexdumpQwordCommand(HexdumpCommand):
    method __init__ (line 8505) | def __init__(self) -> None:
  class HexdumpDwordCommand (line 8512) | class HexdumpDwordCommand(HexdumpCommand):
    method __init__ (line 8519) | def __init__(self) -> None:
  class HexdumpWordCommand (line 8526) | class HexdumpWordCommand(HexdumpCommand):
    method __init__ (line 8533) | def __init__(self) -> None:
  class HexdumpByteCommand (line 8540) | class HexdumpByteCommand(HexdumpCommand):
    method __init__ (line 8547) | def __init__(self) -> None:
  class PatchCommand (line 8554) | class PatchCommand(GenericCommand):
    method __init__ (line 8567) | def __init__(self) -> None:
    method do_invoke (line 8574) | def do_invoke(self, _: list[str], **kwargs: Any) -> None:
  class PatchQwordCommand (line 8607) | class PatchQwordCommand(PatchCommand):
    method __init__ (line 8614) | def __init__(self) -> None:
  class PatchDwordCommand (line 8621) | class PatchDwordCommand(PatchCommand):
    method __init__ (line 8628) | def __init__(self) -> None:
  class PatchWordCommand (line 8635) | class PatchWordCommand(PatchCommand):
    method __init__ (line 8642) | def __init__(self) -> None:
  class PatchByteCommand (line 8649) | class PatchByteCommand(PatchCommand):
    method __init__ (line 8656) | def __init__(self) -> None:
  class PatchStringCommand (line 8663) | class PatchStringCommand(GenericCommand):
    method do_invoke (line 8674) | def do_invoke(self, argv: list[str]) -> None:
  function dereference_from (line 8692) | def dereference_from(address: int) -> list[str]:
  class DereferenceCommand (line 8754) | class DereferenceCommand(GenericCommand):
    method __init__ (line 8763) | def __init__(self) -> None:
    method pprint_dereferenced (line 8769) | def pprint_dereferenced(addr: int, idx: int, base_offset: int = 0) -> ...
    method do_invoke (line 8802) | def do_invoke(self, _: list[str], **kwargs: Any) -> None:
  class ASLRCommand (line 8849) | class ASLRCommand(GenericCommand):
    method do_invoke (line 8856) | def do_invoke(self, argv: list[str]) -> None:
  class ResetCacheCommand (line 8891) | class ResetCacheCommand(GenericCommand):
    method do_invoke (line 8898) | def do_invoke(self, _: list[str]) -> None:
  class VMMapCommand (line 8904) | class VMMapCommand(GenericCommand):
    method do_invoke (line 8914) | def do_invoke(self, _: list[str], **kwargs: Any) -> None:
    method format_addr_filter (line 8971) | def format_addr_filter(self, arg: str, addr: int):
    method print_entry (line 8974) | def print_entry(self, entry: Section) -> None:
    method show_legend (line 8999) | def show_legend(self) -> None:
    method is_integer (line 9006) | def is_integer(self, n: str) -> bool:
  class XFilesCommand (line 9015) | class XFilesCommand(GenericCommand):
    method do_invoke (line 9026) | def do_invoke(self, argv: list[str]) -> None:
  class XAddressInfoCommand (line 9052) | class XAddressInfoCommand(GenericCommand):
    method __init__ (line 9059) | def __init__(self) -> None:
    method do_invoke (line 9064) | def do_invoke(self, argv: list[str]) -> None:
    method infos (line 9080) | def infos(self, address: int) -> None:
  class XorMemoryCommand (line 9114) | class XorMemoryCommand(GenericCommand):
    method __init__ (line 9121) | def __init__(self) -> None:
    method do_invoke (line 9125) | def do_invoke(self, _: list[str]) -> None:
  class XorMemoryDisplayCommand (line 9131) | class XorMemoryDisplayCommand(GenericCommand):
    method do_invoke (line 9140) | def do_invoke(self, argv: list[str]) -> None:
  class XorMemoryPatchCommand (line 9160) | class XorMemoryPatchCommand(GenericCommand):
    method do_invoke (line 9169) | def do_invoke(self, argv: list[str]) -> None:
  class TraceRunCommand (line 9185) | class TraceRunCommand(GenericCommand):
    method __init__ (line 9194) | def __init__(self) -> None:
    method do_invoke (line 9201) | def do_invoke(self, argv: list[str]) -> None:
    method get_frames_size (line 9221) | def get_frames_size(self) -> int:
    method trace (line 9229) | def trace(self, loc_start: int, loc_end: int, depth: int) -> None:
    method start_tracing (line 9240) | def start_tracing(self, loc_start: int, loc_end: int, depth: int) -> N...
  class PatternCommand (line 9275) | class PatternCommand(GenericCommand):
    method __init__ (line 9283) | def __init__(self) -> None:
    method do_invoke (line 9288) | def do_invoke(self, _: list[str]) -> None:
  class PatternCreateCommand (line 9294) | class PatternCreateCommand(GenericCommand):
    method do_invoke (line 9307) | def do_invoke(self, _: list[str], **kwargs: Any) -> None:
  class PatternSearchCommand (line 9319) | class PatternSearchCommand(GenericCommand):
    method do_invoke (line 9334) | def do_invoke(self, _: list[str], **kwargs: Any) -> None:
    method search (line 9348) | def search(self, pattern: str, size: int, period: int) -> None:
  class ChecksecCommand (line 9386) | class ChecksecCommand(GenericCommand):
    method __init__ (line 9399) | def __init__(self) -> None:
    method do_invoke (line 9403) | def do_invoke(self, argv: list[str]) -> None:
    method print_security_properties (line 9424) | def print_security_properties(self, filename: str) -> None:
  class GotCommand (line 9446) | class GotCommand(GenericCommand):
    method __init__ (line 9453) | def __init__(self):
    method build_line (line 9461) | def build_line(self, name: str, _path: str, color: str, address_val: i...
    method do_invoke (line 9468) | def do_invoke(self, _: list[str], **kwargs: Any) -> None:
    method print_got_for (line 9478) | def print_got_for(self, file: str, realpath: str, argv: list[str]) -> ...
  class HighlightCommand (line 9537) | class HighlightCommand(GenericCommand):
    method __init__ (line 9543) | def __init__(self) -> None:
    method do_invoke (line 9547) | def do_invoke(self, _: list[str]) -> None:
  class HighlightListCommand (line 9552) | class HighlightListCommand(GenericCommand):
    method print_highlight_table (line 9558) | def print_highlight_table(self) -> None:
    method do_invoke (line 9569) | def do_invoke(self, _: list[str]) -> None:
  class HighlightClearCommand (line 9574) | class HighlightClearCommand(GenericCommand):
    method do_invoke (line 9580) | def do_invoke(self, _: list[str]) -> None:
  class HighlightAddCommand (line 9585) | class HighlightAddCommand(GenericCommand):
    method do_invoke (line 9592) | def do_invoke(self, argv: list[str]) -> None:
  class HighlightRemoveCommand (line 9602) | class HighlightRemoveCommand(GenericCommand):
    method do_invoke (line 9615) | def do_invoke(self, argv: list[str]) -> None:
  class FormatStringSearchCommand (line 9624) | class FormatStringSearchCommand(GenericCommand):
    method do_invoke (line 9633) | def do_invoke(self, _: list[str]) -> None:
  class HeapAnalysisCommand (line 9656) | class HeapAnalysisCommand(GenericCommand):
    method __init__ (line 9667) | def __init__(self) -> None:
    method do_invoke (line 9683) | def do_invoke(self, argv: list[str]) -> None:
    method setup (line 9692) | def setup(self) -> None:
    method dump_tracked_allocations (line 9713) | def dump_tracked_allocations(self) -> None:
    method clean (line 9731) | def clean(self, _: "gdb.ExitedEvent") -> None:
  function register_function (line 9764) | def register_function(cls: Type["GenericFunction"]) -> Type["GenericFunc...
  class GenericFunction (line 9769) | class GenericFunction(gdb.Function):
    method __init__ (line 9776) | def __init__(self) -> None:
    method invoke (line 9779) | def invoke(self, *args: Any) -> int:
    method arg_to_long (line 9784) | def arg_to_long(self, args: Any, index: int, default: int = 0) -> int:
    method do_invoke (line 9791) | def do_invoke(self, args: Any) -> int:
  class StackOffsetFunction (line 9796) | class StackOffsetFunction(GenericFunction):
    method do_invoke (line 9801) | def do_invoke(self, args: list) -> int:
  class HeapBaseFunction (line 9810) | class HeapBaseFunction(GenericFunction):
    method do_invoke (line 9815) | def do_invoke(self, args: list[str]) -> int:
  class SectionBaseFunction (line 9825) | class SectionBaseFunction(GenericFunction):
    method do_invoke (line 9832) | def do_invoke(self, args: list) -> int:
  class BssBaseFunction (line 9854) | class BssBaseFunction(GenericFunction):
    method do_invoke (line 9860) | def do_invoke(self, args: list) -> int:
  class GotBaseFunction (line 9868) | class GotBaseFunction(GenericFunction):
    method do_invoke (line 9874) | def do_invoke(self, args: list) -> int:
  class GefFunctionsCommand (line 9882) | class GefFunctionsCommand(GenericCommand):
    method __init__ (line 9887) | def __init__(self) -> None:
    method __add__ (line 9893) | def __add__(self, function: GenericFunction):
    method __radd__ (line 9906) | def __radd__(self, function: GenericFunction):
    method __str__ (line 9909) | def __str__(self) -> str:
    method __rebuild (line 9914) | def __rebuild(self) -> None:
    method do_invoke (line 9926) | def do_invoke(self, argv) -> None:
  class GefCommand (line 9938) | class GefCommand(gdb.Command):
    method __init__ (line 9944) | def __init__(self) -> None:
    method loaded_commands (line 9970) | def loaded_commands(self) -> list[tuple[str, Type[GenericCommand], Any]]:
    method loaded_functions (line 9975) | def loaded_functions(self) -> list[Type[GenericFunction]]:
    method missing_commands (line 9980) | def missing_commands(self) -> dict[str, Exception]:
    method setup (line 9983) | def setup(self) -> None:
    method load_extra_plugins (line 9999) | def load_extra_plugins(self, extra_plugins_dir: pathlib.Path | None = ...
    method loaded_command_names (line 10044) | def loaded_command_names(self) -> Iterable[str]:
    method invoke (line 10048) | def invoke(self, args: Any, from_tty: bool) -> None:
    method add_context_layout_mapping (line 10053) | def add_context_layout_mapping(self, current_pane_name: str, display_p...
    method add_context_pane (line 10061) | def add_context_pane(self, pane_name: str, display_pane_function: Call...
    method load (line 10072) | def load(self) -> None:
    method show_banner (line 10113) | def show_banner(self) -> None:
  class GefHelpCommand (line 10132) | class GefHelpCommand(gdb.Command):
    method __init__ (line 10137) | def __init__(self) -> None:
    method invoke (line 10144) | def invoke(self, args: Any, from_tty: bool) -> None:
    method __rebuild (line 10150) | def __rebuild(self) -> None:
    method __add__ (line 10162) | def __add__(self, command: tuple[str, GenericCommand]):
    method __radd__ (line 10174) | def __radd__(self, command: tuple[str, GenericCommand]):
    method __str__ (line 10177) | def __str__(self) -> str:
  class GefConfigCommand (line 10185) | class GefConfigCommand(gdb.Command):
    method __init__ (line 10195) | def __init__(self) -> None:
    method invoke (line 10199) | def invoke(self, args: str, from_tty: bool) -> None:
    method print_setting (line 10235) | def print_setting(self, plugin_name: str, verbose: bool = False) -> None:
    method print_settings (line 10257) | def print_settings(self) -> None:
    method set_setting (line 10262) | def set_setting(self, argv: list[str]) -> bool:
    method complete (line 10298) | def complete(self, text: str, word: str) -> list[str]:
  class GefSaveCommand (line 10313) | class GefSaveCommand(gdb.Command):
    method __init__ (line 10319) | def __init__(self) -> None:
    method invoke (line 10323) | def invoke(self, args: Any, from_tty: bool) -> None:
  class GefRestoreCommand (line 10351) | class GefRestoreCommand(gdb.Command):
    method __init__ (line 10357) | def __init__(self) -> None:
    method invoke (line 10362) | def invoke(self, args: str, from_tty: bool) -> None:
    method reload (line 10369) | def reload(self, quiet: bool):
  class GefMissingCommand (line 10400) | class GefMissingCommand(gdb.Command):
    method __init__ (line 10408) | def __init__(self) -> None:
    method invoke (line 10412) | def invoke(self, args: Any, from_tty: bool) -> None:
  class GefSetCommand (line 10424) | class GefSetCommand(gdb.Command):
    method __init__ (line 10429) | def __init__(self) -> None:
    method invoke (line 10433) | def invoke(self, args: Any, from_tty: bool) -> None:
  class GefRunCommand (line 10448) | class GefRunCommand(gdb.Command):
    method __init__ (line 10454) | def __init__(self) -> None:
    method invoke (line 10458) | def invoke(self, args: Any, from_tty: bool) -> None:
  class GefAlias (line 10470) | class GefAlias(gdb.Command):
    method __init__ (line 10473) | def __init__(self, alias: str, command: str, completer_class: int = gd...
    method __repr__ (line 10497) | def __repr__(self) -> str:
    method __str__ (line 10500) | def __str__(self) -> str:
    method invoke (line 10503) | def invoke(self, args: Any, from_tty: bool) -> None:
    method lookup_command (line 10507) | def lookup_command(self, cmd: str) -> tuple[str, GenericCommand] | None:
  class AliasesCommand (line 10517) | class AliasesCommand(GenericCommand):
    method __init__ (line 10523) | def __init__(self) -> None:
    method do_invoke (line 10527) | def do_invoke(self, _: list[str]) -> None:
  class AliasesAddCommand (line 10533) | class AliasesAddCommand(AliasesCommand):
    method __init__ (line 10540) | def __init__(self) -> None:
    method do_invoke (line 10544) | def do_invoke(self, argv: list[str]) -> None:
  class AliasesRmCommand (line 10553) | class AliasesRmCommand(AliasesCommand):
    method __init__ (line 10559) | def __init__(self) -> None:
    method do_invoke (line 10563) | def do_invoke(self, argv: list[str]) -> None:
  class AliasesListCommand (line 10579) | class AliasesListCommand(AliasesCommand):
    method __init__ (line 10585) | def __init__(self) -> None:
    method do_invoke (line 10589) | def do_invoke(self, _: list[str]) -> None:
  class GefTmuxSetup (line 10596) | class GefTmuxSetup(gdb.Command):
    method __init__ (line 10599) | def __init__(self) -> None:
    method invoke (line 10604) | def invoke(self, args: Any, from_tty: bool) -> None:
    method tmux_setup (line 10620) | def tmux_setup(self) -> None:
    method screen_setup (line 10637) | def screen_setup(self) -> None:
  class GefInstallExtraScriptCommand (line 10666) | class GefInstallExtraScriptCommand(gdb.Command):
    method __init__ (line 10672) | def __init__(self) -> None:
    method invoke (line 10677) | def invoke(self, argv: str, from_tty: bool) -> None:
    method __install_extras_script (line 10701) | def __install_extras_script(self, script: str) -> bool:
  function __gef_prompt__ (line 10727) | def __gef_prompt__(current_prompt: Callable[[Callable], str]) -> str:
  class GefManager (line 10737) | class GefManager(metaclass=abc.ABCMeta):
    method reset_caches (line 10738) | def reset_caches(self) -> None:
  class GefMemoryManager (line 10752) | class GefMemoryManager(GefManager):
    method __init__ (line 10754) | def __init__(self) -> None:
    method reset_caches (line 10758) | def reset_caches(self) -> None:
    method write (line 10763) | def write(self, address: int, buffer: ByteString, length: int | None =...
    method read (line 10768) | def read(self, addr: int, length: int = 0x10) -> bytes:
    method read_integer (line 10772) | def read_integer(self, addr: int) -> int:
    method read_cstring (line 10779) | def read_cstring(self,
    method read_ascii_string (line 10823) | def read_ascii_string(self, address: int) -> str | None:
    method maps (line 10831) | def maps(self) -> list[Section]:
    method __parse_maps (line 10839) | def __parse_maps(self) -> list[Section] | None:
    method parse_procfs_maps (line 10871) | def parse_procfs_maps() -> Generator[Section, None, None]:
    method parse_gdb_info_proc_maps (line 10903) | def parse_gdb_info_proc_maps() -> Generator[Section, None, None]:
    method parse_monitor_info_mem (line 10962) | def parse_monitor_info_mem() -> Generator[Section, None, None]:
    method parse_gdb_maintenance_info_sections (line 10984) | def parse_gdb_maintenance_info_sections() -> Generator[Section, None, ...
    method parse_info_mem (line 11017) | def parse_info_mem():
    method append (line 11037) | def append(self, section: Section):
    method __iadd__ (line 11050) | def __iadd__(self, section: Section):
  class GefHeapManager (line 11054) | class GefHeapManager(GefManager):
    method __init__ (line 11056) | def __init__(self) -> None:
    method reset_caches (line 11060) | def reset_caches(self) -> None:
    method main_arena (line 11067) | def main_arena(self) -> GlibcArena | None:
    method main_arena (line 11081) | def main_arena(self, value: GlibcArena) -> None:
    method find_main_arena_addr (line 11087) | def find_main_arena_addr() -> int:
    method selected_arena (line 11163) | def selected_arena(self) -> GlibcArena | None:
    method selected_arena (line 11170) | def selected_arena(self, value: GlibcArena) -> None:
    method arenas (line 11175) | def arenas(self) -> list | Iterator[GlibcArena]:
    method base_address (line 11181) | def base_address(self) -> int | None:
    method chunks (line 11196) | def chunks(self) -> list | Iterator:
    method min_chunk_size (line 11202) | def min_chunk_size(self) -> int:
    method malloc_alignment (line 11206) | def malloc_alignment(self) -> int:
    method csize2tidx (line 11217) | def csize2tidx(self, size: int) -> int:
    method tidx2size (line 11220) | def tidx2size(self, idx: int) -> int:
    method malloc_align_address (line 11223) | def malloc_align_address(self, address: int) -> int:
  class GefSetting (line 11231) | class GefSetting:
    method __init__ (line 11234) | def __init__(self, value: Any, cls: type | None = None, description: s...
    method __str__ (line 11246) | def __str__(self) -> str:
    method add_hook (line 11251) | def add_hook(self, access: str, funcs: list[Callable]):
    method no_spaces (line 11261) | def no_spaces(value: pathlib.Path):
    method must_exist (line 11266) | def must_exist(value: pathlib.Path):
    method create_folder_tree (line 11271) | def create_folder_tree(value: pathlib.Path):
  class GefSettingsManager (line 11275) | class GefSettingsManager(dict):
    method __getitem__ (line 11280) | def __getitem__(self, name: str) -> Any:
    method __setitem__ (line 11285) | def __setitem__(self, name: str, value: Any) -> None:
    method __delitem__ (line 11308) | def __delitem__(self, name: str) -> None:
    method raw_entry (line 11311) | def raw_entry(self, name: str) -> GefSetting:
    method __invoke_read_hooks (line 11314) | def __invoke_read_hooks(self, setting: GefSetting) -> None:
    method __invoke_changed_hooks (line 11319) | def __invoke_changed_hooks(self, setting: GefSetting, new_value: Any) ...
    method __invoke_write_hooks (line 11326) | def __invoke_write_hooks(self, setting: GefSetting, new_value: Any) ->...
  class GefSessionManager (line 11331) | class GefSessionManager(GefManager):
    method __init__ (line 11333) | def __init__(self) -> None:
    method reset_caches (line 11352) | def reset_caches(self) -> None:
    method __str__ (line 11363) | def __str__(self) -> str:
    method __repr__ (line 11367) | def __repr__(self) -> str:
    method auxiliary_vector (line 11371) | def auxiliary_vector(self) -> dict[str, int] | None:
    method os (line 11394) | def os(self) -> str:
    method pid (line 11401) | def pid(self) -> int:
    method file (line 11411) | def file(self) -> pathlib.Path | None:
    method cwd (line 11423) | def cwd(self) -> pathlib.Path | None:
    method pagesize (line 11429) | def pagesize(self) -> int:
    method canary (line 11438) | def canary(self) -> tuple[int, int] | None:
    method original_canary (line 11452) | def original_canary(self) -> tuple[int, int] | None:
    method maps (line 11464) | def maps(self) -> pathlib.Path | None:
    method root (line 11476) | def root(self) -> pathlib.Path | None:
  class GefRemoteSessionManager (line 11485) | class GefRemoteSessionManager(GefSessionManager):
    class RemoteMode (line 11489) | class RemoteMode(enum.IntEnum):
      method __str__ (line 11494) | def __str__(self):
      method __repr__ (line 11497) | def __repr__(self):
      method prompt_string (line 11500) | def prompt_string(self) -> str:
    method __init__ (line 11510) | def __init__(self, host: str, port: int, pid: int =-1, qemu: pathlib.P...
    method close (line 11527) | def close(self) -> None:
    method __str__ (line 11536) | def __str__(self) -> str:
    method __repr__ (line 11539) | def __repr__(self) -> str:
    method target (line 11543) | def target(self) -> str:
    method root (line 11547) | def root(self) -> pathlib.Path:
    method file (line 11551) | def file(self) -> pathlib.Path:
    method lfile (line 11565) | def lfile(self) -> pathlib.Path:
    method maps (line 11570) | def maps(self) -> pathlib.Path:
    method mode (line 11576) | def mode(self) -> RemoteMode:
    method sync (line 11579) | def sync(self, src: str, dst: str | None = None) -> bool:
    method connect (line 11592) | def connect(self, pid: int) -> bool:
    method setup (line 11621) | def setup(self) -> bool:
    method __setup_qemu (line 11642) | def __setup_qemu(self) -> bool:
    method __setup_remote (line 11676) | def __setup_remote(self) -> bool:
    method __setup_rr (line 11692) | def __setup_rr(self) -> bool:
    method remote_objfile_event_handler (line 11700) | def remote_objfile_event_handler(self, evt: "gdb.NewObjFileEvent") -> ...
  class GefUiManager (line 11714) | class GefUiManager(GefManager):
    method __init__ (line 11716) | def __init__(self) -> None:
  class GefLibcManager (line 11726) | class GefLibcManager(GefManager):
    method __init__ (line 11731) | def __init__(self) -> None:
    method __str__ (line 11737) | def __str__(self) -> str:
    method version (line 11741) | def version(self) -> tuple[int, int] | None:
    method find_libc_version (line 11759) | def find_libc_version() -> tuple[int, int]:
  class Gef (line 11780) | class Gef:
    method __init__ (line 11793) | def __init__(self) -> None:
    method __str__ (line 11802) | def __str__(self) -> str:
    method reinitialize_managers (line 11805) | def reinitialize_managers(self) -> None:
    method setup (line 11812) | def setup(self) -> None:
    method reset_caches (line 11820) | def reset_caches(self) -> None:
  function target_remote_posthook (line 11828) | def target_remote_posthook():

FILE: get-pip.py
  function include_setuptools (line 46) | def include_setuptools(args):
  function include_wheel (line 57) | def include_wheel(args):
  function determine_pip_install_arguments (line 68) | def determine_pip_install_arguments():
  function monkeypatch_for_cert (line 85) | def monkeypatch_for_cert(tmpdir):
  function bootstrap (line 112) | def bootstrap(tmpdir):
  function main (line 122) | def main():

FILE: scripts/new-release.py
  function dbg (line 36) | def dbg(x: str):
  function shell (line 42) | def shell(x: str) -> str:
  function generate_changelog (line 47) | def generate_changelog(args: argparse.Namespace) -> bool:
  function test_token (line 126) | def test_token(args) -> bool:

FILE: scripts/remote_debug.py
  class RemoteDebugService (line 10) | class RemoteDebugService(rpyc.Service):
    method on_connect (line 11) | def on_connect(self, conn: rpyc.core.protocol.Connection):
    method on_disconnect (line 15) | def on_disconnect(self, conn: rpyc.core.protocol.Connection):
    method exposed_eval (line 19) | def exposed_eval(self, cmd):
  function start_rpyc_service (line 27) | def start_rpyc_service(port: int = RPYC_PORT):

FILE: tests/api/deprecated.py
  class GefFuncDeprecatedApi (line 11) | class GefFuncDeprecatedApi(RemoteGefUnitTestGeneric):
    method test_deprecated_elf_values (line 15) | def test_deprecated_elf_values(self):
    method test_deprecated_gef_attributes (line 35) | def test_deprecated_gef_attributes(self):

FILE: tests/api/gef_arch.py
  class GefArchApi (line 12) | class GefArchApi(RemoteGefUnitTestGeneric):
    method setUp (line 15) | def setUp(self) -> None:
    method test_api_gef_arch_ptrsize (line 19) | def test_api_gef_arch_ptrsize(self):
    method test_api_gef_arch_x86_64 (line 26) | def test_api_gef_arch_x86_64(self):
    method test_api_gef_arch_x86 (line 40) | def test_api_gef_arch_x86(self):

FILE: tests/api/gef_disassemble.py
  class GefDisassembleApiFunction (line 11) | class GefDisassembleApiFunction(RemoteGefUnitTestGeneric):
    method setUp (line 14) | def setUp(self) -> None:
    method test_func_gef_disassemble (line 19) | def test_func_gef_disassemble(self):
    method test_func_gef_disassemble_page_border (line 37) | def test_func_gef_disassemble_page_border(self):

FILE: tests/api/gef_heap.py
  class GefHeapApi (line 13) | class GefHeapApi(RemoteGefUnitTestGeneric):
    method setUp (line 16) | def setUp(self) -> None:
    method valid_sizes (line 40) | def valid_sizes(self):
    method test_func_gef_heap_tidx2size (line 46) | def test_func_gef_heap_tidx2size(self):
    method test_func_gef_heap_csize2tidx (line 55) | def test_func_gef_heap_csize2tidx(self):
    method test_func_gef_heap_malloc_align_address (line 65) | def test_func_gef_heap_malloc_align_address(self):
    method test_class_glibcarena_main_arena (line 80) | def test_class_glibcarena_main_arena(self):

FILE: tests/api/gef_memory.py
  class GefMemoryApi (line 21) | class GefMemoryApi(RemoteGefUnitTestGeneric):
    method setUp (line 24) | def setUp(self) -> None:
    method test_api_gef_memory_only_running (line 28) | def test_api_gef_memory_only_running(self):
    method test_api_gef_memory_parse_info_proc_maps_expected_format (line 37) | def test_api_gef_memory_parse_info_proc_maps_expected_format(self):
    method test_api_gef_memory_parse_info_proc_maps (line 68) | def test_api_gef_memory_parse_info_proc_maps(self):
    method test_func_parse_permissions (line 86) | def test_func_parse_permissions(self):
    method test_func_parse_maps_local_procfs (line 100) | def test_func_parse_maps_local_procfs(self):
    method test_func_parse_maps_remote_gdbserver (line 123) | def test_func_parse_maps_remote_gdbserver(self):
    method test_func_parse_maps_remote_qemu (line 141) | def test_func_parse_maps_remote_qemu(self):
    method test_func_parse_maps_realpath (line 157) | def test_func_parse_maps_realpath(self):
    method test_func_read_cstring_oob (line 184) | def test_func_read_cstring_oob(self):

FILE: tests/api/gef_session.py
  class GefSessionApi (line 22) | class GefSessionApi(RemoteGefUnitTestGeneric):
    method setUp (line 25) | def setUp(self) -> None:
    method test_func_get_filepath (line 29) | def test_func_get_filepath(self):
    method test_func_get_pid (line 35) | def test_func_get_pid(self):
    method test_func_auxiliary_vector (line 44) | def test_func_auxiliary_vector(self):
    method test_root_dir_local (line 53) | def test_root_dir_local(self):
    method test_root_dir_remote (line 63) | def test_root_dir_remote(self):
    method test_root_dir_qemu (line 78) | def test_root_dir_qemu(self):

FILE: tests/api/misc.py
  class MiscFunctionTest (line 16) | class MiscFunctionTest(RemoteGefUnitTestGeneric):
    method setUp (line 19) | def setUp(self) -> None:
    method test_func_which (line 23) | def test_func_which(self):
    method test_func_gef_convenience (line 33) | def test_func_gef_convenience(self):
    method test_func_parse_address (line 37) | def test_func_parse_address(self):
    method test_func_show_last_exception (line 44) | def test_func_show_last_exception(self):
    method test_func_process_lookup_path (line 69) | def test_func_process_lookup_path(self):

FILE: tests/base.py
  class RemoteGefUnitTestGeneric (line 24) | class RemoteGefUnitTestGeneric(unittest.TestCase):
    method setUp (line 30) | def setUp(self) -> None:
    method __setup (line 51) | def __setup(self):
    method tearDown (line 103) | def tearDown(self) -> None:
    method gdb_version (line 112) | def gdb_version(self) -> tuple[int, int]:

FILE: tests/binaries/bss.c
  function main (line 15) | int main(int argc, char** argv, char** envp)

FILE: tests/binaries/canary.c
  function greetz (line 14) | void greetz(char* buf)
  function main (line 22) | int main(int argc, char** argv, char** envp)

FILE: tests/binaries/checksec-no-canary.c
  function main (line 17) | int main(int argc, char** argv, char** envp)

FILE: tests/binaries/checksec-no-nx.c
  function main (line 17) | int main(int argc, char** argv, char** envp)

FILE: tests/binaries/checksec-no-pie.c
  function main (line 17) | int main(int argc, char** argv, char** envp)

FILE: tests/binaries/class.cpp
  class TraitA (line 3) | class TraitA {}
  class TraitB (line 4) | class TraitB {}
  class A (line 6) | class A {
    method Run (line 12) | virtual void Run() { printf("I am A\n"); }
  class B (line 16) | class B : public A {
    method Run (line 21) | virtual void Run() { printf("I am B\n"); }
  function main (line 24) | int main() {

FILE: tests/binaries/collision.c
  function main (line 12) | int main(int argc, char** argv, char** envp)

FILE: tests/binaries/default.c
  function main (line 12) | int main(int argc, char** argv, char** envp)

FILE: tests/binaries/format-string-helper.c
  function greetz (line 14) | void greetz(char* buf)
  function main (line 24) | int main(int argc, char** argv, char** envp)

FILE: tests/binaries/heap-analysis.c
  function main (line 14) | int main(int argc, char** argv, char** envp)

FILE: tests/binaries/heap-bins.c
  function main (line 6) | int main(){

FILE: tests/binaries/heap-fastbins.c
  function main (line 19) | int main()

FILE: tests/binaries/heap-multiple-heaps.c
  function main (line 44) | int main(int argc, char** argv, char** envp)

FILE: tests/binaries/heap-non-main.c
  function main (line 22) | int main(int argc, char** argv, char** envp)

FILE: tests/binaries/heap-tcache.c
  function main (line 31) | int main()

FILE: tests/binaries/heap.c
  function main (line 19) | int main(int argc, char** argv, char** envp)

FILE: tests/binaries/memwatch.c
  function main (line 6) | int main(int argc, char** argv)

FILE: tests/binaries/mmap-known-address.c
  function main (line 20) | int main(int argc, char **argv, char **envp)

FILE: tests/binaries/nested.c
  function f10 (line 2) | void f10(){ DebugBreak(); }
  function f9 (line 3) | void f9(){ f10(); }
  function f8 (line 4) | void f8(){ f9(); }
  function f7 (line 5) | void f7(){ f8(); }
  function f6 (line 6) | void f6(){ f7(); }
  function f5 (line 7) | void f5(){ f6(); }
  function f4 (line 8) | void f4(){ f5(); }
  function f3 (line 9) | void f3(){ f4(); }
  function f2 (line 10) | void f2(){ f3(); }
  function f1 (line 11) | void f1(){ f2(); }
  function main (line 12) | int main(){ f1(); return 0;}

FILE: tests/binaries/nested2.c
  function f1 (line 2) | int f1(int i){ if(i==10) {DebugBreak(); return 0;} return f1(++i); }
  function main (line 3) | int main(){ return f1(0); }

FILE: tests/binaries/pattern.c
  function greetz (line 14) | void greetz(char* buf)
  function main (line 22) | int main(int argc, char** argv, char** envp)

FILE: tests/binaries/pcustom.c
  type foo_t (line 8) | struct foo_t {
  type goo_t (line 13) | struct goo_t {
  function main (line 21) | int main()

FILE: tests/commands/aliases.py
  class AliasesCommand (line 8) | class AliasesCommand(RemoteGefUnitTestGeneric):
    method test_cmd_aliases_add (line 11) | def test_cmd_aliases_add(self):
    method test_cmd_aliases_list (line 19) | def test_cmd_aliases_list(self):
    method test_cmd_aliases_rm (line 32) | def test_cmd_aliases_rm(self):

FILE: tests/commands/arch.py
  class ArchCommand (line 11) | class ArchCommand(RemoteGefUnitTestGeneric):
    method test_cmd_arch_get (line 15) | def test_cmd_arch_get(self):
    method test_cmd_arch_set (line 22) | def test_cmd_arch_set(self):
    method test_cmd_arch_list (line 38) | def test_cmd_arch_list(self):

FILE: tests/commands/aslr.py
  class AslrCommand (line 9) | class AslrCommand(RemoteGefUnitTestGeneric):
    method __is_alsr_on_gdb (line 14) | def __is_alsr_on_gdb(self):
    method test_cmd_aslr_show (line 19) | def test_cmd_aslr_show(self):
    method test_cmd_aslr_toggle (line 30) | def test_cmd_aslr_toggle(self):

FILE: tests/commands/canary.py
  class CanaryCommand (line 9) | class CanaryCommand(RemoteGefUnitTestGeneric):
    method setUp (line 12) | def setUp(self) -> None:
    method test_cmd_canary (line 16) | def test_cmd_canary(self):
    method test_overwrite_canary (line 23) | def test_overwrite_canary(self):

FILE: tests/commands/checksec.py
  class ChecksecCommandNoCanary (line 9) | class ChecksecCommandNoCanary(RemoteGefUnitTestGeneric):
    method setUp (line 12) | def setUp(self) -> None:
    method test_cmd_checksec (line 16) | def test_cmd_checksec(self):
  class ChecksecCommandNoNx (line 24) | class ChecksecCommandNoNx(RemoteGefUnitTestGeneric):
    method setUp (line 25) | def setUp(self) -> None:
    method test_cmd_checksec (line 29) | def test_cmd_checksec(self):
  class ChecksecCommandNoPie (line 37) | class ChecksecCommandNoPie(RemoteGefUnitTestGeneric):
    method setUp (line 38) | def setUp(self) -> None:
    method test_cmd_checksec (line 42) | def test_cmd_checksec(self):

FILE: tests/commands/context.py
  class ContextCommand (line 9) | class ContextCommand(RemoteGefUnitTestGeneric):
    method test_duplicate_pane_name (line 18) | def test_duplicate_pane_name(self):

FILE: tests/commands/dereference.py
  class DereferenceCommand (line 9) | class DereferenceCommand(RemoteGefUnitTestGeneric):
    method test_cmd_dereference (line 12) | def test_cmd_dereference(self):
    method test_cmd_dereference_forwards (line 27) | def test_cmd_dereference_forwards(self):
    method test_cmd_dereference_backwards (line 56) | def test_cmd_dereference_backwards(self):

FILE: tests/commands/edit_flags.py
  class EditFlagsCommand (line 13) | class EditFlagsCommand(RemoteGefUnitTestGeneric):
    method test_cmd_edit_flags_disable (line 16) | def test_cmd_edit_flags_disable(self):
    method test_cmd_edit_flags_enable (line 33) | def test_cmd_edit_flags_enable(self):
    method test_cmd_edit_flags_toggle (line 43) | def test_cmd_edit_flags_toggle(self):

FILE: tests/commands/elf_info.py
  class ElfInfoCommand (line 9) | class ElfInfoCommand(RemoteGefUnitTestGeneric):
    method test_cmd_elf_info (line 13) | def test_cmd_elf_info(self):

FILE: tests/commands/entry_break.py
  class EntryBreakCommand (line 9) | class EntryBreakCommand(RemoteGefUnitTestGeneric):
    method test_cmd_entry_break (line 12) | def test_cmd_entry_break(self):

FILE: tests/commands/format_string_helper.py
  class FormatStringHelperCommand (line 10) | class FormatStringHelperCommand(RemoteGefUnitTestGeneric):
    method setUp (line 13) | def setUp(self) -> None:
    method test_cmd_format_string_helper (line 17) | def test_cmd_format_string_helper(self):

FILE: tests/commands/functions.py
  class FunctionsCommand (line 9) | class FunctionsCommand(RemoteGefUnitTestGeneric):
    method test_cmd_functions (line 12) | def test_cmd_functions(self):

FILE: tests/commands/gef.py
  class GefCommand (line 12) | class GefCommand(RemoteGefUnitTestGeneric):
    method test_cmd_gef (line 15) | def test_cmd_gef(self):
    method test_cmd_gef_config (line 20) | def test_cmd_gef_config(self):
    method test_cmd_gef_config_get (line 40) | def test_cmd_gef_config_get(self):
    method test_cmd_gef_config_set (line 49) | def test_cmd_gef_config_set(self):
    method test_cmd_gef_help (line 59) | def test_cmd_gef_help(self):
    method test_cmd_gef_run_and_run (line 75) | def test_cmd_gef_run_and_run(self):
    method test_cmd_gef_save (line 92) | def test_cmd_gef_save(self):
    method test_cmd_gef_install (line 112) | def test_cmd_gef_install(self):

FILE: tests/commands/gef_remote.py
  class GefRemoteCommand (line 19) | class GefRemoteCommand(RemoteGefUnitTestGeneric):
    method setUp (line 22) | def setUp(self) -> None:
    method test_cmd_gef_remote_gdbserver (line 26) | def test_cmd_gef_remote_gdbserver(self):
    method test_cmd_gef_remote_qemu_user (line 44) | def test_cmd_gef_remote_qemu_user(self):
    method test_cmd_target_remote (line 61) | def test_cmd_target_remote(self):

FILE: tests/commands/got.py
  class GotCommand (line 17) | class GotCommand(RemoteGefUnitTestGeneric):
    method setUp (line 20) | def setUp(self) -> None:
    method test_cmd_got (line 25) | def test_cmd_got(self):

FILE: tests/commands/heap.py
  class HeapCommand (line 18) | class HeapCommand(RemoteGefUnitTestGeneric):
    method setUp (line 21) | def setUp(self) -> None:
    method test_cmd_heap_arenas (line 26) | def test_cmd_heap_arenas(self):
    method test_cmd_heap_set_arena (line 38) | def test_cmd_heap_set_arena(self):
    method test_cmd_heap_chunk_no_arg (line 50) | def test_cmd_heap_chunk_no_arg(self):
    method test_cmd_heap_chunk_with_number (line 61) | def test_cmd_heap_chunk_with_number(self):
    method test_cmd_heap_chunks (line 74) | def test_cmd_heap_chunks(self):
    method test_cmd_heap_chunks_summary (line 86) | def test_cmd_heap_chunks_summary(self):
    method test_cmd_heap_chunks_min_size_filter (line 99) | def test_cmd_heap_chunks_min_size_filter(self):
    method test_cmd_heap_chunks_max_size_filter (line 115) | def test_cmd_heap_chunks_max_size_filter(self):
    method test_cmd_heap_chunks_with_count (line 133) | def test_cmd_heap_chunks_with_count(self):
  class HeapCommandNonMain (line 151) | class HeapCommandNonMain(RemoteGefUnitTestGeneric):
    method setUp (line 152) | def setUp(self) -> None:
    method test_cmd_heap_chunks (line 157) | def test_cmd_heap_chunks(self):
    method test_cmd_heap_bins_non_main (line 179) | def test_cmd_heap_bins_non_main(self):
    method test_cmd_heap_bins_tcache (line 192) | def test_cmd_heap_bins_tcache(self):
  class HeapCommandMultipleHeaps (line 208) | class HeapCommandMultipleHeaps(RemoteGefUnitTestGeneric):
    method setUp (line 209) | def setUp(self) -> None:
    method test_cmd_heap_chunks_mult_heaps (line 214) | def test_cmd_heap_chunks_mult_heaps(self):
  class HeapCommandClass (line 227) | class HeapCommandClass(RemoteGefUnitTestGeneric):
    method setUp (line 228) | def setUp(self) -> None:
    method test_cmd_heap_chunks_summary_with_type_resolved (line 232) | def test_cmd_heap_chunks_summary_with_type_resolved(self):
  class HeapCommandFastBins (line 244) | class HeapCommandFastBins(RemoteGefUnitTestGeneric):
    method setUp (line 245) | def setUp(self) -> None:
    method test_cmd_heap_bins_fast (line 249) | def test_cmd_heap_bins_fast(self):
  class HeapCommandBins (line 263) | class HeapCommandBins(RemoteGefUnitTestGeneric):
    method setUp (line 264) | def setUp(self) -> None:
    method test_cmd_heap_bins_large (line 272) | def test_cmd_heap_bins_large(self):
    method test_cmd_heap_bins_small (line 282) | def test_cmd_heap_bins_small(self):
    method test_cmd_heap_bins_unsorted (line 293) | def test_cmd_heap_bins_unsorted(self):
  class HeapCommandTcache (line 303) | class HeapCommandTcache(RemoteGefUnitTestGeneric):
    method setUp (line 304) | def setUp(self) -> None:
    method test_cmd_heap_bins_tcache_all (line 311) | def test_cmd_heap_bins_tcache_all(self):

FILE: tests/commands/heap_analysis.py
  class HeapAnalysisCommand (line 10) | class HeapAnalysisCommand(RemoteGefUnitTestGeneric):
    method setUp (line 13) | def setUp(self) -> None:
    method test_cmd_heap_analysis (line 17) | def test_cmd_heap_analysis(self):

FILE: tests/commands/hexdump.py
  class HexdumpCommand (line 10) | class HexdumpCommand(RemoteGefUnitTestGeneric):
    method test_cmd_hexdump (line 14) | def test_cmd_hexdump(self):

FILE: tests/commands/highlight.py
  class HighlightCommand (line 10) | class HighlightCommand(RemoteGefUnitTestGeneric):
    method test_cmd_highlight (line 13) | def test_cmd_highlight(self):

FILE: tests/commands/hijack_fd.py
  class HijackFdCommand (line 9) | class HijackFdCommand(RemoteGefUnitTestGeneric):
    method test_cmd_hijack_fd (line 16) | def test_cmd_hijack_fd(self):

FILE: tests/commands/memory.py
  class MemoryCommand (line 12) | class MemoryCommand(RemoteGefUnitTestGeneric):
    method setUp (line 15) | def setUp(self) -> None:
    method test_cmd_memory_watch_basic (line 19) | def test_cmd_memory_watch_basic(self):
    method test_cmd_memory_watch_global_variable (line 37) | def test_cmd_memory_watch_global_variable(self):
    method test_cmd_memory_unwatch (line 67) | def test_cmd_memory_unwatch(self):
    method test_cmd_memory_list (line 76) | def test_cmd_memory_list(self):
    method test_cmd_memory_reset (line 85) | def test_cmd_memory_reset(self):

FILE: tests/commands/name_break.py
  class NameBreakCommand (line 9) | class NameBreakCommand(RemoteGefUnitTestGeneric):
    method test_cmd_name_break (line 12) | def test_cmd_name_break(self):

FILE: tests/commands/nop.py
  class NopCommand (line 21) | class NopCommand(RemoteGefUnitTestGeneric):
    method test_cmd_nop_inactive (line 26) | def test_cmd_nop_inactive(self):
    method test_cmd_nop_no_arg (line 33) | def test_cmd_nop_no_arg(self):
    method test_cmd_nop_check_b_and_n_same_time (line 44) | def test_cmd_nop_check_b_and_n_same_time(self):
    method test_cmd_nop_no_arg_break_instruction (line 51) | def test_cmd_nop_no_arg_break_instruction(self):
    method test_cmd_nop_force_arg_break_instruction (line 65) | def test_cmd_nop_force_arg_break_instruction(self):
    method test_cmd_nop_i_arg (line 78) | def test_cmd_nop_i_arg(self):
    method test_cmd_nop_i_arg_reaching_unmapped_area (line 88) | def test_cmd_nop_i_arg_reaching_unmapped_area(self):
    method test_cmd_nop_nop (line 102) | def test_cmd_nop_nop(self):
    method test_cmd_nop_nop_break_instruction (line 113) | def test_cmd_nop_nop_break_instruction(self):
    method test_cmd_nop_nop_break_instruction_force (line 124) | def test_cmd_nop_nop_break_instruction_force(self):
    method test_cmd_nop_nop_arg (line 135) | def test_cmd_nop_nop_arg(self):
    method test_cmd_nop_nop_arg_multibnop_breaks (line 145) | def test_cmd_nop_nop_arg_multibnop_breaks(self):
    method test_cmd_nop_nop_arg_multibnop_breaks_force (line 157) | def test_cmd_nop_nop_arg_multibnop_breaks_force(self):
    method test_cmd_nop_bytes (line 169) | def test_cmd_nop_bytes(self):
    method test_cmd_nop_bytes_break_instruction (line 183) | def test_cmd_nop_bytes_break_instruction(self):
    method test_cmd_nop_bytes_break_instruction_force (line 194) | def test_cmd_nop_bytes_break_instruction_force(self):
    method test_cmd_nop_bytes_arg (line 205) | def test_cmd_nop_bytes_arg(self):
    method test_cmd_nop_bytes_arg_nops_no_fit (line 216) | def test_cmd_nop_bytes_arg_nops_no_fit(self):
    method test_cmd_nop_bytes_arg_nops_no_fit_force (line 228) | def test_cmd_nop_bytes_arg_nops_no_fit_force(self):
  class NopCommandMmapKnownAddress (line 241) | class NopCommandMmapKnownAddress(RemoteGefUnitTestGeneric):
    method setUp (line 242) | def setUp(self) -> None:
    method test_cmd_nop_invalid_end_address (line 247) | def test_cmd_nop_invalid_end_address(self):
    method test_cmd_nop_as_bytes_invalid_end_address (line 254) | def test_cmd_nop_as_bytes_invalid_end_address(self):

FILE: tests/commands/patch.py
  class PatchCommand (line 10) | class PatchCommand(RemoteGefUnitTestGeneric):
    method test_cmd_patch (line 13) | def test_cmd_patch(self):
    method test_cmd_patch_byte (line 19) | def test_cmd_patch_byte(self):
    method test_cmd_patch_byte_bytearray (line 27) | def test_cmd_patch_byte_bytearray(self):
    method test_cmd_patch_word (line 36) | def test_cmd_patch_word(self):
    method test_cmd_patch_dword (line 44) | def test_cmd_patch_dword(self):
    method test_cmd_patch_qword (line 52) | def test_cmd_patch_qword(self):
    method test_cmd_patch_string (line 60) | def test_cmd_patch_string(self):
  class PatchCommandBss (line 68) | class PatchCommandBss(RemoteGefUnitTestGeneric):
    method setUp (line 69) | def setUp(self) -> None:
    method test_cmd_patch_qword_symbol (line 73) | def test_cmd_patch_qword_symbol(self):

FILE: tests/commands/pattern.py
  class PatternCommand (line 10) | class PatternCommand(RemoteGefUnitTestGeneric):
    method setUp (line 13) | def setUp(self) -> None:
    method test_cmd_pattern_create (line 17) | def test_cmd_pattern_create(self):
    method test_cmd_pattern_search (line 31) | def test_cmd_pattern_search(self):

FILE: tests/commands/pcustom.py
  class PcustomCommand (line 25) | class PcustomCommand(RemoteGefUnitTestGeneric):
    method setUp (line 28) | def setUp(self) -> None:
    method test_cmd_pcustom (line 32) | def test_cmd_pcustom(self):
    method test_cmd_pcustom_show (line 66) | def test_cmd_pcustom_show(self):

FILE: tests/commands/pie.py
  class PieCommand (line 9) | class PieCommand(RemoteGefUnitTestGeneric):
    method setUp (line 12) | def setUp(self) -> None:
    method test_cmd_pie (line 18) | def test_cmd_pie(self):
    method test_cmd_pie_breakpoint_check (line 26) | def test_cmd_pie_breakpoint_check(self):
    method test_cmd_pie_breakpoint_delete (line 36) | def test_cmd_pie_breakpoint_delete(self):
    method test_cmd_pie_breakpoint_run (line 43) | def test_cmd_pie_breakpoint_run(self):

FILE: tests/commands/print_format.py
  class PrintFormatCommand (line 10) | class PrintFormatCommand(RemoteGefUnitTestGeneric):
    method test_cmd_print_format (line 13) | def test_cmd_print_format(self):
    method test_cmd_print_format_bytearray (line 36) | def test_cmd_print_format_bytearray(self):

FILE: tests/commands/process_search.py
  class ProcessSearchCommand (line 10) | class ProcessSearchCommand(RemoteGefUnitTestGeneric):
    method setUp (line 13) | def setUp(self) -> None:
    method test_cmd_process_search1 (line 17) | def test_cmd_process_search1(self):
    method test_cmd_process_search_wildcart (line 24) | def test_cmd_process_search_wildcart(self):
    method test_cmd_process_search_smartscan (line 36) | def test_cmd_process_search_smartscan(self):

FILE: tests/commands/process_status.py
  class ProcessStatusCommand (line 10) | class ProcessStatusCommand(RemoteGefUnitTestGeneric):
    method test_cmd_process_status (line 13) | def test_cmd_process_status(self):

FILE: tests/commands/registers.py
  class RegistersCommand (line 12) | class RegistersCommand(RemoteGefUnitTestGeneric):
    method test_cmd_registers (line 19) | def test_cmd_registers(self):

FILE: tests/commands/reset_cache.py
  class ResetCacheCommand (line 9) | class ResetCacheCommand(RemoteGefUnitTestGeneric):
    method test_cmd_reset_cache (line 13) | def test_cmd_reset_cache(self):

FILE: tests/commands/scan.py
  class ScanCommand (line 11) | class ScanCommand(RemoteGefUnitTestGeneric):
    method setUp (line 14) | def setUp(self) -> None:
    method test_cmd_scan (line 19) | def test_cmd_scan(self):

FILE: tests/commands/search_pattern.py
  class SearchPatternCommand (line 10) | class SearchPatternCommand(RemoteGefUnitTestGeneric):
    method test_cmd_search_pattern (line 13) | def test_cmd_search_pattern(self):
    method test_cmd_search_pattern_regex (line 23) | def test_cmd_search_pattern_regex(self):

FILE: tests/commands/shellcode.py
  class ShellcodeCommand (line 10) | class ShellcodeCommand(RemoteGefUnitTestGeneric):
    method test_cmd_shellcode (line 13) | def test_cmd_shellcode(self):
    method test_cmd_shellcode_search (line 21) | def test_cmd_shellcode_search(self):
    method test_cmd_shellcode_get_ok (line 30) | def test_cmd_shellcode_get_ok(self):
    method test_cmd_shellcode_get_nok (line 38) | def test_cmd_shellcode_get_nok(self):

FILE: tests/commands/skipi.py
  class SkipiCommand (line 11) | class SkipiCommand(RemoteGefUnitTestGeneric):
    method test_cmd_nop_inactive (line 16) | def test_cmd_nop_inactive(self):
    method test_cmd_skipi_no_arg (line 22) | def test_cmd_skipi_no_arg(self):
    method test_cmd_skipi_skip_two_instructions (line 34) | def test_cmd_skipi_skip_two_instructions(self):
    method test_cmd_skipi_two_instructions_from_location (line 46) | def test_cmd_skipi_two_instructions_from_location(self):

FILE: tests/commands/smart_eval.py
  class SmartEvalCommand (line 9) | class SmartEvalCommand(RemoteGefUnitTestGeneric):
    method test_cmd_smart_eval (line 13) | def test_cmd_smart_eval(self):

FILE: tests/commands/stepover.py
  class Stepover (line 11) | class Stepover(RemoteGefUnitTestGeneric):
    method test_cmd_stepover_inactive (line 16) | def test_cmd_stepover_inactive(self):
    method test_cmd_stepover (line 22) | def test_cmd_stepover(self):

FILE: tests/commands/stub.py
  class StubCommand (line 11) | class StubCommand(RemoteGefUnitTestGeneric):
    method capfd (line 15) | def capfd(self, capfd):
    method test_cmd_stub (line 18) | def test_cmd_stub(self):

FILE: tests/commands/theme.py
  class ThemeCommand (line 9) | class ThemeCommand(RemoteGefUnitTestGeneric):
    method test_cmd_theme (line 12) | def test_cmd_theme(self):

FILE: tests/commands/trace_run.py
  class TraceRunCommand (line 10) | class TraceRunCommand(RemoteGefUnitTestGeneric):
    method test_cmd_trace_run (line 13) | def test_cmd_trace_run(self):

FILE: tests/commands/version.py
  class VersionCommand (line 9) | class VersionCommand(RemoteGefUnitTestGeneric):
    method test_cmd_version (line 14) | def test_cmd_version(self):

FILE: tests/commands/vmmap.py
  class VmmapCommand (line 10) | class VmmapCommand(RemoteGefUnitTestGeneric):
    method test_cmd_vmmap (line 13) | def test_cmd_vmmap(self):
    method test_cmd_vmmap_addr (line 30) | def test_cmd_vmmap_addr(self):
    method test_cmd_vmmap_name (line 42) | def test_cmd_vmmap_name(self):

FILE: tests/commands/xfiles.py
  class XfilesCommand (line 10) | class XfilesCommand(RemoteGefUnitTestGeneric):
    method test_cmd_xfiles (line 13) | def test_cmd_xfiles(self):

FILE: tests/commands/xinfo.py
  class XinfoCommand (line 10) | class XinfoCommand(RemoteGefUnitTestGeneric):
    method test_cmd_xinfo (line 13) | def test_cmd_xinfo(self):
  class XinfoCommandClass (line 27) | class XinfoCommandClass(RemoteGefUnitTestGeneric):
    method setUp (line 28) | def setUp(self) -> None:
    method test_cmd_xinfo_on_class (line 32) | def test_cmd_xinfo_on_class(self):

FILE: tests/commands/xor_memory.py
  class XorMemoryCommand (line 9) | class XorMemoryCommand(RemoteGefUnitTestGeneric):
    method test_cmd_xor_memory_display (line 13) | def test_cmd_xor_memory_display(self):
    method test_cmd_xor_memory_patch (line 24) | def test_cmd_xor_memory_patch(self):

FILE: tests/config/__init__.py
  class TestGefConfigUnit (line 13) | class TestGefConfigUnit(RemoteGefUnitTestGeneric):
    method test_config_show_opcodes_size (line 16) | def test_config_show_opcodes_size(self):
    method test_config_hook_validator (line 45) | def test_config_hook_validator(self):
    method test_config_type_validator (line 64) | def test_config_type_validator(self):
    method test_config_libc_version (line 81) | def test_config_libc_version(self):

FILE: tests/functions/elf_sections.py
  class ElfSectionGdbFunction (line 12) | class ElfSectionGdbFunction(RemoteGefUnitTestGeneric):
    method test_func_base (line 15) | def test_func_base(self):
    method test_func_stack (line 34) | def test_func_stack(self):
  class ElfSectionGdbFunctionBss (line 49) | class ElfSectionGdbFunctionBss(RemoteGefUnitTestGeneric):
    method setUp (line 50) | def setUp(self) -> None:
    method test_func_bss (line 54) | def test_func_bss(self):
  class ElfSectionGdbFunctionHeap (line 66) | class ElfSectionGdbFunctionHeap(RemoteGefUnitTestGeneric):
    method setUp (line 67) | def setUp(self) -> None:
    method test_func_got (line 71) | def test_func_got(self):
    method test_func_heap (line 83) | def test_func_heap(self):

FILE: tests/perf/benchmark.py
  class BenchmarkBasicApi (line 10) | class BenchmarkBasicApi(RemoteGefUnitTestGeneric):
    method benchmark (line 12) | def benchmark(self, benchmark):
    method test_cmd_context (line 16) | def test_cmd_context(self):
    method test_cmd_context_regs (line 22) | def test_cmd_context_regs(self):
    method test_cmd_context_stack (line 28) | def test_cmd_context_stack(self):
    method test_cmd_context_code (line 34) | def test_cmd_context_code(self):
    method test_gef_memory_maps (line 40) | def test_gef_memory_maps(self):
    method test_elf_parsing (line 51) | def test_elf_parsing(self):

FILE: tests/regressions/filename_collision_lookup.py
  class RegressionFilenameCollisionLookup (line 7) | class RegressionFilenameCollisionLookup(RemoteGefUnitTestGeneric):
    method setUp (line 14) | def setUp(self) -> None:
    method test_process_lookup_path_use_only_filename (line 18) | def test_process_lookup_path_use_only_filename(self):

FILE: tests/regressions/gdbserver_connection.py
  class RegressionGdbserverConnection (line 10) | class RegressionGdbserverConnection(RemoteGefUnitTestGeneric):
    method test_can_establish_connection_to_gdbserver_again_after_disconnect (line 12) | def test_can_establish_connection_to_gdbserver_again_after_disconnect(...

FILE: tests/regressions/registers_register_order.py
  class RegressionRegisterOrder (line 7) | class RegressionRegisterOrder(RemoteGefUnitTestGeneric):
    method test_registers_show_registers_in_correct_order (line 11) | def test_registers_show_registers_in_correct_order(self):
  class RegressionRegisterOrderNested (line 61) | class RegressionRegisterOrderNested(RemoteGefUnitTestGeneric):
    method setUp (line 62) | def setUp(self) -> None:
    method test_context_correct_registers_refresh_with_frames (line 70) | def test_context_correct_registers_refresh_with_frames(self):

FILE: tests/scripts/test_gef.py
  class GefInstallScript (line 14) | class GefInstallScript(unittest.TestCase):
    method setUp (line 15) | def setUp(self):
    method test_script_gef_sh (line 22) | def test_script_gef_sh(self):

FILE: tests/utils.py
  function which (line 20) | def which(program: str) -> pathlib.Path:
  class Color (line 60) | class Color(enum.Enum):
  function is_glibc_ge (line 81) | def is_glibc_ge(major, minor):
  function is_64b (line 89) | def is_64b() -> bool:
  function is_32b (line 93) | def is_32b() -> bool:
  function debug_target (line 97) | def debug_target(name: str, extension: str = ".out") -> pathlib.Path:
  function start_gdbserver (line 106) | def start_gdbserver(
  function stop_gdbserver (line 125) | def stop_gdbserver(gdbserver: subprocess.Popen) -> None:
  function gdbserver_session (line 138) | def gdbserver_session(
  function start_qemuuser (line 151) | def start_qemuuser(
  function stop_qemuuser (line 162) | def stop_qemuuser(process: subprocess.Popen) -> None:
  function qemuuser_session (line 169) | def qemuuser_session(*args, **kwargs):
  function find_symbol (line 179) | def find_symbol(binary: pathlib.Path, symbol: str) -> int:
  function findlines (line 209) | def findlines(substring: str, buffer: str) -> List[str]:
  function removeafter (line 223) | def removeafter(substring: str, buffer: str, included: bool = False) -> ...
  function removeuntil (line 245) | def removeuntil(substring: str, buffer: str, included: bool = False) -> ...
  function download_file (line 267) | def download_file(url: str) -> Optional[bytes]:
  function u8 (line 283) | def u8(x: bytes) -> int:
  function u16 (line 287) | def u16(x: bytes) -> int:
  function u32 (line 291) | def u32(x: bytes) -> int:
  function u64 (line 295) | def u64(x: bytes) -> int:
  function p8 (line 299) | def p8(x: int) -> bytes:
  function p16 (line 303) | def p16(x: int) -> bytes:
  function p32 (line 307) | def p32(x: int) -> bytes:
  function p64 (line 311) | def p64(x: int) -> bytes:
Condensed preview — 205 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (3,641K chars).
[
  {
    "path": ".editorconfig",
    "chars": 367,
    "preview": "# https://github.com/editorconfig/editorconfig/wiki/EditorConfig-Properties\n\nroot = true\n\n[*]\nend_of_line = lf\ninsert_fi"
  },
  {
    "path": ".gitattributes",
    "chars": 216,
    "preview": "# https://help.github.com/articles/dealing-with-line-endings/\n* text eol=lf\n*.png diff=none binary\n*.jpg diff=none binar"
  },
  {
    "path": ".github/CONTRIBUTING.md",
    "chars": 1442,
    "preview": "## Contributing to GEF\n\n## License\n\n`gef` is placed under [MIT license](https://github.com/hugsy/gef/blob/main/LICENSE) "
  },
  {
    "path": ".github/FUNDING.yml",
    "chars": 64,
    "preview": "# These are supported funding model platforms\n\ngithub: [hugsy,]\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report.yaml",
    "chars": 2591,
    "preview": "name: Bug Report\ndescription: File a bug report.\ntitle: \"[Bug] \"\nlabels: [\"bug\", \"triage\"]\nbody:\n- type: markdown\n  id: "
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature_request.yaml",
    "chars": 1441,
    "preview": "name: Feature Request\ndescription: Use this form to suggest a feature you would like to see in GEF\nbody:\n- type: markdow"
  },
  {
    "path": ".github/PULL_REQUEST_TEMPLATE.md",
    "chars": 810,
    "preview": "## Description\n\n<!-- Describe technically what your patch does. -->\n\n<!-- Why is this change required? What problem does"
  },
  {
    "path": ".github/stale.yml",
    "chars": 1126,
    "preview": "# Number of days of inactivity before an issue becomes stale\ndaysUntilStale: 60\n# Number of days of inactivity before a "
  },
  {
    "path": ".github/tests/entrypoint.sh",
    "chars": 518,
    "preview": "#!/bin/sh\n\nset -x\n\nPY_VER=$(gdb -q -nx -ex \"pi print('.'.join(map(str, sys.version_info[:2])))\" -ex quit 2>/dev/null || "
  },
  {
    "path": ".github/tests/run-tests.sh",
    "chars": 176,
    "preview": "#!/bin/sh\n\n[ -z \"${1}\" ] && echo \"Provide a container tag as an argument to this script\" && exit 1\n\ndocker run --privile"
  },
  {
    "path": ".github/tests/setup-dockerfile.sh",
    "chars": 1713,
    "preview": "#!/bin/sh\n\n[ -z \"${1}\" ] && echo \"Provide a container image as an argument to this script\" && exit 1\n\necho \"FROM ${1}\" >"
  },
  {
    "path": ".github/workflows/coverage.yml",
    "chars": 2611,
    "preview": "name: Coverage\n\non:\n  pull_request_target:\n    types:\n      - opened\n      - synchronize\n  pull_request:\n    types:\n    "
  },
  {
    "path": ".github/workflows/extended-tests.yml",
    "chars": 550,
    "preview": "name: Extended Tests\n\n\non:\n  workflow_dispatch:\n\njobs:\n  build:\n    strategy:\n      fail-fast: false\n      matrix:\n     "
  },
  {
    "path": ".github/workflows/generate-docs.yml",
    "chars": 1281,
    "preview": "name: Generate GithubPages\n\non:\n\n  workflow_dispatch:\n\n  push:\n    branches:\n      - main\n\njobs:\n  deploy:\n    runs-on: "
  },
  {
    "path": ".github/workflows/notify.yml",
    "chars": 2257,
    "preview": "name: \"Notifications\"\n\non:\n  issues:\n      types:\n      - opened\n      - reopened\n  push:\n    branches:\n      - main\n\n  "
  },
  {
    "path": ".github/workflows/tests.yml",
    "chars": 1521,
    "preview": "name: Tests\n\nenv:\n  GEF_CI_NB_CPU: 1\n\non:\n  push:\n    branches:\n      - main\n\n  pull_request:\n    branches:\n      - main"
  },
  {
    "path": ".github/workflows/validate.yml",
    "chars": 1244,
    "preview": "name: Validation\n\non:\n  pull_request:\n    branches:\n      - main\n\njobs:\n  pre_commit:\n    name: Check formatting\n    run"
  },
  {
    "path": ".gitignore",
    "chars": 181,
    "preview": "*.out\n*.pyc\nTAGS\n__pycache__\ntests/*.pyc\ntests/pylint.html\ntests/pylint.txt\ntests/pylint3.html\n.vscode\n_build\ndebug.log\n"
  },
  {
    "path": ".pre-commit-config.yaml",
    "chars": 637,
    "preview": "default_stages: [pre-commit, pre-push]\nfail_fast: false\nrepos:\n  - repo: https://github.com/pre-commit/pre-commit-hooks\n"
  },
  {
    "path": ".pylintrc",
    "chars": 28922,
    "preview": "[MASTER]\n\n# A comma-separated list of package or module names from where C extensions may\n# be loaded. Extensions are lo"
  },
  {
    "path": ".python-version",
    "chars": 8,
    "preview": "3.10.14\n"
  },
  {
    "path": ".readthedocs.yml",
    "chars": 211,
    "preview": "version: 2\n\nmkdocs:\n  configuration: docs/obsolete/mkdocs.yml\n  fail_on_warning: false\n\nformats: all\n\nbuild:\n  image: la"
  },
  {
    "path": "LICENSE",
    "chars": 1085,
    "preview": "The MIT License (MIT)\n\nCopyright (c) 2013-2025 crazy rabbidz\n\nPermission is hereby granted, free of charge, to any perso"
  },
  {
    "path": "README.md",
    "chars": 5714,
    "preview": "<p align=\"center\">\n  <img src=\"docs/assets/images/logo.png\" alt=\"logo\"/>\n</p>\n\n<p align=\"center\">\n    <a href=\"https://d"
  },
  {
    "path": "docs/.markdownlint.yaml",
    "chars": 6601,
    "preview": "#\n# Rules: https://github.com/DavidAnson/markdownlint/blob/main/doc/Rules.md\n#\n# Default state for all rules\ndefault: tr"
  },
  {
    "path": "docs/api/gef.md",
    "chars": 530365,
    "preview": "<!-- markdownlint-disable -->\n\n# <kbd>module</kbd> `GEF`\n\n\n\n\n**Global Variables**\n---------------\n- **GEF_DEFAULT_BRANCH"
  },
  {
    "path": "docs/api.md",
    "chars": 10087,
    "preview": "## Extending GEF\n\n`GEF` intends to provide a battery-included, quickly installable and crazy fast debugging\nenvironment "
  },
  {
    "path": "docs/commands/aliases.md",
    "chars": 2635,
    "preview": "## Command `aliases`\n\nBase command to add, remove, and list `GEF` defined aliases.\n\n```text\ngef➤  aliases\naliases (add|r"
  },
  {
    "path": "docs/commands/arch.md",
    "chars": 680,
    "preview": "## Command `arch`\n\n`arch` manages the loaded architecture.\n\nThere are 3 available sub-commands:\n\n-  `list`: List the ins"
  },
  {
    "path": "docs/commands/aslr.md",
    "chars": 545,
    "preview": "## Command `aslr`\n\nEasily check, enable or disable ASLR on the debugged binary.\n\nCheck the status:\n\n```text\ngef➤  aslr\nA"
  },
  {
    "path": "docs/commands/canary.md",
    "chars": 485,
    "preview": "## Command `canary`\n\nIf the currently debugged process was compiled with the Smash Stack Protector (SSP) - i.e. the\n`-fs"
  },
  {
    "path": "docs/commands/checksec.md",
    "chars": 822,
    "preview": "## Command `checksec`\n\nThe `checksec` command is inspired from [`checksec.sh`](https://www.trapkit.de/tools/checksec.htm"
  },
  {
    "path": "docs/commands/config.md",
    "chars": 1315,
    "preview": "## Command `gef config`\n\n`gef` reads its config from a file which is by default located at `~/.gef.rc`, but which can al"
  },
  {
    "path": "docs/commands/context.md",
    "chars": 7587,
    "preview": "## Command `context`\n\n![gef-context](https://raw.githubusercontent.com/hugsy/gef/refs/heads/main/docs/assets/images/gef-"
  },
  {
    "path": "docs/commands/dereference.md",
    "chars": 3780,
    "preview": "## Command `dereference`\n\nThe `dereference` command (also aliased `telescope` for PEDA former users) aims to simplify th"
  },
  {
    "path": "docs/commands/edit-flags.md",
    "chars": 833,
    "preview": "## Command `edit-flags`\n\nThe `edit-flags` command (alias: `flags`) provides a quick and comprehensible way to view and e"
  },
  {
    "path": "docs/commands/elf-info.md",
    "chars": 4996,
    "preview": "## Command `elf-info`\n\n`elf-info` (alias `elf`) provides some basic information on the currently loaded ELF binary:\n\n```"
  },
  {
    "path": "docs/commands/entry-break.md",
    "chars": 822,
    "preview": "## Command `entry-break`\n\nThe `entry-break` (alias `start`) command's goal is to find and break at the most obvious entr"
  },
  {
    "path": "docs/commands/eval.md",
    "chars": 1190,
    "preview": "## Command `$`\n\nThe `$` command attempts to mimic WinDBG `?` command.\n\nWhen provided one argument, it will evaluate the "
  },
  {
    "path": "docs/commands/format-string-helper.md",
    "chars": 821,
    "preview": "## Command `format-string-helper`\n\nThe `format-string-helper` command will create a `GEF` specific type of breakpoints d"
  },
  {
    "path": "docs/commands/functions.md",
    "chars": 1492,
    "preview": "## Command `functions`\n\nThe `functions` command will list all of the [convenience\nfunctions](https://sourceware.org/gdb/"
  },
  {
    "path": "docs/commands/gef-remote.md",
    "chars": 7985,
    "preview": "## Command `gef-remote`\n\n[`target remote`](https://sourceware.org/gdb/onlinedocs/gdb/Remote-Debugging.html#Remote-Debugg"
  },
  {
    "path": "docs/commands/gef.md",
    "chars": 4858,
    "preview": "## Command `gef`\n\n### GEF Base Command\n\nDisplays a list of GEF commands and their descriptions.\n\n```text\ngef➤  gef\n─────"
  },
  {
    "path": "docs/commands/got.md",
    "chars": 1230,
    "preview": "## Command `got`\n\nDisplay the current state of GOT table of the running process.\n\nThe `got` command optionally takes fun"
  },
  {
    "path": "docs/commands/heap-analysis-helper.md",
    "chars": 3018,
    "preview": "## Command `heap-analysis-helper`\n\nPlease note: This feature is still under development, expect bugs and unstability.\n\n`"
  },
  {
    "path": "docs/commands/heap.md",
    "chars": 8386,
    "preview": "## Command `heap`\n\nThe `heap` command provides information on the heap chunk specified as argument. For the moment, it\no"
  },
  {
    "path": "docs/commands/help.md",
    "chars": 102,
    "preview": "## Command `gef help`\n\nDisplays the help menu for the loaded GEF commands.\n\n```text\ngef➤ gef help\n```\n"
  },
  {
    "path": "docs/commands/hexdump.md",
    "chars": 1617,
    "preview": "## Command `hexdump`\n\nImitation of the WinDBG command.\n\nThis command takes 4 optional arguments:\n\n-  The format for repr"
  },
  {
    "path": "docs/commands/highlight.md",
    "chars": 1287,
    "preview": "## Command `highlight`\n\nThis command sets up custom highlighting for user set strings.\n\nSyntax:\n\n```text\nhighlight (add|"
  },
  {
    "path": "docs/commands/hijack-fd.md",
    "chars": 724,
    "preview": "## Command `hijack-fd`\n\n`gef` can be used to modify file descriptors of the debugged process. The new\nfile descriptor ca"
  },
  {
    "path": "docs/commands/memory.md",
    "chars": 2059,
    "preview": "## Command `memory`\n\nAs long as the 'memory' section is enabled in your context layout (which it is by default), you can"
  },
  {
    "path": "docs/commands/name-break.md",
    "chars": 1927,
    "preview": "## Command `name-break`\n\nThe command `name-break` (alias `nb`) can be used to set a breakpoint on a location with a name"
  },
  {
    "path": "docs/commands/nop.md",
    "chars": 1119,
    "preview": "## Command `nop`\n\nThe `nop` command allows you to easily patch instructions with nops.\n\n```text\nnop [LOCATION] [--i ITEM"
  },
  {
    "path": "docs/commands/patch.md",
    "chars": 468,
    "preview": "## Command `patch`\n\n`patch` lets you easily patch the specified values to the specified address.\n\n```bash\ngef➤ patch byt"
  },
  {
    "path": "docs/commands/pattern.md",
    "chars": 2118,
    "preview": "## Command `pattern`\n\nThis command will create or search a [De Bruijn](https://en.wikipedia.org/wiki/De_Bruijn_sequence)"
  },
  {
    "path": "docs/commands/pcustom.md",
    "chars": 6458,
    "preview": "## Command `pcustom`\n\n`gef` provides a way to create and apply to the currently debugged environment, any new structure\n"
  },
  {
    "path": "docs/commands/pie.md",
    "chars": 2326,
    "preview": "## Command `pie`\n\nThe `pie` command is handy when working with position-independent executables. At runtime, it can\nauto"
  },
  {
    "path": "docs/commands/print-format.md",
    "chars": 1493,
    "preview": "## Command `print-format`\n\nThe command `print-format` (alias `pf`) will dump an arbitrary location as an array of bytes\n"
  },
  {
    "path": "docs/commands/process-search.md",
    "chars": 2204,
    "preview": "## Command `process-search`\n\n`process-search` (aka `ps`) is a convenience command to list and filter process on the host"
  },
  {
    "path": "docs/commands/process-status.md",
    "chars": 921,
    "preview": "## Command `process-status`\n\n> This command replaces the old commands `pid` and `fd`.\n\n`process-status` provides an exha"
  },
  {
    "path": "docs/commands/registers.md",
    "chars": 1774,
    "preview": "## Command `registers`\n\nThe `registers` command will print all the registers and dereference any pointers.\n\nExample on a"
  },
  {
    "path": "docs/commands/reset-cache.md",
    "chars": 82,
    "preview": "## Command `reset-cache`\n\nThis command is only useful for debugging `GEF` itself.\n"
  },
  {
    "path": "docs/commands/scan.md",
    "chars": 1237,
    "preview": "## Command `scan`\n\n`scan` searches for addresses of one memory region (needle) inside another region (haystack) and\nlist"
  },
  {
    "path": "docs/commands/search-pattern.md",
    "chars": 1760,
    "preview": "## Command `search-pattern`\n\n`gef` allows you to search for a specific pattern at runtime in all the segments of your pr"
  },
  {
    "path": "docs/commands/shellcode.md",
    "chars": 1061,
    "preview": "## Command `shellcode`\n\n`shellcode` is a command line client for @JonathanSalwan shellcodes database. It can be used to\n"
  },
  {
    "path": "docs/commands/skipi.md",
    "chars": 395,
    "preview": "## Command `skipi`\n\nThe `skipi` command allows you to easily skip instructions execution.\n\n```text\nskipi [LOCATION] [--n"
  },
  {
    "path": "docs/commands/stepover.md",
    "chars": 322,
    "preview": "## Command `stepover`\n\nThe stepover command simplifies the process of stepping over instructions by continuing to a\ntemp"
  },
  {
    "path": "docs/commands/stub.md",
    "chars": 1128,
    "preview": "## Command `stub`\n\nThe `stub` command allows you stub out functions, optionally specifying the return value.\n\n```text\nge"
  },
  {
    "path": "docs/commands/theme.md",
    "chars": 1216,
    "preview": "## Command `theme`\n\nCustomize `GEF` by changing its color scheme.\n\n```text\ngef➤  theme\ncontext_title_message            "
  },
  {
    "path": "docs/commands/tmux-setup.md",
    "chars": 1250,
    "preview": "## Command `tmux-setup`\n\nIn the purpose of always making debugging sessions easier while being more effective, `GEF`\nint"
  },
  {
    "path": "docs/commands/trace-run.md",
    "chars": 842,
    "preview": "## Command `trace-run`\n\nThe `trace-run` command is meant to be provide a visual appreciation directly in IDA disassemble"
  },
  {
    "path": "docs/commands/version.md",
    "chars": 887,
    "preview": "## Command `version`\n\nPrint out version information about your current gdb environment.\n\n### Usage Examples\n\nWhen GEF is"
  },
  {
    "path": "docs/commands/vmmap.md",
    "chars": 1448,
    "preview": "## Command `vmmap`\n\n`vmmap` displays the target process's entire memory space mapping.\n\n![vmmap](https://raw.githubuserc"
  },
  {
    "path": "docs/commands/xfiles.md",
    "chars": 349,
    "preview": "## Command `xfiles`\n\n`xfiles` is a more convenient representation of the GDB native command, `info files` allowing you t"
  },
  {
    "path": "docs/commands/xinfo.md",
    "chars": 715,
    "preview": "## Command `xinfo`\n\n`xinfo` displays all the information known to `gef` about the specific address given as argument:\n\n!"
  },
  {
    "path": "docs/commands/xor-memory.md",
    "chars": 1086,
    "preview": "## Command `xor-memory`\n\nThis command is used to XOR a block of memory.\n\nIts syntax is:\n\n```text\nxor-memory <display|pat"
  },
  {
    "path": "docs/compat.md",
    "chars": 533,
    "preview": "## GEF Compatibility\n\nThis matrix indicates the version of Python and/or GDB\n\n| GEF version | GDB Python compatibility |"
  },
  {
    "path": "docs/config.md",
    "chars": 1238,
    "preview": "## Configuring GEF\n\nGEF comes with its own configuration and customization system, allowing fine\ntweaking. The configura"
  },
  {
    "path": "docs/debugging.md",
    "chars": 4139,
    "preview": "## Debugging\n\nDebugging GEF has a trick, let's see some examples\n\n## Debugging with pdb\n\nOpen gef.py\n\nSearch for **class"
  },
  {
    "path": "docs/deprecated.md",
    "chars": 2311,
    "preview": "## Deprecated commands\n\nGEF is in itself a large file, but to avoid it to be out of control some commands once part of G"
  },
  {
    "path": "docs/faq.md",
    "chars": 8975,
    "preview": "## Frequently Asked Questions\n\n## Why use GEF over PEDA?\n\n[PEDA](https://github.com/longld/peda) is a fantastic tool tha"
  },
  {
    "path": "docs/functions/base.md",
    "chars": 290,
    "preview": "## Function `$_base()`\n\nReturn the matching file's base address plus an optional offset. Defaults to current file. Note "
  },
  {
    "path": "docs/functions/bss.md",
    "chars": 197,
    "preview": "## Function `$_bss()`\n\nReturn the current BSS base address plus the given offset.\n\n_Note_: a debugging session must be a"
  },
  {
    "path": "docs/functions/got.md",
    "chars": 197,
    "preview": "## Function `$_got()`\n\nReturn the current GOT base address plus the given offset.\n\n_Note_: a debugging session must be a"
  },
  {
    "path": "docs/functions/heap.md",
    "chars": 201,
    "preview": "## Function `$_heap()`\n\nReturn the current heap base address plus the given offset.\n\n_Note_: a debugging session must be"
  },
  {
    "path": "docs/functions/stack.md",
    "chars": 205,
    "preview": "## Function `$_stack()`\n\nReturn the current stack base address plus the given offset.\n\n_Note_: a debugging session must "
  },
  {
    "path": "docs/index.md",
    "chars": 5485,
    "preview": "# GEF - GDB Enhanced Features\n\n[![Docs](https://img.shields.io/badge/Documentation-blue.svg)](https://hugsy.github.io/ge"
  },
  {
    "path": "docs/install.md",
    "chars": 5026,
    "preview": "## Installing GEF\n\n## Prerequisites\n\nSpecific GEF commands rely on commonly used Unix commands to extract additional inf"
  },
  {
    "path": "docs/obsolete/docs/index.md",
    "chars": 224,
    "preview": "\n---\n\n## The latest version of the documentation is hosted on [hugsy.github.io/gef](https://hugsy.github.io/gef)\n\n---\n\n!"
  },
  {
    "path": "docs/obsolete/mkdocs.yml",
    "chars": 150,
    "preview": "site_name: GEF - GDB Enhanced Features documentation\nrepo_url: https://github.com/hugsy/gef/\ndocs_dir: docs/\ntheme: read"
  },
  {
    "path": "docs/obsolete/requirements.txt",
    "chars": 14,
    "preview": "mkdocs>=1.2.3\n"
  },
  {
    "path": "docs/requirements.txt",
    "chars": 25,
    "preview": "mkdocs-material\nlazydocs\n"
  },
  {
    "path": "docs/screenshots.md",
    "chars": 2483,
    "preview": "## Screenshots\n\n<!-- @import \"[TOC]\" {cmd=\"toc\" depthFrom=1 depthTo=6 orderedList=false} -->\n\nThis page illustrates a fe"
  },
  {
    "path": "docs/testing.md",
    "chars": 8445,
    "preview": "## Testing GEF\n\nThis page describes how GEF testing is done. Any new command/functionality must receive adequate\ntesting"
  },
  {
    "path": "gef.py",
    "chars": 433464,
    "preview": "#######################################################################################\n# GEF - Multi-Architecture GDB E"
  },
  {
    "path": "get-pip.py",
    "chars": 2193439,
    "preview": "#!/usr/bin/env python\n#\n# Hi There!\n#\n# You may be wondering what this giant blob of binary data here is, you might\n# ev"
  },
  {
    "path": "mkdocs.yml",
    "chars": 2456,
    "preview": "site_name: GEF - GDB Enhanced Features documentation\ntheme:\n  name: material\n  font:\n    text: Roboto\n    code: Roboto M"
  },
  {
    "path": "ruff.toml",
    "chars": 44,
    "preview": "[lint.per-file-ignores]\n\"gef.py\" = [\"E701\"]\n"
  },
  {
    "path": "scripts/gef-extras.sh",
    "chars": 2082,
    "preview": "#!/usr/bin/env bash\n#\n# Install gef-extras\n# Requires git and pip already installed\n#\nset -e\n\nusage() { echo \"Usage: $0 "
  },
  {
    "path": "scripts/gef.sh",
    "chars": 1590,
    "preview": "#!/usr/bin/env bash\n\nset -e\n\n# check dependencies\nif [ ! \"$(command -v python3)\" ]; then\n\techo \"GEF requires Python3 ins"
  },
  {
    "path": "scripts/generate-api-docs.sh",
    "chars": 1138,
    "preview": "#!/usr/bin/env bash\n\nset -e\n\nscript_dir=$( cd -- \"$( dirname -- \"${BASH_SOURCE[0]}\" )\" &> /dev/null && pwd )\ngef_root=$("
  },
  {
    "path": "scripts/generate-coverage-docs.sh",
    "chars": 1063,
    "preview": "#!/usr/bin/env bash\n\nset -e\n\nNB_CORES=\"$(grep --count '^processor' /proc/cpuinfo)\"\nTMPDIR_RUN=\"$(mktemp -d)\"\nTMPDIR_COV="
  },
  {
    "path": "scripts/generate-settings-docs.sh",
    "chars": 1213,
    "preview": "#!/usr/bin/env bash\n\nset -e\n\nSETTINGS_FILE=\"$(mktemp)\"\nGEF_DIR=\"$(pwd)\"\nGEF_MKDOC_YML=\"${GEF_DIR}/mkdocs.yml\"\nGEF_DOCS_D"
  },
  {
    "path": "scripts/new-release.py",
    "chars": 6258,
    "preview": "#!/usr/bin/env python3\n\n\"\"\"\nSmall script to generate the changelog for a new release. It uses information from\nboth git "
  },
  {
    "path": "scripts/remote_debug.py",
    "chars": 808,
    "preview": "import logging\n\nimport rpyc\nimport rpyc.core.protocol\nimport rpyc.utils.server\n\nRPYC_PORT = 18812\n\n\nclass RemoteDebugSer"
  },
  {
    "path": "scripts/vscode_debug.py",
    "chars": 172,
    "preview": "import debugpy\n\nDEBUGPY_PORT = 5678\ndebugpy.listen(DEBUGPY_PORT)\nprint(\"Waiting for debugger attach\")\ndebugpy.wait_for_c"
  },
  {
    "path": "tests/__init__.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "tests/api/__init__.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "tests/api/deprecated.py",
    "chars": 1221,
    "preview": "\"\"\"\ntest module for deprecated functions\n\"\"\"\n\n\nimport pytest\nfrom tests.base import RemoteGefUnitTestGeneric\nfrom tests."
  },
  {
    "path": "tests/api/gef_arch.py",
    "chars": 1209,
    "preview": "\"\"\"\n`gef.arch` test module.\n\"\"\"\n\n\nimport pytest\n\nfrom tests.base import RemoteGefUnitTestGeneric\nfrom tests.utils import"
  },
  {
    "path": "tests/api/gef_disassemble.py",
    "chars": 1870,
    "preview": "\"\"\"\n`gef.heap` test module.\n\"\"\"\n\nimport pytest\n\nfrom tests.base import RemoteGefUnitTestGeneric\nfrom tests.utils import "
  },
  {
    "path": "tests/api/gef_heap.py",
    "chars": 3044,
    "preview": "\"\"\"\n`gef.heap` test module.\n\"\"\"\n\nimport pytest\nimport random\n\nfrom tests.base import RemoteGefUnitTestGeneric\nfrom tests"
  },
  {
    "path": "tests/api/gef_memory.py",
    "chars": 7165,
    "preview": "\"\"\"\n`gef.session` test module.\n\"\"\"\n\nimport pathlib\nimport random\nimport pytest\n\nfrom tests.base import RemoteGefUnitTest"
  },
  {
    "path": "tests/api/gef_session.py",
    "chars": 2735,
    "preview": "\"\"\"\n`gef.session` test module.\n\"\"\"\n\nimport os\nimport pathlib\nimport random\nimport re\nimport pytest\n\nfrom tests.base impo"
  },
  {
    "path": "tests/api/misc.py",
    "chars": 2137,
    "preview": "\"\"\"\nTests GEF internal functions.\n\"\"\"\n\nimport pathlib\nimport pytest\n\n\nfrom tests.base import RemoteGefUnitTestGeneric\n\nf"
  },
  {
    "path": "tests/base.py",
    "chars": 3398,
    "preview": "import os\nimport pathlib\nimport random\nimport re\nimport subprocess\nimport tempfile\nimport time\n\nimport unittest\n\nimport "
  },
  {
    "path": "tests/binaries/Makefile",
    "chars": 1516,
    "preview": "CC              =       gcc\nDEBUG           =       1\nCFLAGS          +=      -Wall\nSOURCES         =       $(wildcard *"
  },
  {
    "path": "tests/binaries/bss.c",
    "chars": 334,
    "preview": "/**\n * default.c\n * -*- mode: c -*-\n * -*- coding: utf-8 -*-\n */\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <strin"
  },
  {
    "path": "tests/binaries/canary.c",
    "chars": 449,
    "preview": "/**\n * canary.c\n * -*- mode: c -*-\n * -*- coding: utf-8 -*-\n */\n\n#include <stdio.h>\n#include <stdint.h>\n#include <stdlib"
  },
  {
    "path": "tests/binaries/checksec-no-canary.c",
    "chars": 286,
    "preview": "/**\n * -*- mode: c -*-\n * -*- coding: utf-8 -*-\n *\n * checksec-no-canary.c\n *\n * @author: @_hugsy_\n * @licence: WTFPL v."
  },
  {
    "path": "tests/binaries/checksec-no-nx.c",
    "chars": 286,
    "preview": "/**\n * -*- mode: c -*-\n * -*- coding: utf-8 -*-\n *\n * checksec-no-canary.c\n *\n * @author: @_hugsy_\n * @licence: WTFPL v."
  },
  {
    "path": "tests/binaries/checksec-no-pie.c",
    "chars": 283,
    "preview": "/**\n * -*- mode: c -*-\n * -*- coding: utf-8 -*-\n *\n * checksec-no-pie.c\n *\n * @author: @_hugsy_\n * @licence: WTFPL v.2\n "
  },
  {
    "path": "tests/binaries/class.cpp",
    "chars": 391,
    "preview": "#include <stdio.h>\n\nclass TraitA {};\nclass TraitB {};\n\nclass A {\nprivate:\n    int _a;\n\npublic:\n    virtual ~A() {}\n    v"
  },
  {
    "path": "tests/binaries/collision.c",
    "chars": 241,
    "preview": "/**\n * collision.c\n * -*- mode: c -*-\n * -*- coding: utf-8 -*-\n */\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <uni"
  },
  {
    "path": "tests/binaries/default.c",
    "chars": 239,
    "preview": "/**\n * default.c\n * -*- mode: c -*-\n * -*- coding: utf-8 -*-\n */\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <unist"
  },
  {
    "path": "tests/binaries/format-string-helper.c",
    "chars": 481,
    "preview": "/**\n * bof.c\n * -*- mode: c -*-\n * -*- coding: utf-8 -*-\n */\n\n#include <stdio.h>\n#include <stdint.h>\n#include <stdlib.h>"
  },
  {
    "path": "tests/binaries/heap-analysis.c",
    "chars": 425,
    "preview": "/**\n * -*- mode: c -*-\n * -*- coding: utf-8 -*-\n *\n * heap-analysis.c\n *\n * @author: @Grazfather\n * @licence: WTFPL v.2\n"
  },
  {
    "path": "tests/binaries/heap-bins.c",
    "chars": 549,
    "preview": "#include <stdio.h>\n#include <stdlib.h>\n\n#include \"utils.h\"\n\nint main(){\n    void *small = malloc(0x10); // small chunk\n "
  },
  {
    "path": "tests/binaries/heap-fastbins.c",
    "chars": 622,
    "preview": "/**\n * -*- mode: c -*-\n * -*- coding: utf-8 -*-\n *\n * heap-fastbins.c\n *\n * @author: @_hugsy_\n * @licence: WTFPL v.2\n *\n"
  },
  {
    "path": "tests/binaries/heap-multiple-heaps.c",
    "chars": 1833,
    "preview": "/**\n * -*- mode: c -*-\n * -*- coding: utf-8 -*-\n */\n\n#include <stdlib.h>\n#include <string.h>\n#include <pthread.h>\n#inclu"
  },
  {
    "path": "tests/binaries/heap-non-main.c",
    "chars": 558,
    "preview": "/**\n * -*- mode: c -*-\n * -*- coding: utf-8 -*-\n */\n\n#include <stdlib.h>\n#include <string.h>\n#include <pthread.h>\n#inclu"
  },
  {
    "path": "tests/binaries/heap-tcache.c",
    "chars": 718,
    "preview": "#include <stdio.h>\n#include <stdlib.h>\n#include <pthread.h>\n#include <unistd.h>\n#include \"utils.h\"\n\nvoid *thread1(void *"
  },
  {
    "path": "tests/binaries/heap.c",
    "chars": 375,
    "preview": "/**\n * -*- mode: c -*-\n * -*- coding: utf-8 -*-\n *\n * heap.c\n *\n * @author: @_hugsy_\n * @licence: WTFPL v.2\n */\n\n#includ"
  },
  {
    "path": "tests/binaries/memwatch.c",
    "chars": 231,
    "preview": "#include<stdio.h>\n#include<stdlib.h>\n#include \"utils.h\"\nint myglobal = 1;\n\nint main(int argc, char** argv)\n{\n    // brea"
  },
  {
    "path": "tests/binaries/mmap-known-address.c",
    "chars": 1023,
    "preview": "/**\n * -*- mode: c -*-\n * -*- coding: utf-8 -*-\n *\n * mmap-known-address.c : only mmap() at 0x1337000 and DebugBreak\n *\n"
  },
  {
    "path": "tests/binaries/nested.c",
    "chars": 248,
    "preview": "#include \"utils.h\"\nvoid f10(){ DebugBreak(); }\nvoid f9(){ f10(); }\nvoid f8(){ f9(); }\nvoid f7(){ f8(); }\nvoid f6(){ f7()"
  },
  {
    "path": "tests/binaries/nested2.c",
    "chars": 116,
    "preview": "#include \"utils.h\"\nint f1(int i){ if(i==10) {DebugBreak(); return 0;} return f1(++i); }\nint main(){ return f1(0); }\n"
  },
  {
    "path": "tests/binaries/pattern.c",
    "chars": 450,
    "preview": "/**\n * pattern.c\n * -*- mode: c -*-\n * -*- coding: utf-8 -*-\n */\n\n#include <stdio.h>\n#include <stdint.h>\n#include <stdli"
  },
  {
    "path": "tests/binaries/pcustom.c",
    "chars": 691,
    "preview": "#include <stdio.h>\n#include <stdint.h>\n#include <stdlib.h>\n#include <unistd.h>\n#include <sys/mman.h>\n#include \"utils.h\"\n"
  },
  {
    "path": "tests/binaries/utils.h",
    "chars": 1359,
    "preview": "#include <signal.h>\n\n/**\n * Provide an cross-architecture way to break into the debugger.\n * On some architectures, we r"
  },
  {
    "path": "tests/commands/__init__.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "tests/commands/aliases.py",
    "chars": 1567,
    "preview": "\"\"\"\n`aliases` command test module\n\"\"\"\n\nfrom tests.base import RemoteGefUnitTestGeneric\n\n\nclass AliasesCommand(RemoteGefU"
  },
  {
    "path": "tests/commands/arch.py",
    "chars": 1333,
    "preview": "\"\"\"\nArch commands test module\n\"\"\"\n\nimport pytest\n\nfrom tests.base import RemoteGefUnitTestGeneric\nfrom tests.utils impor"
  },
  {
    "path": "tests/commands/aslr.py",
    "chars": 1286,
    "preview": "\"\"\"\n`aslr` command test module\n\"\"\"\n\n\nfrom tests.base import RemoteGefUnitTestGeneric\n\n\nclass AslrCommand(RemoteGefUnitTe"
  },
  {
    "path": "tests/commands/canary.py",
    "chars": 1136,
    "preview": "\"\"\"\n`canary` command test module\n\"\"\"\n\n\nfrom tests.utils import ERROR_INACTIVE_SESSION_MESSAGE, debug_target, p64, p32, i"
  },
  {
    "path": "tests/commands/checksec.py",
    "chars": 1419,
    "preview": "\"\"\"\nchecksec command test module\n\"\"\"\n\nfrom tests.base import RemoteGefUnitTestGeneric\nfrom tests.utils import debug_targ"
  },
  {
    "path": "tests/commands/context.py",
    "chars": 1176,
    "preview": "\"\"\"\n`context` command test module\n\"\"\"\n\n\nfrom tests.base import RemoteGefUnitTestGeneric\n\n\nclass ContextCommand(RemoteGef"
  },
  {
    "path": "tests/commands/dereference.py",
    "chars": 2709,
    "preview": "\"\"\"\ndereference command test module\n\"\"\"\n\nfrom tests.base import RemoteGefUnitTestGeneric\nfrom tests.utils import ERROR_I"
  },
  {
    "path": "tests/commands/edit_flags.py",
    "chars": 1714,
    "preview": "\"\"\"\n`edit-flags` command test module\n\"\"\"\n\n\nimport pytest\n\nfrom tests.base import RemoteGefUnitTestGeneric\nfrom tests.uti"
  },
  {
    "path": "tests/commands/elf_info.py",
    "chars": 333,
    "preview": "\"\"\"\nelf-info command test module\n\"\"\"\n\n\nfrom tests.base import RemoteGefUnitTestGeneric\n\n\nclass ElfInfoCommand(RemoteGefU"
  },
  {
    "path": "tests/commands/entry_break.py",
    "chars": 694,
    "preview": "\"\"\"\n`entry-break` command test module\n\"\"\"\n\n\nfrom tests.base import RemoteGefUnitTestGeneric\n\n\nclass EntryBreakCommand(Re"
  },
  {
    "path": "tests/commands/format_string_helper.py",
    "chars": 752,
    "preview": "\"\"\"\n`format-string_helper` command test module\n\"\"\"\n\n\nfrom tests.base import RemoteGefUnitTestGeneric\nfrom tests.utils im"
  },
  {
    "path": "tests/commands/functions.py",
    "chars": 335,
    "preview": "\"\"\"\n`functions` command test module\n\"\"\"\n\n\nfrom tests.base import RemoteGefUnitTestGeneric\n\n\nclass FunctionsCommand(Remot"
  },
  {
    "path": "tests/commands/gef.py",
    "chars": 4050,
    "preview": "\"\"\"\n`gef` command test module\n\"\"\"\n\nimport pytest\nimport pathlib\n\nfrom tests.base import RemoteGefUnitTestGeneric\nfrom te"
  },
  {
    "path": "tests/commands/gef_remote.py",
    "chars": 2516,
    "preview": "\"\"\"\n`gef_remote` command test module\n\"\"\"\n\nimport random\n\nimport pytest\n\nfrom tests.base import RemoteGefUnitTestGeneric\n"
  },
  {
    "path": "tests/commands/got.py",
    "chars": 2313,
    "preview": "\"\"\"\n`got` command test module\n\"\"\"\n\nimport pytest\n\nfrom tests.base import RemoteGefUnitTestGeneric\n\nfrom tests.utils impo"
  },
  {
    "path": "tests/commands/heap.py",
    "chars": 11931,
    "preview": "\"\"\"\nHeap commands test module\n\"\"\"\n\nimport pytest\nfrom tests.base import RemoteGefUnitTestGeneric\nfrom tests.utils import"
  },
  {
    "path": "tests/commands/heap_analysis.py",
    "chars": 1056,
    "preview": "\"\"\"\n`heap-analysis` command test module\n\"\"\"\n\n\nfrom tests.base import RemoteGefUnitTestGeneric\nfrom tests.utils import ER"
  },
  {
    "path": "tests/commands/hexdump.py",
    "chars": 690,
    "preview": "\"\"\"\n`hexdump` command test module\n\"\"\"\n\n\nfrom tests.base import RemoteGefUnitTestGeneric\nfrom tests.utils import ERROR_IN"
  },
  {
    "path": "tests/commands/highlight.py",
    "chars": 1082,
    "preview": "\"\"\"\n`highlight` command test module\n\"\"\"\n\n\nfrom tests.base import RemoteGefUnitTestGeneric\nfrom tests.utils import Color\n"
  },
  {
    "path": "tests/commands/hijack_fd.py",
    "chars": 324,
    "preview": "\"\"\"\n`hijack_fd` command test module\n\"\"\"\n\n\nfrom tests.base import RemoteGefUnitTestGeneric\n\n\nclass HijackFdCommand(Remote"
  },
  {
    "path": "tests/commands/memory.py",
    "chars": 2736,
    "preview": "\"\"\"\nMemory commands test module\n\"\"\"\n\nfrom tests.base import RemoteGefUnitTestGeneric\nfrom tests.utils import (\n    ERROR"
  },
  {
    "path": "tests/commands/name_break.py",
    "chars": 535,
    "preview": "\"\"\"\n`name-break` command test module\n\"\"\"\n\n\nfrom tests.base import RemoteGefUnitTestGeneric\n\n\nclass NameBreakCommand(Remo"
  },
  {
    "path": "tests/commands/nop.py",
    "chars": 11098,
    "preview": "\"\"\"\n`nop` command test module\n\"\"\"\n\nimport pytest\n\nfrom tests.base import RemoteGefUnitTestGeneric\nfrom tests.utils impor"
  },
  {
    "path": "tests/commands/patch.py",
    "chars": 2543,
    "preview": "\"\"\"\npatch command test module\n\"\"\"\n\n\nfrom tests.base import RemoteGefUnitTestGeneric\nfrom tests.utils import ERROR_INACTI"
  },
  {
    "path": "tests/commands/pattern.py",
    "chars": 3131,
    "preview": "\"\"\"\nPattern commands test module\n\"\"\"\nimport pytest\n\nfrom tests.base import RemoteGefUnitTestGeneric\nfrom tests.utils imp"
  },
  {
    "path": "tests/commands/pcustom.py",
    "chars": 5413,
    "preview": "\"\"\"\npcustom command test module\n\"\"\"\n\nimport tempfile\nimport pathlib\n\nfrom tests.base import RemoteGefUnitTestGeneric\n\nfr"
  },
  {
    "path": "tests/commands/pie.py",
    "chars": 2032,
    "preview": "\"\"\"\n`pie` command test module\n\"\"\"\n\nfrom tests.base import RemoteGefUnitTestGeneric\nfrom tests.utils import debug_target,"
  },
  {
    "path": "tests/commands/print_format.py",
    "chars": 1595,
    "preview": "\"\"\"\nprint-format command test module\n\"\"\"\n\n\nfrom tests.base import RemoteGefUnitTestGeneric\nfrom tests.utils import ERROR"
  },
  {
    "path": "tests/commands/process_search.py",
    "chars": 1281,
    "preview": "\"\"\"\n`process-search` command test module\n\"\"\"\n\n\nfrom tests.base import RemoteGefUnitTestGeneric\nfrom tests.utils import d"
  },
  {
    "path": "tests/commands/process_status.py",
    "chars": 692,
    "preview": "\"\"\"\n`process-status` command test module\n\"\"\"\n\n\nfrom tests.base import RemoteGefUnitTestGeneric\nfrom tests.utils import E"
  },
  {
    "path": "tests/commands/registers.py",
    "chars": 1144,
    "preview": "\"\"\"\n`registers` command test module\n\"\"\"\n\n\nimport pytest\n\nfrom tests.base import RemoteGefUnitTestGeneric\nfrom tests.util"
  },
  {
    "path": "tests/commands/reset_cache.py",
    "chars": 383,
    "preview": "\"\"\"\n`reset-cache` command test module\n\"\"\"\n\n\nfrom tests.base import RemoteGefUnitTestGeneric\n\n\nclass ResetCacheCommand(Re"
  },
  {
    "path": "tests/commands/scan.py",
    "chars": 1000,
    "preview": "\"\"\"\nscan command test module\n\"\"\"\n\nimport pytest\n\nfrom tests.base import RemoteGefUnitTestGeneric\nfrom tests.utils import"
  },
  {
    "path": "tests/commands/search_pattern.py",
    "chars": 1297,
    "preview": "\"\"\"\nsearch_pattern command test module\n\"\"\"\n\n\nfrom tests.base import RemoteGefUnitTestGeneric\nfrom tests.utils import BIN"
  },
  {
    "path": "tests/commands/shellcode.py",
    "chars": 1289,
    "preview": "\"\"\"\nShellcode commands test module\n\"\"\"\nimport pytest\nfrom tests.base import RemoteGefUnitTestGeneric\n\nfrom tests.utils i"
  },
  {
    "path": "tests/commands/skipi.py",
    "chars": 1935,
    "preview": "\"\"\"\n`skipi` command test module\n\"\"\"\n\nimport pytest\n\nfrom tests.base import RemoteGefUnitTestGeneric\nfrom tests.utils imp"
  },
  {
    "path": "tests/commands/smart_eval.py",
    "chars": 687,
    "preview": "\"\"\"\n`smart_eval` command test module\n\"\"\"\n\n\nfrom tests.base import RemoteGefUnitTestGeneric\n\n\nclass SmartEvalCommand(Remo"
  },
  {
    "path": "tests/commands/stepover.py",
    "chars": 1364,
    "preview": "\"\"\"\n`stepover` command test module\n\"\"\"\n\nimport pytest\n\nfrom tests.base import RemoteGefUnitTestGeneric\nfrom tests.utils "
  },
  {
    "path": "tests/commands/stub.py",
    "chars": 1371,
    "preview": "\"\"\"\nstub command test module\n\"\"\"\n\n\nimport pytest\nfrom tests.base import RemoteGefUnitTestGeneric\nfrom tests.utils import"
  },
  {
    "path": "tests/commands/theme.py",
    "chars": 1348,
    "preview": "\"\"\"\ntheme command test module\n\"\"\"\n\n\nfrom tests.base import RemoteGefUnitTestGeneric\n\n\nclass ThemeCommand(RemoteGefUnitTe"
  },
  {
    "path": "tests/commands/trace_run.py",
    "chars": 676,
    "preview": "\"\"\"\ntrace-run command test module\n\"\"\"\n\n\nfrom tests.base import RemoteGefUnitTestGeneric\nfrom tests.utils import TMPDIR, "
  },
  {
    "path": "tests/commands/version.py",
    "chars": 286,
    "preview": "\"\"\"\n`version` command test module\n\"\"\"\n\n\nfrom tests.base import RemoteGefUnitTestGeneric\n\n\nclass VersionCommand(RemoteGef"
  },
  {
    "path": "tests/commands/vmmap.py",
    "chars": 1613,
    "preview": "\"\"\"\nvmmap command test module\n\"\"\"\n\n\nfrom tests.base import RemoteGefUnitTestGeneric\nfrom tests.utils import ERROR_INACTI"
  },
  {
    "path": "tests/commands/xfiles.py",
    "chars": 544,
    "preview": "\"\"\"\n`xfiles` command test module\n\"\"\"\n\n\nfrom tests.base import RemoteGefUnitTestGeneric\nfrom tests.utils import ERROR_INA"
  },
  {
    "path": "tests/commands/xinfo.py",
    "chars": 1129,
    "preview": "\"\"\"\nxinfo command test module\n\"\"\"\n\n\nfrom tests.base import RemoteGefUnitTestGeneric\nfrom tests.utils import ERROR_INACTI"
  },
  {
    "path": "tests/commands/xor_memory.py",
    "chars": 833,
    "preview": "\"\"\"\nxor-memory command test module\n\"\"\"\n\n\nfrom tests.base import RemoteGefUnitTestGeneric\nfrom tests.utils import ERROR_I"
  },
  {
    "path": "tests/config/__init__.py",
    "chars": 3540,
    "preview": "\"\"\"\nTest GEF configuration parameters.\n\"\"\"\n\nimport pathlib\nfrom typing import List\n\nimport pytest\nfrom tests.base import"
  },
  {
    "path": "tests/extended/archlinux.sh",
    "chars": 386,
    "preview": "\n\n#!/bin/bash\nset -e\n# set -x\n# docker run -v /path/to/gef:/gef archlinux:base-20241110.0.278197⁠ \"bash /gef/tests/exten"
  },
  {
    "path": "tests/extended/debian.sh",
    "chars": 474,
    "preview": "#!/bin/bash\nset -e\n# set -x\n# docker run -v /path/to/gef:/gef debian:bookworm \"bash /gef/tests/extended/debian.sh\"\napt u"
  },
  {
    "path": "tests/extended/fedora.sh",
    "chars": 314,
    "preview": "#!/bin/bash\nset -e\n# set -x\n# docker run -v /path/to/gef:/gef fedora:41 \"bash /gef/tests/extended/fedora.sh\"\ndnf install"
  },
  {
    "path": "tests/extended/run_pytest.sh",
    "chars": 424,
    "preview": "#!/bin/bash\nset -e\n\ngit config --global --add safe.directory /gef\ncd /gef\nexport PY_VER=`gdb-multiarch -q -nx -ex \"pi pr"
  },
  {
    "path": "tests/functions/__init__.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "tests/functions/elf_sections.py",
    "chars": 3121,
    "preview": "\"\"\"\nGDB function test module for ELF section convenience functions\n\"\"\"\n\n\nimport pytest\n\nfrom tests.utils import ERROR_IN"
  },
  {
    "path": "tests/perf/__init__.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "tests/perf/benchmark.py",
    "chars": 1413,
    "preview": "\"\"\"\nSimple benchmarking for pytest\n\"\"\"\n\nimport pytest\n\nfrom ..base import RemoteGefUnitTestGeneric\n\n\nclass BenchmarkBasi"
  },
  {
    "path": "tests/pytest.ini",
    "chars": 350,
    "preview": "[pytest]\nlog_level = INFO\nminversion = 6.0\nrequired_plugins =\n    pytest-benchmark\n    pytest-cov\n    pytest-xdist\npytho"
  },
  {
    "path": "tests/regressions/__init__.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "tests/regressions/filename_collision_lookup.py",
    "chars": 801,
    "preview": "import pytest\n\nfrom tests.base import RemoteGefUnitTestGeneric\nfrom tests.utils import debug_target\n\n\nclass RegressionFi"
  },
  {
    "path": "tests/regressions/gdbserver_connection.py",
    "chars": 772,
    "preview": "import pytest\nfrom tests.base import RemoteGefUnitTestGeneric\nfrom tests.utils import (\n    ARCH,\n    IN_GITHUB_ACTIONS,"
  }
]

// ... and 5 more files (download for full content)

About this extraction

This page contains the full source code of the hugsy/gef GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 205 files (3.4 MB), approximately 891.1k tokens, and a symbol index with 1414 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!