From 50899352f394a153982342e20256e89d52246b54 Mon Sep 17 00:00:00 2001 From: Brennan Vincent Date: Wed, 13 May 2026 11:22:00 -0700 Subject: [PATCH] Read correct type for BytecodeArray source_position_table This partially fixes https://github.com/parca-dev/parca-agent/issues/3180 : results now look right for Node v22, but not yet for v24 (there is probably another issue lurking somewhere) --- interpreter/nodev8/v8.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/interpreter/nodev8/v8.go b/interpreter/nodev8/v8.go index 7af17083e..edb4a3cc7 100644 --- a/interpreter/nodev8/v8.go +++ b/interpreter/nodev8/v8.go @@ -1114,9 +1114,13 @@ func (i *v8Instance) getSFI(taggedPtr libpf.Address) (*v8SFI, error) { } else { log.Debugf("Bytecode, %d bytes, not available", length) } + typ := vms.Type.ByteArray + if vms.SourcePositionTable.TrustedByteArray { + typ = vms.Type.TrustedByteArray + } sfi.bytecodePositionTable, err = i.readFixedTablePtr( fdAddr+libpf.Address(vms.BytecodeArray.SourcePositionTable), - vms.Type.ByteArray, 1, 0) + typ, 1, 0) log.Debugf("Bytecode positions: %d bytes: %v", len(sfi.bytecodePositionTable), err) }