drgn/libdrgn
Omar Sandoval abafdd965f Remove bit_offset from value objects
There are a couple of reasons that it was the wrong choice to have a
bit_offset for value objects:

1. When we store a buffer with a bit_offset, we're storing useless
   padding bits.
2. bit_offset describes a location, or in other words, part of an
   address. This makes sense for references, but not for values, which
   are just a bag of bytes.

Get rid of union drgn_value.bit_offset in libdrgn, make
Object.bit_offset None for value objects, and disallow passing
bit_offset to the Object() constructor when creating a value. bit_offset
can still be passed when creating an object from a buffer, but we'll
shift the bytes down as necessary to store the value with no offset.

Signed-off-by: Omar Sandoval <osandov@osandov.com>
2020-12-14 12:29:17 -08:00
..
build-aux libdrgn/python: add Qualifiers.NONE and stop using Optional[Qualifiers] 2020-08-27 11:31:29 -07:00
elfutils Update elfutils and revert activation frame patch 2020-05-20 13:38:49 -07:00
examples libdrgn: add load_debug_info example program 2020-07-10 16:18:58 -07:00
include Update copyright headers to Facebook and add missing headers 2020-05-15 15:13:02 -07:00
m4 libdrgn: build with bundled elfutils 2019-09-19 11:07:12 -07:00
python Remove bit_offset from value objects 2020-12-14 12:29:17 -08:00
.gitignore Document with Sphinx 2019-04-11 12:48:15 -07:00
arch_x86_64.c.in Remove bit_offset from value objects 2020-12-14 12:29:17 -08:00
binary_buffer.c libdrgn: report better errors when parsing DWARF/kmod index 2020-11-13 17:00:07 -08:00
binary_buffer.h libdrgn: report better errors when parsing DWARF/kmod index 2020-11-13 17:00:07 -08:00
binary_search_tree.h Clean up #includes with include-what-you-use 2020-09-23 16:29:42 -07:00
bitops.h libdrgn: split bit operations into their own header 2020-10-09 17:44:15 -07:00
cityhash.h Update copyright headers to Facebook and add missing headers 2020-05-15 15:13:02 -07:00
configure.ac drgn 0.0.8 2020-11-11 13:32:04 -08:00
debug_info.c Remove bit_offset from value objects 2020-12-14 12:29:17 -08:00
debug_info.h libdrgn: report better errors when parsing DWARF/kmod index 2020-11-13 17:00:07 -08:00
Doxyfile libdrgn: fix Doxygen 2020-09-30 01:32:33 -07:00
drgn.h.in Remove bit_offset from value objects 2020-12-14 12:29:17 -08:00
dwarf_index.c libdrgn: report better errors when parsing DWARF/kmod index 2020-11-13 17:00:07 -08:00
dwarf_index.h libdrgn: fix Doxygen 2020-09-30 01:32:33 -07:00
error.c libdrgn: add concept of "unavailable" objects 2020-12-04 13:58:19 -08:00
error.h libdrgn: add concept of "unavailable" objects 2020-12-04 13:58:19 -08:00
hash_table.c Update copyright headers to Facebook and add missing headers 2020-05-15 15:13:02 -07:00
hash_table.h libdrgn: clean up hash function APIs and improve documentation 2020-10-12 16:20:08 -07:00
helpers.h Clean up #includes with include-what-you-use 2020-09-23 16:29:42 -07:00
kdump.c Clean up #includes with include-what-you-use 2020-09-23 16:29:42 -07:00
language_c.c Remove bit_offset from value objects 2020-12-14 12:29:17 -08:00
language.c Clean up #includes with include-what-you-use 2020-09-23 16:29:42 -07:00
language.h Clean up #includes with include-what-you-use 2020-09-23 16:29:42 -07:00
lexer.c Clean up #includes with include-what-you-use 2020-09-23 16:29:42 -07:00
lexer.h Clean up #includes with include-what-you-use 2020-09-23 16:29:42 -07:00
linux_kernel_helpers.c libdrgn: add {min,max}_iconst() and rewrite min() and max() 2020-10-10 23:48:03 -07:00
linux_kernel.c Remove bit_offset from value objects 2020-12-14 12:29:17 -08:00
linux_kernel.h libdrgn: linux kernel: remove THREAD_SIZE object finder 2020-12-10 02:08:13 -08:00
Makefile.am libdrgn: report better errors when parsing DWARF/kmod index 2020-11-13 17:00:07 -08:00
memory_reader.c libdrgn: add {min,max}_iconst() and rewrite min() and max() 2020-10-10 23:48:03 -07:00
memory_reader.h libdrgn: fix Doxygen 2020-09-30 01:32:33 -07:00
minmax.h libdrgn: add {min,max}_iconst() and rewrite min() and max() 2020-10-10 23:48:03 -07:00
object_index.c Clean up #includes with include-what-you-use 2020-09-23 16:29:42 -07:00
object_index.h libdrgn: fold drgn_type_index into drgn_program 2020-08-26 17:36:35 -07:00
object.c Remove bit_offset from value objects 2020-12-14 12:29:17 -08:00
object.h Remove bit_offset from value objects 2020-12-14 12:29:17 -08:00
path.c Clean up #includes with include-what-you-use 2020-09-23 16:29:42 -07:00
path.h libdrgn: fix Doxygen 2020-09-30 01:32:33 -07:00
platform.c libdrgn: add macros for strict enum switch statements 2020-12-04 12:02:23 -08:00
platform.h libdrgn: cache page_offset and vmemmap as objects instead of uint64_t 2020-12-10 02:40:07 -08:00
pp.h libdrgn: add preprocessor utility macros 2020-10-09 16:36:59 -07:00
program.c libdrgn: cache page_offset and vmemmap as objects instead of uint64_t 2020-12-10 02:40:07 -08:00
program.h libdrgn: cache page_offset and vmemmap as objects instead of uint64_t 2020-12-10 02:40:07 -08:00
serialize.c libdrgn: add {min,max}_iconst() and rewrite min() and max() 2020-10-10 23:48:03 -07:00
serialize.h Update copyright headers to Facebook and add missing headers 2020-05-15 15:13:02 -07:00
siphash.h Update copyright headers to Facebook and add missing headers 2020-05-15 15:13:02 -07:00
splay_tree.c Clean up #includes with include-what-you-use 2020-09-23 16:29:42 -07:00
stack_trace.c libdrgn: make drgn_object::is_reference an enum 2020-12-04 13:37:58 -08:00
string_builder.c libdrgn: add {min,max}_iconst() and rewrite min() and max() 2020-10-10 23:48:03 -07:00
string_builder.h Clean up #includes with include-what-you-use 2020-09-23 16:29:42 -07:00
symbol.c Clean up #includes with include-what-you-use 2020-09-23 16:29:42 -07:00
symbol.h Update copyright headers to Facebook and add missing headers 2020-05-15 15:13:02 -07:00
type.c libdrgn: rename drgn_object_kind to drgn_object_encoding 2020-12-04 12:02:26 -08:00
type.h libdrgn: rename drgn_object_kind to drgn_object_encoding 2020-12-04 12:02:26 -08:00
util.h libdrgn: add macros for strict enum switch statements 2020-12-04 12:02:23 -08:00
vector.c Update copyright headers to Facebook and add missing headers 2020-05-15 15:13:02 -07:00
vector.h Clean up #includes with include-what-you-use 2020-09-23 16:29:42 -07:00