Skip to content

Conversation

@elsakeirouz
Copy link

No description provided.

nsavoire and others added 14 commits April 4, 2025 08:48
When uploading elf symbols, it is sometimes necessary to open a file
other than the reported executalle (eg. to look for separate debug
information).
Starting with Python 3.12, PyGILState_GetThisThreadState calls PyThread_tss_is_created
first before calling PyThread_tss_get.
On default builds of python (without `--enable-optimizations`, `--with-lto`), the calls
to PyThread_tss_is_created and PyThread_tss_get are not inlined, so the value of autoTLSKey
is stored in a register before being passed to both function calls. This causes the decode
disassembler to not find the value in the call instruction.
To work around this, we look into PyGILState_Release which as of Python 3.13,
calls PyThread_tss_get directly.
* support/.gitignore
* support/ebpf/tracer.ebpf.debug.amd64
* support/ebpf/tracer.ebpf.debug.arm64
This change makes systemProcess.Open return `/proc/<profiler_pid>/fd/<elf_fd>`
as actual path instead of `/proc/<process_pid>/map_files/<mapping>`.
The upside of this change is that the new path remains valid even after the
target process has been terminated, while the old path becomes invalid.
If a zero size is provided for the tracehandler cache, the cache will not be
created.
* .github/workflows/unit-test-on-pull-request.yml
* Cargo.lock
* Cargo.toml
* Makefile
* customlabelstest/customlabels_test.go
* host/host.go
* interpreter/customlabels/customlabels.go
* libpf/interpretertype.go
* libpf/pfelf/file.go
* libpf/trace.go
* processmanager/ebpf/ebpf.go
* processmanager/execinfomanager/manager.go
* processmanager/manager.go
* processmanager/manager_test.go
* remotememory/remotememory.go
* rust-crates/custom-labels-example/Cargo.lock
* rust-crates/custom-labels-example/Cargo.toml
* rust-crates/custom-labels-example/build.rs
* rust-crates/custom-labels-example/src/main.rs
* support/ebpf/interpreter_dispatcher.ebpf.c
* support/ebpf/tracemgmt.h
* support/ebpf/tracer.ebpf.debug.amd64
* support/ebpf/tracer.ebpf.debug.arm64
* support/ebpf/tracer.ebpf.debug.amd64
* support/ebpf/tracer.ebpf.release.amd64
* support/ebpf/types.h
* support/ebpf/util.h
* support/types.go
* target/aarch64-unknown-linux-musl/release/libsymblib_capi.a
* target/x86_64-unknown-linux-musl/release/libsymblib_capi.a
* testutils/helpers.go
* tools/coredump/coredump.go
* tracer/ebpf_integration_test.go
* tracer/tracer.go
* host/host.go
* interpreter/customlabels/customlabels.go
* processmanager/manager.go
* reporter/samples/samples.go
* support/ebpf/tracer.ebpf.debug.amd64
* support/ebpf/tracer.ebpf.debug.arm64
* support/ebpf/tracer.ebpf.release.amd64
* support/ebpf/tracer.ebpf.release.arm64
* support/ebpf/types.h
* tracehandler/tracehandler.go
* tracehandler/tracehandler_test.go
* tracer/tracer.go
* interpreter/customlabels/customlabels.go
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants