Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
d28c4a3
added ruff linter + fixes
hugsy Sep 22, 2024
cde95b3
checkpoint
hugsy Sep 24, 2024
b83586e
removed `Set` and `Tuple` types (replaced with `tuple` and `set`)
hugsy Nov 1, 2024
32311d7
`Union` type -> `|`
hugsy Nov 1, 2024
741ce7c
removed Tuple in tests
hugsy Nov 1, 2024
854912b
Merge branch 'main' into hugsy/lint-fmt
hugsy Nov 2, 2024
f47f51e
fixed type typo
hugsy Nov 2, 2024
d5d544d
`Optional` is optional
hugsy Nov 2, 2024
60be6a1
fixed ruff toml
hugsy Nov 2, 2024
dc28938
revert changes, only focus on py3.10 improvements
hugsy Nov 2, 2024
417ac63
final fixes
hugsy Nov 2, 2024
9fb1d71
added `untracked` dir to gitignore
hugsy Nov 3, 2024
a277661
checkpoint: added new remote modes, gdbserver & gdbserver-multi work
hugsy Nov 3, 2024
6d166f0
checkpoint: added very basic pytests
hugsy Nov 4, 2024
771a598
removed all obsolete code
hugsy Nov 5, 2024
79447be
fixed `gef-remote` from tests, using only `target remote`
hugsy Nov 5, 2024
ea873bb
use `NotImplementedError`
hugsy Nov 7, 2024
4ae683f
plop
hugsy Nov 7, 2024
8130895
minor lint
hugsy Nov 7, 2024
7973a3f
allow mock mem layout for old qemu versions
hugsy Nov 7, 2024
8cc2231
added repr for Gef class
hugsy Nov 8, 2024
2ba9ac7
[tests] use `gdb-multiarch` by default
hugsy Nov 8, 2024
437cbe2
added regression for issue #1131
hugsy Nov 8, 2024
e5a02b1
constantify all the things
hugsy Nov 8, 2024
68fcc1d
officially deprecating `gef-remote`
hugsy Nov 8, 2024
e8527ad
duplicate test line
hugsy Nov 10, 2024
14c35bd
allow gef to save temporary values
hugsy Nov 10, 2024
03f9cf9
Merge branch 'main' into hugsy/revisit-target-remote
hugsy Nov 10, 2024
2a5c585
test fix
hugsy Nov 10, 2024
36c953c
oops
hugsy Nov 10, 2024
68505a6
bleh
hugsy Nov 10, 2024
02af4d4
revert
hugsy Nov 10, 2024
c89c280
damnit
hugsy Nov 10, 2024
77aa954
restored gdb-multiarch as default for tests
hugsy Nov 11, 2024
1d9f897
minor
hugsy Nov 11, 2024
623ebf1
test
hugsy Nov 11, 2024
532e45d
asd
hugsy Nov 11, 2024
fd0bf0a
Merge branch 'hugsy/revisit-target-remote' of https://github.com/hugs…
hugsy Nov 11, 2024
d262ca5
Merge branch 'main' into hugsy/revisit-target-remote
hugsy Nov 11, 2024
7a9e494
Update generate-coverage-docs.sh
hugsy Nov 11, 2024
b9f564f
Update generate-coverage-docs.sh
hugsy Nov 11, 2024
7ea8588
Update coverage.yml
hugsy Nov 11, 2024
7d2ef17
Merge branch 'main' into hugsy/revisit-target-remote
hugsy Apr 5, 2025
b170c41
Merge branch 'main' into hugsy/revisit-target-remote
hugsy Mar 11, 2026
5f53105
Apply suggestions from code review
hugsy Mar 11, 2026
95da20f
Apply suggestion from @hugsy
hugsy Mar 11, 2026
8aa7f9b
Add symbolic link for gdb-multiarch
hugsy Mar 11, 2026
f00fa60
Add curl, unzip, wget to docker install script
hugsy Mar 11, 2026
94c8756
Ensure `target` dir exists
hugsy Mar 11, 2026
3d4a4ef
Typo
hugsy Mar 11, 2026
0fba0d1
test
hugsy Mar 11, 2026
4e78310
2024/2025 -> 2026
hugsy Mar 15, 2026
02a5a69
Drop test from known failure on gdb/fedora
hugsy Mar 18, 2026
487262c
Update docs/commands/gef-remote.md
hugsy Mar 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions .github/tests/setup-dockerfile.sh
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ 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; \
git cmake gcc g++ pkg-config libglib2.0-dev gdbserver qemu-user file curl wget unzip; \
fi

# Install python3-full for Ubuntu 24.04
Expand All @@ -22,9 +22,10 @@ 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 && \
git cmake gcc gcc-c++ pkg-config glib2-devel qemu-user qemu-user-static file procps-ng wget curl unzip && \
dnf --enablerepo='*debug*' install -y glibc-debuginfo && \
dnf clean all; \
ln -s /usr/bin/gdb /usr/bin/gdb-multiarch; \
fi

# Copy only requirements.txt for caching
Expand Down
5 changes: 3 additions & 2 deletions .github/workflows/coverage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
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 -qq -y curl wget 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
Expand All @@ -34,8 +34,9 @@ jobs:
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
python${{ env.PY_VER }} -m pip install --user --upgrade -r tests/requirements.txt -r docs/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')
make -C tests/binaries
bash scripts/generate-coverage-docs.sh
Comment on lines +37 to 40
Copy link

Copilot AI Mar 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The workflow now runs the full test suite for coverage, and this PR adds a test that shells out to wget/unzip. Those packages are not installed in the job currently (only curl is). Either avoid those external dependencies in the test, or install the required packages here to prevent CI failures.

Copilot uses AI. Check for mistakes.
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}')")
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,5 @@ htmlcov
.benchmarks
site/
untracked/
.zed/
Dockerfile
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
The MIT License (MIT)

Copyright (c) 2013-2025 crazy rabbidz
Copyright (c) 2013-65 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
Expand Down
13 changes: 3 additions & 10 deletions docs/commands/gef-remote.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,8 @@
## Command `gef-remote`

[`target remote`](https://sourceware.org/gdb/onlinedocs/gdb/Remote-Debugging.html#Remote-Debugging)
is the traditional GDB way of debugging process or system remotely. However this command by itself
does a limited job (80's bandwidth FTW) to collect more information about the target, making the
process of debugging more cumbersome. GEF greatly improves that state with the `gef-remote` command.

📝 **Note**: If using GEF, `gef-remote` **must** be your way or debugging remote processes, never
`target remote`. Maintainers will provide minimal support or help if you decide to use the
traditional `target remote` command. For many reasons, you **should not** use `target remote` alone
with GEF. It is still important to note that the default `target remote` command has been
overwritten by a minimal copy `gef-remote`, in order to make most tools relying on this command work.
> [!IMPORTANT]
> `gef-remote` is deprecated since 2026.04 in favor of `target remote`.
> The command will be removed in a future release. Do not rely on it.

`gef-remote` can function in 2 ways:

Expand Down
12 changes: 6 additions & 6 deletions docs/compat.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@

This matrix indicates the version of Python and/or GDB

| GEF version | GDB Python compatibility | Python compatibility |
| :--: | :--: | :--: |
| [2018.02](https://github.com/hugsy/gef/releases/tag/2018.02) | 7.2 | Python 2.7, Python 3.4+ |
| [2020.03](https://github.com/hugsy/gef/releases/tag/2020.03) | 7.4 | Python 2.7, Python 3.4+ |
| [2022.01](https://github.com/hugsy/gef/releases/tag/2022.01) | 8.0 | Python 3.6+ |
| [2025.01](https://github.com/hugsy/gef/releases/tag/2025.01) | 10.0 | Python 3.10+ |
| GEF version | GDB Python compatibility | Python compatibility |
| :----------------------------------------------------------: | :----------------------: | :---------------------: |
| [2018.02](https://github.com/hugsy/gef/releases/tag/2018.02) | 7.2 | Python 2.7, Python 3.4+ |
| [2020.03](https://github.com/hugsy/gef/releases/tag/2020.03) | 7.4 | Python 2.7, Python 3.4+ |
| [2022.01](https://github.com/hugsy/gef/releases/tag/2022.01) | 8.0 | Python 3.6+ |
| [2025.01](https://github.com/hugsy/gef/releases/tag/2025.01) | 10.0 | Python 3.10+ |
Loading
Loading