DescriptionFix call stack sampling for the case when native callback invokes JS function
The SafeStackFrameIterator used by CPU profiler checked if Isolate::c_entry_fp is null and if it is not it would think that the control flow currently is in some native code. This assumption is wrong because the native code could have called a JS function but JSEntryStub would not reset c_entry_fp to NULL in that case. This CL adds a check in SafeStackFrameIterator::IsValidTop for the case when there is a JAVA_SCRIPT frame on top of EXIT frame.
Also this CL changes ExternalCallbackScope behavior to provide access to the whole stack of the scope objects instead of only top one. This allowed to provide exact callback names for those EXIT frames where external callbacks are called. Without this change it was possible only for the top most native call.
BUG=None
R=loislo@chromium.org, yangguo@chromium.org
Committed: https://code.google.com/p/v8/source/detail?r=15832
Patch Set 1 #Patch Set 2 : Removed empty line #Patch Set 3 : Fixed tests on Simulator #
Total comments: 2
Patch Set 4 : Comments addressed #
Total comments: 2
Patch Set 5 : Comment addressed #Patch Set 6 : Rebase #Patch Set 7 : Fixed test failure in debug mode #
Messages
Total messages: 8 (0 generated)
|