Fix: adding a user space probe fails on thumb functions
authorOlivier Dion <odion@efficios.com>
Wed, 22 Feb 2023 20:19:14 +0000 (15:19 -0500)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Wed, 31 May 2023 21:25:44 +0000 (17:25 -0400)
commit36fdcbb47cd005edd929417360ea94b1e2cf0d9e
tree7096e028f5588c53a25a85e9359755696302a1a4
parent2c287dbe4043a2e116409a9201b83788b465c355
Fix: adding a user space probe fails on thumb functions

On some architectures, calling convention details are embedded in the
symbol addresses. Uprobe requires a "clean" symbol offset (or at least,
an address where an instruction boundary would be legal) to add
instrumentation. sanitize_uprobe_offset implements that sanitization
logic on a per-architecture basis.

The least significant bit is used when branching to switch to thumb ISA.
However, it's an invalid address for us; mask the least significant bit.

We were not masking the thumb bit, thus using the wrong address offset
by one.

Change-Id: Iaff8ccea3a319f9d9ad80501f1beccd74d1ef56d
Signed-off-by: Olivier Dion <odion@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
src/bin/lttng-sessiond/kernel.c
This page took 0.025753 seconds and 4 git commands to generate.