Files
Webcam/include/modules/viewer_base/viewer_base_vmhook.cpp

37 lines
1.6 KiB
C++

/* -----------------------------------------------------------------------------
GSFramework
Copyright 2001-2013 Emmanuel Julien. All Rights Reserved.
----------------------------------------------------------------------------- */
#include "viewer_base/viewer_base_vmhook.h"
#include "viewer_base/viewer_base.h"
using namespace GS;
using namespace GS::Script;
//------------------------------------------------------------------------------
void ViewerEventHookTable::OnStep(char type, const char *source, int line, const char *funcname)
{}
void ViewerEventHookTable::Kill(const char *reason)
{ viewer->DisplayUserMessage(ViewerBase::MessageWarning, String::Format("The script VM was killed:\n\n%s", reason)); }
void ViewerEventHookTable::OnCompilerError(const char *error, const char *source, int line)
{ viewer->DisplayUserMessage(ViewerBase::MessageNormal, String::Format("Script compiler error.\n\nSource: %s\nLine: %d\n\n%s", source, line, error)); }
void ViewerEventHookTable::OnRuntimeException(const char *error)
{
String msg = String::Format("Script runtime exception:\n\n%s", error);
AutoList <IVM::CallStackEntry *> callstack;
viewer->project->vm->GetCallStack(callstack);
msg += "\n\nCallstack:\n\n";
ListForeachPtr(IVM::CallStackEntry *, cs, callstack)
msg += String::Format(" - %s() (line %d) in \"%s\"\n", cs->function.c_str(), cs->line, cs->source.c_str());
__LOG_E__ << "Squirrel Compiler Error: '" << msg << "'\n";
viewer->DisplayUserMessage(ViewerBase::MessageNormal, msg);
}
//------------------------------------------------------------------------------