Status: New
Owner: ----

New issue 3225 by albzey: runtime.cc:11391: CHECK(!frame->GetParameter(i)->IsTheHole()) failed
http://code.google.com/p/v8/issues/detail?id=3225


Sometimes, when I try to get the value of a function parameter in the debugger (via node-inspector and V8 3.25.14 in my custom C++ app), I get this fatal error:

#
# Fatal error in ..\..\src\runtime.cc, line 11391
# CHECK(!frame->GetParameter(i)->IsTheHole()) failed
#


Here is some example C++ code, including some example JS code:


#include <v8.h>
#include <v8-debug.h>
#include <string>
#include <iostream>
#include <assert.h>

using namespace v8;
using namespace std;

static Local<Value> execJsScript(const std::string& jsCode) {
Local<String> origin = String::NewFromUtf8(Isolate::GetCurrent(), "main.js"); Local<String> source = String::NewFromUtf8(Isolate::GetCurrent(), jsCode.c_str());
        Local<v8::Script> script = Script::Compile(source, origin);
        assert(!script.IsEmpty());
        HandleScope handleScope(Isolate::GetCurrent());
        return script->Run();
}

void test_js_DebugEvaluate() {
        cout << "V8 version: " << v8::V8::GetVersion() << endl;

        auto isolate = Isolate::New();
        Isolate::Scope isolateScope(isolate);
        HandleScope handleScope(isolate);
        Handle<Context> context = Context::New(isolate);
        Context::Scope contextScope(context);
        auto globalObj = context->Global();

        v8::Debug::EnableAgent("test", 5858, true);
        v8::Debug::DebugBreak(isolate);

        execJsScript(
                "function* gen1(arg1) {\n"
                "  yield 1;\n"
                "  yield arg1;\n"
                "  return arg1 + 3;\n"
                "}\n"
                "\n"
                "var iter = gen1(2);\n"
                "var n = iter.next();\n"
                "n = iter.next();\n"
                "n = iter.next();\n"
                );
}


Then attach via node-inspector. Set a breakpoint in `yield 1;` inside the generator. Continue execution. It should stop at the breakpoint. Hover the mouse over `arg1`. Now, V8 crashes with the fatal error.


--
You received this message because this project is configured to send all issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings

--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to