drgn/libdrgn
Omar Sandoval 3add6fe59f libdrgn: determine number of OpenMP threads lazily
libomp leaks memory on fork (see __kmp_atfork_child() in
llvm-project/openmp/src/z_Linux_util.cpp), which doesn't really matter
except that it causes our new C unit tests to fail under LeakSanitizer
because libdrgn has a constructor that calls omp_get_max_threads(). We
could work around it by using CK_NOFORK in the unit tests, but it's not
ideal for us to go digging in sysfs on process startup just because you
linked to libdrgn anyways. Initialize the number of threads when we
actually need it instead, which just requires some care around
concurrency.

Signed-off-by: Omar Sandoval <osandov@osandov.com>
2024-06-28 23:13:58 -07:00
..
build-aux Add scaffolding for libdrgn C unit tests 2024-04-26 14:53:53 -07:00
examples libdrgn: examples: load_debug_info: fix build due to headers not being found 2024-05-02 01:07:40 -07:00
include libdrgn: wrap system elf.h instead of vendoring 2023-08-24 13:27:38 -07:00
m4 libdrgn: pp: make PP_NARGS() expand to 0 2024-04-26 14:53:53 -07:00
python Allow naming and configuring order of object finders 2024-06-05 13:40:26 -07:00
tests Convert scripts/test_cityhash.c to C unit test 2024-06-20 23:34:14 -07:00
.gitignore libdrgn: use memswitch for linux_kernel_object_find 2022-02-08 02:03:11 -08:00
arch_aarch64_defs.py Add StackFrame.sp 2022-11-22 18:47:16 -08:00
arch_aarch64.c libdrgn: aarch64: Apply TBI to virtual addresses 2024-01-16 13:11:50 -08:00
arch_arm.c Relicense drgn from GPLv3+ to LGPLv2.1+ 2022-11-01 17:05:16 -07:00
arch_i386.c Relicense drgn from GPLv3+ to LGPLv2.1+ 2022-11-01 17:05:16 -07:00
arch_ppc64_defs.py Add StackFrame.sp 2022-11-22 18:47:16 -08:00
arch_ppc64.c libdrgn: ppc64: use DRGN_ERROR_NOT_IMPLEMENTED when virtual address translation is not supported 2024-03-20 15:21:25 -07:00
arch_riscv.c Relicense drgn from GPLv3+ to LGPLv2.1+ 2022-11-01 17:05:16 -07:00
arch_s390x_defs.py libdrgn: add s390x unwinding support 2022-12-19 13:48:44 -08:00
arch_s390x.c libdrgn: enable -Wshadow 2024-06-20 23:34:14 -07:00
arch_x86_64_defs.py Add StackFrame.sp 2022-11-22 18:47:16 -08:00
arch_x86_64.c libdrgn: x86_64: avoid recursive address translation for swapper_pg_dir 2024-05-30 11:56:23 -07:00
array.h libdrgn: factor is_array() macro out of array_size() 2024-01-04 14:42:59 -08:00
binary_buffer.c Relicense drgn from GPLv3+ to LGPLv2.1+ 2022-11-01 17:05:16 -07:00
binary_buffer.h Relicense drgn from GPLv3+ to LGPLv2.1+ 2022-11-01 17:05:16 -07:00
binary_search_tree.h libdrgn: binary_search_tree: use a slightly different terminating loop hack 2023-09-13 15:53:11 -07:00
bitops.h python: add TypeKindSet 2024-06-05 13:40:26 -07:00
c_lexer.h Translate C lexer tests to C unit tests 2024-04-26 14:53:53 -07:00
cfi.c Relicense drgn from GPLv3+ to LGPLv2.1+ 2022-11-01 17:05:16 -07:00
cfi.h Relicense drgn from GPLv3+ to LGPLv2.1+ 2022-11-01 17:05:16 -07:00
cityhash.h libdrgn: enable -Wshadow 2024-06-20 23:34:14 -07:00
cleanup.h libdrgn: add _cleanup_fclose_ scope guard 2023-08-17 15:42:13 -07:00
configure.ac libdrgn: enable -Wshadow 2024-06-20 23:34:14 -07:00
debug_info.c libdrgn: enable -Wshadow 2024-06-20 23:34:14 -07:00
debug_info.h Allow naming and configuring order of object finders 2024-06-05 13:40:26 -07:00
Doxyfile libdrgn: add read(2) and pread(2) wrappers that don't return short reads 2022-08-26 12:43:20 -07:00
drgn_program_parse_vmcoreinfo.inc.strswitch libdrgn: fix stray double semicolon 2024-06-21 14:02:00 -07:00
drgn.h Allow naming and configuring order of object finders 2024-06-05 13:40:26 -07:00
dwarf_constants.c libdrgn: dwarf_info: expand unknown DWARF expression opcode 2023-09-28 11:56:11 -07:00
dwarf_constants.h libdrgn: dwarf_info: expand unknown DWARF expression opcode 2023-09-28 11:56:11 -07:00
dwarf_info.c libdrgn: determine number of OpenMP threads lazily 2024-06-28 23:13:58 -07:00
dwarf_info.h libdrgn: dwarf_info: index type units from split DWARF files 2024-03-01 14:37:47 -08:00
elf_file.c libdrgn: factor out ELF note parsing 2024-06-20 14:34:20 -07:00
elf_file.h libdrgn: factor out ELF note parsing 2024-06-20 14:34:20 -07:00
error.c libdrgn: string_builder: add STRING_BUILDER scope guard 2023-10-07 22:30:38 -07:00
error.h libdrgn: string_builder: add STRING_BUILDER scope guard 2023-10-07 22:30:38 -07:00
generics.h libdrgn: add macros for defining types conditionally 2023-08-16 14:13:54 -07:00
handler.c libdrgn: add interface for registering chains of named handlers 2024-06-05 13:40:26 -07:00
handler.h libdrgn: add interface for registering chains of named handlers 2024-06-05 13:40:26 -07:00
hash_table.c Relicense drgn from GPLv3+ to LGPLv2.1+ 2022-11-01 17:05:16 -07:00
hash_table.h libdrgn: enable -Wpointer-arith 2024-06-20 23:34:14 -07:00
helpers.h libdrgn: rework linux_helper_task_iterator based on kernel's for_each_process_thread() 2023-11-18 10:23:50 -08:00
io.c Relicense drgn from GPLv3+ to LGPLv2.1+ 2022-11-01 17:05:16 -07:00
io.h Relicense drgn from GPLv3+ to LGPLv2.1+ 2022-11-01 17:05:16 -07:00
kdump.c libdrgn: kdump: fix build with libkdumpfile < 0.4.1 2024-06-24 14:01:28 -07:00
language_c.c Translate C lexer tests to C unit tests 2024-04-26 14:53:53 -07:00
language.c Relicense drgn from GPLv3+ to LGPLv2.1+ 2022-11-01 17:05:16 -07:00
language.h Relicense drgn from GPLv3+ to LGPLv2.1+ 2022-11-01 17:05:16 -07:00
lazy_object.c Relicense drgn from GPLv3+ to LGPLv2.1+ 2022-11-01 17:05:16 -07:00
lazy_object.h Relicense drgn from GPLv3+ to LGPLv2.1+ 2022-11-01 17:05:16 -07:00
lexer.c libdrgn: revamp generic vector API 2023-08-16 14:13:38 -07:00
lexer.h Translate C lexer tests to C unit tests 2024-04-26 14:53:53 -07:00
linux_kernel_helpers.c libdrgn: rework linux_helper_task_iterator based on kernel's for_each_process_thread() 2023-11-18 10:23:50 -08:00
linux_kernel_object_find.inc.strswitch libdrgn: linux_kernel: deduplicate kernel-specific program setup 2024-06-05 13:40:26 -07:00
linux_kernel.c libdrgn: factor out ELF note parsing 2024-06-20 14:34:20 -07:00
linux_kernel.h libdrgn: linux_kernel: deduplicate kernel-specific program setup 2024-06-05 13:40:26 -07:00
log.c libdrgn: add simple logging framework 2023-07-18 12:47:34 -07:00
log.h libdrgn: log: fix typos in drgn_error_log_{critical,error}() 2023-10-11 14:35:10 -07:00
Makefile.am Convert scripts/test_cityhash.c to C unit test 2024-06-20 23:34:14 -07:00
memory_reader.c libdrgn: memory_reader: indicate when fault is for physical memory 2024-03-08 02:23:30 -08:00
memory_reader.h libdrgn: require semicolon after DEFINE_{HASH,VECTOR,BINARY_SEARCH_TREE}* 2023-08-02 14:54:59 -07:00
minmax.h libdrgn: get rid of compatible type requirement for {min,max}_iconst() 2023-08-16 14:12:11 -07:00
nstring.h Relicense drgn from GPLv3+ to LGPLv2.1+ 2022-11-01 17:05:16 -07:00
object.c libdrgn: enable -Wshadow 2024-06-20 23:34:14 -07:00
object.h Allow naming and configuring order of object finders 2024-06-05 13:40:26 -07:00
openmp.c libdrgn: determine number of OpenMP threads lazily 2024-06-28 23:13:58 -07:00
openmp.h libdrgn: determine number of OpenMP threads lazily 2024-06-28 23:13:58 -07:00
orc_info.c libdrgn: orc_info: don't assume ORC section alignment 2023-08-21 15:18:26 -07:00
orc_info.h libdrgn: orc_info: handle ORC changes in Linux 6.3 and 6.4 2023-06-22 15:27:39 -07:00
orc.h libdrgn: orc_info: handle ORC changes in Linux 6.3 and 6.4 2023-06-22 15:27:39 -07:00
path.c Relicense drgn from GPLv3+ to LGPLv2.1+ 2022-11-01 17:05:16 -07:00
path.h Relicense drgn from GPLv3+ to LGPLv2.1+ 2022-11-01 17:05:16 -07:00
platform.c libdrgn: add stub s390 and s390x architectures with relocation implementation 2022-12-19 13:48:44 -08:00
platform.h libdrgn: aarch64: Apply TBI to virtual addresses 2024-01-16 13:11:50 -08:00
pp.h libdrgn: pp: add PP_MAP() to call a macro on each variable argument 2024-04-26 14:53:53 -07:00
program.c libdrgn: get initial registers for kdump from crash_notes variable 2024-06-20 14:34:20 -07:00
program.h libdrgn: get initial registers for kdump from crash_notes variable 2024-06-20 14:34:20 -07:00
register_state.c libdrgn: embed drgn_debug_info in drgn_program 2023-10-02 11:27:36 -07:00
register_state.h libdrgn: add drgn_register_state_dup() 2023-08-24 16:05:23 -07:00
serialize.c Relicense drgn from GPLv3+ to LGPLv2.1+ 2022-11-01 17:05:16 -07:00
serialize.h libdrgn: support value objects with >64-bit integer types 2023-08-02 14:21:46 -07:00
splay_tree.c Relicense drgn from GPLv3+ to LGPLv2.1+ 2022-11-01 17:05:16 -07:00
stack_trace.c libdrgn: get initial registers for kdump from crash_notes variable 2024-06-20 14:34:20 -07:00
stack_trace.h Relicense drgn from GPLv3+ to LGPLv2.1+ 2022-11-01 17:05:16 -07:00
string_builder.c libdrgn: string_builder: add STRING_BUILDER scope guard 2023-10-07 22:30:38 -07:00
string_builder.h libdrgn: string_builder: add STRING_BUILDER scope guard 2023-10-07 22:30:38 -07:00
symbol.c python: Add Program.add_symbol_finder() 2024-03-11 16:43:43 -07:00
symbol.h Allow naming and configuring order of symbol finders 2024-06-05 13:40:26 -07:00
type.c Allow naming and configuring order of type finders 2024-06-05 13:40:26 -07:00
type.h Allow naming and configuring order of type finders 2024-06-05 13:40:26 -07:00
util.h libdrgn: add malloc_flexible_array() macro 2024-01-04 14:42:59 -08:00
vector.h libdrgn: vector: fix vector_max_size 2024-04-07 09:53:33 -07:00