Comment #4 on issue 954 by zdj870522: Object::GetProperty() doesn't always work right
http://code.google.com/p/v8/issues/detail?id=954

I mean the cyclic condition is always true and my program keep running when use debug version of V8.

Use gdb to attach the process:
v8::internal::Context::global (this=0x2aa0133161) at src/contexts.h:243
243       GlobalObject* global() {
Current language:  auto; currently c++
(gdb) bt full
#0  v8::internal::Context::global (this=0x2aa0133161) at src/contexts.h:243
No locals.
#1 0x0000002a9a5b64e4 in v8::internal::Context::global_context (this=0x2a9f000001) at src/contexts.cc:53
        current = (class v8::internal::Context *) 0xbfff42a0
#2 0x0000002a9a62bc04 in v8::internal::Object::GetPrototype (this=0x2aa0156101) at src/objects.cc:583
        context = (class v8::internal::Context *) 0x9f0000c1
#3 0x0000002a9a62b85c in v8::internal::Object::GetProperty (this=0x2a9f000051, receiver=0x2a9f000051, result=0x7fbfff43f0, name=0x2aa015d339, attributes=0x7fbfff43ec) at src/objects.cc:509
        current = (class v8::internal::Object *) 0x2aa0156101
ncc = {<v8::internal::Embedded> = {<No data fields>}, scope_ = {static current_ = {extensions = 0, next = 0x9aa790, limit = 0x9ac690}, previous_ = {extensions = -1, next = 0x9aa788,
      limit = 0x9aa788}}, context_ = {location_ = 0x9aa788}}
        last = (class v8::internal::Object *) 0x2a9e0e0961
        value = (class v8::internal::Object *) 0x2e0356281
        holder = (class v8::internal::JSObject *) 0x2aa0156101
#4 0x0000002a9a5fbda6 in v8::internal::CallIC::LoadFunction (this=0x7fbfff44c0, state=v8::internal::PREMONOMORPHIC, object={location_ = 0x7fbfff4538}, name={location_ = 0x7fbfff4530}) at src/ic.cc:425
        index = 127
lookup = {<v8::internal::Embedded> = {<No data fields>}, lookup_type_ = v8::internal::LookupResult::DESCRIPTOR_TYPE, holder_ = 0x2a9e0e0961, number_ = 40, cacheable_ = true, details_ = {<v8::internal::Embedded> = {<No data fields>}, static kInitialIndex = 1, value_ = 3842}}
        attr = 42
        result = (class v8::internal::Object *) 0x7fbfff4538
#5 0x0000002a9a5fe595 in v8::internal::CallIC_Miss (args={<v8::internal::Embedded> = {<No data fields>}, length_ = 2, arguments_ = 0x7fbfff4538}) at src/ic.cc:1269 ic = {<v8::internal::IC> = {fp_ = 0x7fbfff4590 "ðEÿ¿\177", pc_address_ = 0x7fbfff4560}, <No data fields>}
        state = v8::internal::PREMONOMORPHIC
        function = {location_ = 0x7fbfff4490}
na = {<v8::internal::Embedded> = {<No data fields>}, extensions_ = -1}
        result = (class v8::internal::Object *) 0x7fbfff4570
scope = {static current_ = {extensions = 0, next = 0x9aa790, limit = 0x9ac690}, previous_ = {extensions = -1073789584, next = 0x7fbfff44a0, limit = 0x7fbfff4568}}
        in_loop = 42
#6  0x0000002ac02d41aa in ?? ()
===============================================
quit gdb and attach it again.
0x0000002a9a566a40 in v8::internal::Context::IsBootstrappingOrGlobalObject () from /home/work/cmsui/third/v8/libv8_g.so
(gdb) bt full
#0 0x0000002a9a566a40 in v8::internal::Context::IsBootstrappingOrGlobalObject () from /home/work/cmsui/third/v8/libv8_g.so
No symbol table info available.
#1 0x0000002a9a58fb95 in v8::internal::Context::global (this=0x2a9f000001) at src/contexts.h:245
        result = (class v8::internal::Object *) 0x2aa0133161
#2 0x0000002a9a5b64cf in v8::internal::Context::global_context (this=0x2a9f000001) at src/contexts.cc:52
        current = (class v8::internal::Context *) 0xbfff42a0
#3 0x0000002a9a62bc04 in v8::internal::Object::GetPrototype (this=0x2aa0156101) at src/objects.cc:583
        context = (class v8::internal::Context *) 0x9f0000c1
#4 0x0000002a9a62b85c in v8::internal::Object::GetProperty (this=0x2a9f000051, receiver=0x2a9f000051, result=0x7fbfff43f0, name=0x2aa015d339, attributes=0x7fbfff43ec) at src/objects.cc:509
        current = (class v8::internal::Object *) 0x2aa0156101
ncc = {<v8::internal::Embedded> = {<No data fields>}, scope_ = {static current_ = {extensions = 0, next = 0x9aa790, limit = 0x9ac690}, previous_ = {extensions = -1, next = 0x9aa788,
      limit = 0x9aa788}}, context_ = {location_ = 0x9aa788}}
        last = (class v8::internal::Object *) 0x2a9e0e0961
        value = (class v8::internal::Object *) 0x2e0356281
        holder = (class v8::internal::JSObject *) 0x2aa0156101
#5 0x0000002a9a5fbda6 in v8::internal::CallIC::LoadFunction (this=0x7fbfff44c0, state=v8::internal::PREMONOMORPHIC, object={location_ = 0x7fbfff4538}, name={location_ = 0x7fbfff4530}) at src/ic.cc:425
        index = 127
lookup = {<v8::internal::Embedded> = {<No data fields>}, lookup_type_ = v8::internal::LookupResult::DESCRIPTOR_TYPE, holder_ = 0x2a9e0e0961, number_ = 40, cacheable_ = true, details_ = {<v8::internal::Embedded> = {<No data fields>}, static kInitialIndex = <optimized out>, value_ = 3842}}
        attr = 42
        result = (class v8::internal::Object *) 0x7fbfff4538
#6 0x0000002a9a5fe595 in v8::internal::CallIC_Miss (args={<v8::internal::Embedded> = {<No data fields>}, length_ = 2, arguments_ = 0x7fbfff4538}) at src/ic.cc:1269 ic = {<v8::internal::IC> = {fp_ = 0x7fbfff4590 "ðEÿ¿\177", pc_address_ = 0x7fbfff4560}, <No data fields>}
        state = v8::internal::PREMONOMORPHIC
        function = {location_ = 0x7fbfff4490}
na = {<v8::internal::Embedded> = {<No data fields>}, extensions_ = -1}
        result = (class v8::internal::Object *) 0x7fbfff4570
scope = {static current_ = {extensions = 0, next = 0x9aa790, limit = 0x9ac690}, previous_ = {extensions = -1073789584, next = 0x7fbfff44a0, limit = 0x7fbfff4568}}
        in_loop = 42
#7  0x0000002ac02d41aa in ?? ()




--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to