Skip to content

Instantly share code, notes, and snippets.

@justbitguy
Created November 28, 2015 03:35
Show Gist options
  • Save justbitguy/c90ecd2ee6925863223c to your computer and use it in GitHub Desktop.
Save justbitguy/c90ecd2ee6925863223c to your computer and use it in GitHub Desktop.
void print_stack( int frame_limit = 10)
{
v8::Handle<v8::StackTrace> stackTrace = v8::StackTrace::CurrentStackTrace(GetIsolate(),
frame_limit,
v8::StackTrace::kDetailed);
int frameCount = stackTrace->GetFrameCount();
if (frameCount > 0){
char hMsg[256] = { 0 };
sprintf_s(hMsg, "### stack, frameCount: %d\n", frameCount);
std::string msg(hMsg);
for (int i = 0; i < frameCount; i++){
v8::Handle<v8::StackFrame> stackFrame = stackTrace->GetFrame(i);
if (!stackFrame.IsEmpty()){
char frameMsg[256] = { 0 };
v8::String::Utf8Value funcName(stackFrame->GetFunctionName());
int lineNumber = stackFrame->GetLineNumber();
v8::String::Utf8Value scriptName(stackFrame->GetScriptName());
sprintf_s(frameMsg, "- frame: %d, function: %s, line: %d, script:%s\n", i, *funcName, lineNumber, *scriptName);
msg += frameMsg;
}
}
printf("%s", msg.c_str());
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment