Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Various fixes to node/V8 #333

Open
wants to merge 8 commits into
base: main
Choose a base branch
from
Open

Conversation

umanwizard
Copy link
Contributor

This PR brings us up to date with the latest origin/main of Node.

@umanwizard umanwizard requested review from a team as code owners January 29, 2025 21:13
// that manually here.
vms.ScopeInfo.HeapObject = true
}
if d.version >= v8Ver(12, 5, 0) && !vms.DeoptimizationData.FixedArray && !vms.DeoptimizationData.TrustedFixedArray {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you also update the list of supported versions near the start of the file?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

Copy link
Member

@christos68k christos68k left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's few lint errors that should be fixed, otherwise LGTM

@umanwizard umanwizard force-pushed the v8 branch 2 times, most recently from 0820df7 to 7716075 Compare February 4, 2025 23:05
@@ -414,9 +425,20 @@ type v8Data struct {
Flags uint16 `name:"flags__uint32_t"`
}

DeoptimizationData struct {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you add a link to the origin of this struct? Similar to the other structs above?
Also please for SourcePositionTable and SharedFunctionInfoWrapper.

@@ -1877,6 +1932,26 @@ func (d *v8Data) readIntrospectionData(ef *pfelf.File, syms libpf.SymbolFinder)
}

// Add some defaults when needed
if d.version >= v8Ver(11, 9, 0) {
// the class hierarchy changed: HeapObject no longer
// derives from Object. This confuses gen-postmortem-metadata.py
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Neat script - maybe we should name it more prominently somewhere to help people dig into this unwinder.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We do mention it in the main comment at the top of the file: https://github.com/open-telemetry/opentelemetry-ebpf-profiler/blob/44a0c25/interpreter/nodev8/v8.go#L28-L33

as well as various other places throughout v8.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