Clean up the log-stack-tracer test.

Create the functions using the normal API and remove some
unnecessary helpers.


Review URL: http://codereview.chromium.org/4024003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5688 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent 7fd5d454
...@@ -199,13 +199,6 @@ static void InitializeVM() { ...@@ -199,13 +199,6 @@ static void InitializeVM() {
} }
static Handle<JSFunction> CompileFunction(const char* source) {
Handle<JSFunction> result(JSFunction::cast(
*v8::Utils::OpenHandle(*Script::Compile(String::New(source)))));
return result;
}
static void CheckJSFunctionAtAddress(const char* func_name, Address addr) { static void CheckJSFunctionAtAddress(const char* func_name, Address addr) {
i::Object* obj = i::HeapObject::FromAddress(addr); i::Object* obj = i::HeapObject::FromAddress(addr);
CHECK(obj->IsJSFunction()); CHECK(obj->IsJSFunction());
...@@ -218,16 +211,6 @@ static void CheckJSFunctionAtAddress(const char* func_name, Address addr) { ...@@ -218,16 +211,6 @@ static void CheckJSFunctionAtAddress(const char* func_name, Address addr) {
} }
static void SetGlobalProperty(const char* name, Local<Value> value) {
env->Global()->Set(String::New(name), value);
}
static Handle<v8::internal::String> NewString(const char* s) {
return i::Factory::NewStringFromAscii(i::CStrVector(s));
}
// This C++ function is called as a constructor, to grab the frame pointer // This C++ function is called as a constructor, to grab the frame pointer
// from the calling function. When this function runs, the stack contains // from the calling function. When this function runs, the stack contains
// a C_Entry frame and a Construct frame above the calling function's frame. // a C_Entry frame and a Construct frame above the calling function's frame.
...@@ -273,25 +256,18 @@ static void CreateTraceCallerFunction(const char* func_name, ...@@ -273,25 +256,18 @@ static void CreateTraceCallerFunction(const char* func_name,
const char* trace_func_name) { const char* trace_func_name) {
i::EmbeddedVector<char, 256> trace_call_buf; i::EmbeddedVector<char, 256> trace_call_buf;
i::OS::SNPrintF(trace_call_buf, i::OS::SNPrintF(trace_call_buf,
"fp = new FPGrabber(); %s(fp.low_bits, fp.high_bits);", "function %s() {"
trace_func_name); " fp = new FPGrabber();"
" %s(fp.low_bits, fp.high_bits);"
"}",
func_name, trace_func_name);
// Create the FPGrabber function, which grabs the caller's frame pointer // Create the FPGrabber function, which grabs the caller's frame pointer
// when called as a constructor. // when called as a constructor.
CreateFramePointerGrabberConstructor("FPGrabber"); CreateFramePointerGrabberConstructor("FPGrabber");
// Compile the script. // Compile the script.
Handle<JSFunction> func = CompileFunction(trace_call_buf.start()); CompileRun(trace_call_buf.start());
CHECK(!func.is_null());
func->shared()->set_name(*NewString(func_name));
#ifdef DEBUG
v8::internal::Code* func_code = func->code();
CHECK(func_code->IsCode());
func_code->Print();
#endif
SetGlobalProperty(func_name, v8::ToApi<Value>(func));
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment