Skip to content

Commit bd15b7e

Browse files
authored
Fix custom labels for node v25 (#165)
1 parent 8f82833 commit bd15b7e

File tree

2 files changed

+11
-4
lines changed

2 files changed

+11
-4
lines changed

interpreter/customlabels/integrationtests/node_test.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,13 +56,14 @@ func TestIntegration(t *testing.T) {
5656
}
5757

5858
for _, nodeVersion := range []string{
59-
// As of today, node:latest is v24.6.0
59+
// As of today, node:latest is v25.0.0
6060
// Eventually, it will be something where the offsets have changed,
6161
// and start failing. At that point, update the list of offsets
62-
// so this passes, and also add a test for the latest v24 if latest
63-
// is on v25 by then.
62+
// so this passes, and also add a test for the latest v25 if latest
63+
// is on v26 by then.
6464
"latest",
6565
"22.19.0",
66+
"24.10.0",
6667
} {
6768
name := "node-" + nodeVersion
6869
t.Run(name, func(t *testing.T) {

interpreter/nodev8/v8.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2127,13 +2127,19 @@ func (d *v8Data) loadNodeClData(ef *pfelf.File) error {
21272127

21282128
major := binary.LittleEndian.Uint32(versBuf[0:4])
21292129

2130+
// These offsets are computed by pointing a libclang script at a Node build directory
2131+
// with a valid compile_commands.json:
2132+
// see e.g. https://gist.github.com/umanwizard/a9e055a7cc1b81248bbf17501c749481 .
21302133
if major >= 22 {
21312134
if major < 24 {
21322135
d.cpedOffset = 576
21332136
d.wrappedObjectOffset = 24
2134-
} else {
2137+
} else if major < 25 {
21352138
d.cpedOffset = 632
21362139
d.wrappedObjectOffset = 32
2140+
} else {
2141+
d.cpedOffset = 640
2142+
d.wrappedObjectOffset = 32
21372143
}
21382144
return nil
21392145
}

0 commit comments

Comments
 (0)