Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
139 commits
Select commit Hold shift + click to select a range
3360170
libdrgn: only install page table memory reader when supported
osandov Nov 27, 2020
45958c6
Merge branch 'refs/heads/upstream-HEAD' into repo-HEAD
Nov 28, 2020
e39d6ce
travis: add Python 3.9
osandov Dec 2, 2020
a079b38
Merge branch 'refs/heads/upstream-HEAD' into repo-HEAD
Dec 3, 2020
a4dbd7b
libdrgn: remove unused DRGN_NUM_ARCH
osandov Dec 4, 2020
2710b4d
libdrgn: add macros for strict enum switch statements
osandov Dec 4, 2020
edb1fe7
libdrgn: rename drgn_object_kind to drgn_object_encoding
osandov Dec 4, 2020
5f17281
libdrgn: make drgn_object::is_reference an enum
osandov Dec 4, 2020
6bd0c2b
libdrgn: add concept of "unavailable" objects
osandov Dec 4, 2020
97fbede
libdrgn: return unavailable objects for DWARF objects without value o…
osandov Dec 4, 2020
c4b0d31
README: update Travis CI badge to travis-ci.com
osandov Dec 4, 2020
5662ac6
Merge branch 'refs/heads/upstream-HEAD' into repo-HEAD
Dec 5, 2020
ffa2e0a
libdrgn: add missing break in drgn_object_copy()
osandov Dec 9, 2020
168c42d
Merge branch 'refs/heads/upstream-HEAD' into repo-HEAD
Dec 10, 2020
3187453
libdrgn: x86-64: remove unused read
osandov Dec 10, 2020
6e18902
libdrgn: x86-64: pass frame object as const
osandov Dec 10, 2020
51596f4
libdrgn: x86-64: remove garbage initial stack frame on old kernels
osandov Dec 10, 2020
bce9ef5
libdrgn: linux kernel: remove THREAD_SIZE object finder
osandov Dec 10, 2020
22c1d87
libdrgn: cache page_offset and vmemmap as objects instead of uint64_t
osandov Dec 10, 2020
b6e02a8
Merge branch 'refs/heads/upstream-HEAD' into repo-HEAD
Dec 11, 2020
d7c7094
drgndoc: fix unnecessary parentheses around tuple subscripts on Pytho…
osandov Dec 10, 2020
c801e5e
drgndoc: format __init__() signature separately from class
osandov Dec 11, 2020
d495d65
Use @overload for drgn.Object() constructors
osandov Dec 11, 2020
abafdd9
Remove bit_offset from value objects
osandov Dec 11, 2020
738ae2c
libdrgn: pack struct drgn_object better
osandov Dec 14, 2020
c1beac4
Merge branch 'refs/heads/upstream-HEAD' into repo-HEAD
Dec 15, 2020
cf9a068
libdrgn/python: fix reference counting on Type.members and Type.param…
osandov Dec 15, 2020
e72ecd0
libdrgn: replace drgn_program_member_info() with drgn_type_find_member()
osandov Dec 15, 2020
fd04463
libdrgn/python: add Type.member()
osandov Dec 15, 2020
a595e52
libdrgn/python: add Type.has_member()
osandov Dec 15, 2020
40004e5
libdrgn/python: add offsetof()
osandov Dec 16, 2020
b368f81
Merge branch 'refs/heads/upstream-HEAD' into repo-HEAD
Dec 18, 2020
523fd26
libdrgn: don't allow casting to non-scalar types at all
osandov Dec 22, 2020
7d7aa7b
libdrgn/python: remove Type == operator
osandov Dec 22, 2020
e61c582
Merge branch 'refs/heads/upstream-HEAD' into repo-HEAD
Dec 23, 2020
c2eec00
libdrgn/python: use None instead of 0 for TypeMember.bit_field_size
osandov Dec 25, 2020
68b6996
Merge branch 'refs/heads/upstream-HEAD' into repo-HEAD
Dec 26, 2020
30cfa40
libdrgn: rename "unavailable" objects to "absent" objects
osandov Dec 29, 2020
988e9e7
libdrgn/python: add Object.absent_
osandov Dec 29, 2020
95bd3a7
Merge branch 'refs/heads/upstream-HEAD' into repo-HEAD
Dec 30, 2020
1631c11
Migrate to GitHub Actions
osandov Dec 31, 2020
0999084
Merge branch 'refs/heads/upstream-HEAD' into repo-HEAD
Jan 2, 2021
c7af566
libdrgn: deduplicate all types with no members/parameters/enumerators
osandov Jan 2, 2021
d6a840e
libdrgn: deinitialize empty members/parameters/enumerators when dedup…
osandov Jan 7, 2021
b87070f
libdrgn: fix vector_shrink_to_fit() with size 0
osandov Jan 7, 2021
a8be40c
libdrgn: python: fix Program_hold_object() reference leak
osandov Jan 7, 2021
58b7cd4
Merge branch 'refs/heads/upstream-HEAD' into repo-HEAD
Jan 7, 2021
798f088
libdrgn: simplify language fall back handling
osandov Jan 8, 2021
ca76826
libdrgn: rename drgn_type_from_dwarf_child() to drgn_type_from_dwarf_…
osandov Jan 8, 2021
a57c26e
libdrgn: fix zero-length array GCC < 9.0 workaround for qualified types
osandov Jan 8, 2021
85a5605
CI: run apt-get update before apt-get install
osandov Jan 8, 2021
934dd36
libdrgn: remove unused name parameter from drgn_object_from_dwarf_{su…
osandov Jan 8, 2021
3591772
libdrgn: move type definitions in drgn.h
osandov Dec 18, 2020
190062f
libdrgn: get drgn_type_member.bit_field_size through drgn_member_type()
osandov Dec 18, 2020
d35243b
libdrgn: replace lazy types with lazy objects
osandov Dec 18, 2020
be1bb27
libdrgn: debug_info: pass DIE bias when parsing types
osandov Jan 8, 2021
b6958f9
libdrgn: debug_info: move object parsing code in debug_info.c
osandov Jan 8, 2021
352c31e
Add support for C++ template parameters
osandov Jan 9, 2021
f0c3d02
Merge branch 'refs/heads/upstream-HEAD' into repo-HEAD
Jan 9, 2021
277c34e
CONTRIBUTING: add guidelines for good commits
osandov Jan 13, 2021
683df06
Merge branch 'refs/heads/upstream-HEAD' into repo-HEAD
Jan 13, 2021
048952f
libdrgn: x86-64: fix rsp of initial stack frame
osandov Jan 15, 2021
14b252c
Merge branch 'refs/heads/upstream-HEAD' into repo-HEAD
Jan 16, 2021
81a203c
helpers: fix for_each_{possible,online,present}_cpu() on v4.4
osandov Jan 21, 2021
a7962e9
libdrgn: debug_info: pass around Dwfl_Module instead of bias
osandov Jan 21, 2021
2c612ea
libdrgn: fix address of global per-CPU variables with KASLR
osandov Jan 21, 2021
5f170ea
helpers: add per_cpu()
osandov Jan 21, 2021
bbefc57
libdrgn: debug_info: make sure DW_TAG_template_value_parameter has value
osandov Jan 21, 2021
0a396d6
helpers: fix block device helpers on v5.11
osandov Jan 21, 2021
09a9220
setup.py: add 5.11 to vmtest kernels
osandov Jan 22, 2021
e92a22e
Merge branch 'refs/heads/upstream-HEAD' into repo-HEAD
Jan 22, 2021
2977bee
Fix reexport of drgn.__version__
osandov Jan 22, 2021
7c670d6
Remove unused 'type: ignore' comment for pkgutil.read_code()
osandov Jan 22, 2021
9e3b3a3
setup.py: fix black error
osandov Jan 22, 2021
50dbdf1
Merge branch 'refs/heads/upstream-HEAD' into repo-HEAD
Jan 23, 2021
71c6ac6
libdrgn: use drgn_debug_info_module instead of Dwfl_Module in more pl…
osandov Jan 27, 2021
46343ae
libdrgn: get rid of struct drgn_stack_frame
osandov May 13, 2020
e0770fb
Merge branch 'refs/heads/upstream-HEAD' into repo-HEAD
Jan 28, 2021
0d35dec
libdrgn: python: define Py_RETURN_BOOL
osandov Jan 28, 2021
10e6464
libdrgn: python: clean up module creation
osandov Jan 28, 2021
b899a10
Remove register numbers from API and add register aliases
osandov Jan 28, 2021
221a218
libdrgn: add powerpc stack trace support
kamalesh-babulal Nov 27, 2020
24a7085
Merge branch 'refs/heads/upstream-HEAD' into repo-HEAD
Jan 30, 2021
547333d
docs: document GNU Awk version dependency
osandov Feb 9, 2021
6be02d2
Merge branch 'refs/heads/upstream-HEAD' into repo-HEAD
Feb 11, 2021
36df5fc
libdrgn: ppc64: fix fetching cr fields from pt_regs
osandov Feb 17, 2021
9a066b4
docs: mention that default arguments are not yet parsed from DWARF
osandov Feb 17, 2021
f09ab62
drgn 0.0.9
osandov Feb 17, 2021
78316a2
libdrgn: remove half-baked support for complex types
osandov Feb 17, 2021
e3a6a40
Merge branch 'refs/heads/upstream-HEAD' into repo-HEAD
Feb 18, 2021
72b4aa9
libdrgn: clean up object initialization
osandov Feb 18, 2021
9fda010
Track byte order in scalar types instead of objects
osandov Feb 18, 2021
55e3a58
libdrgn: python: use correct member offset when creating object from …
osandov Feb 21, 2021
da1e72f
libdrgn: remove drgn_{,qualified_}type_eq() from drgn.h.in
osandov Feb 21, 2021
3ecb31d
libdrgn: update stale references in drgn_object_slice() comment
osandov Feb 21, 2021
c54ef80
libdrgn: add missing LIBDRGN_PUBLIC exports
osandov Feb 21, 2021
bc06f3a
vmtest: manage: delete temporary install directory
osandov Feb 21, 2021
006b62e
vmtest: manage: use real name for logging, not asyncio
osandov Feb 21, 2021
0e1f855
vmtest: manage: use str() instead of repr() for Path in error message
osandov Feb 21, 2021
aaa98cc
libdrgn: consistently use __ for __attribute__ names
osandov Feb 21, 2021
85dec2b
tests: move C-specific tests from test_object to test_language_c
osandov Feb 22, 2021
29610b6
Merge branch 'refs/heads/upstream-HEAD' into repo-HEAD
Feb 22, 2021
c22e501
libdrgn: debug_info: fix parsing specifications of declarations
jgkamat Feb 22, 2021
4f85e15
Merge branch 'refs/heads/upstream-HEAD' into repo-HEAD
Feb 26, 2021
e04eda9
libdrgn: define HOST_LITTLE_ENDIAN
osandov Feb 23, 2021
25eb2ab
libdrgn: add drgn_platform getters
osandov Feb 23, 2021
98e1947
libdrgn: require non-NULL drgn_architecture_info::register_by_name
osandov Feb 23, 2021
b5ed892
Fix some include-what-you-use warnings and update for Bear 3
osandov Feb 23, 2021
4680b93
libdrgn: improve truncate_signed() and truncate_unsigned()
osandov Jan 27, 2021
4732901
Merge branch 'refs/heads/upstream-HEAD' into repo-HEAD
Feb 27, 2021
a24c0f5
libdrgn: clean up usage of drgn_stop
osandov Mar 5, 2021
ca1a259
libdrgn: python: add missing function name to Object.format_() except…
osandov Mar 8, 2021
3823b21
libdrgn: dwarf_index: uses DIE address instead of section offset
jgkamat Nov 14, 2020
4552d78
libdrgn: debug_info: try to find DIE specification when parsing type
jgkamat Mar 5, 2021
56af484
Merge branch 'refs/heads/upstream-HEAD' into repo-HEAD
Mar 9, 2021
56c4003
setup.py: add 5.12 to vmtest kernels
osandov Mar 9, 2021
b0780b4
Merge branch 'refs/heads/upstream-HEAD' into repo-HEAD
Mar 10, 2021
7eab40a
libdrgn: rename drgn_error_debug_info() to drgn_error_debug_info_scn()
osandov Mar 10, 2021
e5219b1
libdrgn: binary_buffer: add binary_buffer_next_sleb128()
osandov Nov 13, 2020
b55a5f7
libdrgn: binary_buffer: add binary_buffer_next_sN()
osandov Jan 27, 2021
b0a6d12
libdrgn: binary_buffer: add binary_buffer_next_[us]int()
osandov Jan 20, 2021
744cc41
libdrgn: add copy_lsbytes()
osandov Mar 10, 2021
6065fc8
libdrgn: debug_info: save .debug_frame, .eh_frame, .text, and .got
osandov Nov 13, 2020
cc1a560
libdrgn: debug_info: save platform per module
osandov Nov 28, 2020
0a6aaaa
libdrgn: define structure for storing processor register values
osandov Feb 9, 2021
fdaf779
libdrgn: add DWARF call frame information parsing
osandov Jan 20, 2021
35a1af7
libdrgn: add DWARF expression evaluation
osandov Mar 10, 2021
eec6776
libdrgn: replace elfutils DWARF unwinder with our own
osandov Mar 10, 2021
af9974f
Merge branch 'refs/heads/upstream-HEAD' into repo-HEAD
Mar 16, 2021
4c5c5f3
Remove bundled version of elfutils
osandov Mar 14, 2021
671947d
libdrgn: remove unused drgn_program::attached_dwfl_state
osandov Mar 16, 2021
38d4330
libdrgn: clean up stale comment references and Doxygen warnings
osandov Mar 16, 2021
55354b3
libdrgn: use flexible array for pgtable_iterator::arch
osandov Mar 16, 2021
da02800
libdrgn: python: identify bit fields in TypeMember.__repr__
osandov Mar 17, 2021
4813201
debian packaging: be explicit about our dependencies
sdimitro Mar 20, 2021
a68abd5
libdrgn: stretch minimum supported version of libelf to 0.170
sdimitro Mar 20, 2021
e5bc41f
libdrgn: add latest elf.h and dwarf.h to support elfutils 0.165
osandov Mar 22, 2021
72529f1
Merge pull request #21 from sdimitro/drgn_libdwdev_dep
sdimitro Mar 22, 2021
dc88f4e
Merge branch 'refs/heads/upstream-HEAD' into repo-HEAD
Mar 23, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
41 changes: 41 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: CI

on: [push, pull_request]

jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [3.9, 3.8, 3.7, 3.6]
fail-fast: false
steps:
- uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install busybox-static libelf-dev libdw-dev qemu-kvm zstd
pip install mypy
- name: Generate version.py
run: python setup.py --version
- name: Check with mypy
run: mypy --strict --no-warn-return-any drgn _drgn.pyi
- name: Build and test
run: python setup.py test -K

lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
- name: Install dependencies
run: pip install black isort
- name: Check with black
run: black --check --diff .
- name: Check with isort
run: isort --check --diff .
43 changes: 0 additions & 43 deletions .travis.yml

This file was deleted.

34 changes: 34 additions & 0 deletions CONTRIBUTING.rst
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,40 @@ Submitting PRs
Pull requests and issues are always welcome. Feel free to start a discussion
with a prototype.

Signing Off
^^^^^^^^^^^

All commits must be signed off (i.e., ``Signed-off-by: Jane Doe
<[email protected]>``) as per the `Developer Certificate of Origin
<https://developercertificate.org/>`_. ``git commit -s`` can do this for you.

Separating Changes
^^^^^^^^^^^^^^^^^^

Each logical change should be a separate commit. For example, if a PR adds new
functionality to the core library and a new helper that uses the new
functionality, the core change and the helper should be separate commits. This
makes code review much easier.

Each commit should build, pass tests, follow coding guidelines, and run
correctly. (In other words, within a PR, later commits often build on top of
earlier commits, but later commits shouldn't need to "fix" earlier commits.)
This makes it easier to track down problems with tools like ``git bisect``
which may check out any commit in the middle of a PR.

Commit Messages
^^^^^^^^^^^^^^^

The template for a good commit message is:

.. code-block:: none

One line summary

Longer explanation including more details, background, and/or
motivation.

Signed-off-by: Jane Doe <[email protected]>

See `this post <https://chris.beams.io/posts/git-commit/>`_ for more
information about writing good commit messages.
12 changes: 6 additions & 6 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ drgn
:target: https://pypi.org/project/drgn/
:alt: PyPI

.. image:: https://travis-ci.org/osandov/drgn.svg?branch=master
:target: https://travis-ci.org/osandov/drgn
:alt: Build Status
.. image:: https://github.com/osandov/drgn/workflows/CI/badge.svg
:target: https://github.com/osandov/drgn/actions
:alt: CI Status

.. image:: https://readthedocs.org/projects/drgn/badge/?version=latest
:target: https://drgn.readthedocs.io/en/latest/?badge=latest
Expand Down Expand Up @@ -62,13 +62,13 @@ Arch Linux:

.. code-block:: console

$ sudo pacman -S --needed autoconf automake bison bzip2 flex gawk gcc libtool make pkgconf python python-setuptools xz zlib
$ sudo pacman -S --needed autoconf automake gawk gcc libelf libtool make pkgconf python python-setuptools

Debian/Ubuntu:

.. code-block:: console

$ sudo apt-get install autoconf automake bison flex gawk gcc libbz2-dev liblzma-dev libtool make pkgconf python3 python3-dev python3-setuptools zlib1g-dev
$ sudo apt-get install autoconf automake gawk gcc libelf-dev libdw-dev libtool make pkgconf python3 python3-dev python3-setuptools

Note that Debian Stretch, Ubuntu Trusty, and Ubuntu Xenial (and older) ship
Python versions which are too old. Python 3.6 or newer must be installed
Expand All @@ -78,7 +78,7 @@ Fedora:

.. code-block:: console

$ sudo dnf install autoconf automake bison bzip2-devel flex gawk gcc libtool make pkgconf python3 python3-devel python3-setuptools xz-devel zlib-devel
$ sudo dnf install autoconf automake elfutils-devel gawk gcc libtool make pkgconf python3 python3-devel python3-setuptools

Optionally, install:

Expand Down
Loading