Repository navigation
C++ entry points not captured during profiling #29804
Description
Activity
DullReferenceException commented
on Oct 1, 2019 AuthorMore actionsOne possible clue: I do see C++ function names in the raw profiling logs; they're just not making their way to the
--prof-processoutput.I can’t reproduce this on x64 Linux. Can you figure out which Node.js versions this affects (in particular, whether v12.10.0 has the same issue), and whether this depends on the script you’re profiling?
DullReferenceException commented
on Oct 1, 2019 AuthorMore actionsIt's happening for both node 10 and 12 for me. The versions I've tried are:
v10.15.3 - This used to work but stopped capturing C++ data for some reason
v10.16.3 - Tried to upgrade to latest LTS; same issue
v12.11.1 - Tried latest version, same issueI suspect that there might be some environmental factor causing this issue, but I can't determine what that would be. I'm saying this because v10.15.3's profiling used to work fine.
One environmental change that occurred before this started happening is that I tried to enable dtrace inside of SIP using
csrutil, and that's when this started happening. But after resetting SIP (csrutil reset) and even turning off SIP (csrutil disable), the problem persists, so I'm not 100% sure it relates to that. Maybe is a good hint for macOS experts?- addedmacosIssues and PRs related to the macOS platform.Issues and PRs related to the macOS platform.
on Oct 1, 2019 @nodejs/platform-macos
@devnexen Whats' your platform? i.e. what macos/darwin version?
18.7.0, last one
DullReferenceException commented
on Oct 1, 2019 AuthorMore actionsWould my
--proflog file be helpful? It's 10MB or so.What do
c++filt --version,nm --versionandwhich c++filt nmprint on your system? The log file processor calls out to them to look up and demangle C++ symbols.DullReferenceException commented
on Oct 2, 2019 AuthorMore actions» c++filt --version GNU c++filt 070207 20070207 Copyright 2005 Free Software Foundation, Inc. This program is free software; you may redistribute it under the terms of the GNU General Public License. This program has absolutely no warranty. » nm --version Agreeing to the Xcode/iOS license requires admin privileges, please run “sudo xcodebuild -license” and then retry this command. » which c++filt nm /usr/bin/c++filt /usr/bin/nmMaybe that second message is what's mucking things up. Trying again after accepting the license...
Reacted by David CARLIERDullReferenceException commented
on Oct 2, 2019 AuthorMore actionsAmazing, that was it! So perhaps an upgrade occurred and a new agreement requirement was injected without my knowledge.
Would there be a way for the profiler to notify users like me when this sort of thing occurs?
- added a commit that references this issue
on Oct 3, 2019 - added a commit that references this issue
on Oct 6, 2019 - added a commit that references this issue
on Oct 9, 2019

When capturing profiling information via
node --profthen processing vianode --prof-process, the C++ entry points section is blank, and just the node binary is shown in the bottom-up profile. Even in the summary, it shows 0 ticks for C++:I have seen more details before when using the profiling available in the CLI. While processing the profiling data, I see a lot of
Code move event for unknown codemessages output, so maybe this relates?node --cpu-profalso seems to omit these details.