BTW,
This is trunk code from 4/21.

On Apr 21, 10:51 am, Ricky Charlet <rchar...@speakeasy.net> wrote:
> Howdy,
>     I'm new to v8. However my company has been using v8 since 1.3.
> I've got the task to investigate modernizing it. So I've got two
> variables in play here... I'm changing from v8-1.3 to v8-3.3.1 and
> also changing from a 32bit architecture to a 64 bit architecture. I'm
> suspecting the 64 bit change is causing my crash for the modest reason
> that there are so many casts in my path to the crash.
>
> OK, So I have v8-3.3.1 complied with
> `scons arch=x64 arch_size=64 mode=debug` and I've statically linked my
> code to libv8_g.a (renamed to libv8.a).
>
> My program is calling  v8::Array::Length in api.cc. I guess I'm
> calling length on a dead object because of the "deadbee..." in
> "#1  0x00000000006034e0 in v8::internal::HeapObject::map
> (this=0xdeadbeedbeadbe05)  at src/objects-inl.h:1176"
>
> I've noticed many casts up and down the frame0 through frame5 stuff.
> That may or may not be germane to the issue and I did not ponder them
> very deeply before I just ran to this list to see if anyone else wants
> to chime in with some experience and wisdom here.
>
> Here is my gdb stack trace.
>
> Program received signal SIGSEGV, Segmentation fault.
> 0x0000000000603536 in v8::internal::HeapObject::map_word
> (this=0xdeadbeedbeadbe05)
>     at src/objects-inl.h:1186
> 1186      return MapWord(reinterpret_cast<uintptr_t>(READ_FIELD(this,
> kMapOffset)));
> (gdb) bt
> #0  0x0000000000603536 in v8::internal::HeapObject::map_word (
>     this=0xdeadbeedbeadbe05) at src/objects-inl.h:1186
> #1  0x00000000006034e0 in v8::internal::HeapObject::map
> (this=0xdeadbeedbeadbe05)
>     at src/objects-inl.h:1176
> #2  0x000000000060224a in v8::internal::Object::IsHeapNumber() ()
> #3  0x00000000006026ae in v8::internal::Object::IsNumber() ()
> #4  0x00000000006031f6 in v8::internal::Object::Number() ()
> #5  0x00000000005fac84 in v8::Array::Length (this=0x147ded8) at src/
> api.cc:4297
> #6  0x00000000004566c5 in mus_parser::_create_step
> (this=0x7fffffffdff0, obj=...)
>     at ../../mus_parser_gen.cc:2840
> #7  0x000000000043f9d2 in mus_parser::_create_scenario
> (this=0x7fffffffdff0, obj=...)
>     at ../../mus_parser.cc:276
> #8  0x0000000000442764 in mus_parser::load (this=0x7fffffffdff0,
> musl=...)
>     at ../../mus_parser.cc:681
> #9  0x0000000000480ea6 in mus_test_builder::make_scenario
> (this=0x7fffffffe990,
>     scheduler=0x7fffffffe820, obj=..., error=...) at ../../
> mus_test_builder.cc:200
> #10 0x000000000048014d in mus_test_builder::make_track
> (this=0x7fffffffe990,
>     scheduler=0x7fffffffe820, obj=..., error=...) at ../../
> mus_test_builder.cc:141
> #11 0x000000000047ff1f in mus_test_builder::build_test_internal (
>     this=0x7fffffffe990, scheduler=0x7fffffffe820, json=...,
> error=...)
>     at ../../mus_test_builder.cc:125
> #12 0x000000000047fb8e in mus_test_builder::build_test
> (this=0x7fffffffe990,
>     scheduler=0x7fffffffe820, json=..., error=...) at ../../
> mus_test_builder.cc:73
> #13 0x000000000040e3a5 in execute_json (opts=...) at ../../testr.cc:
> 552
> #14 0x000000000040e816 in main (argc=0, argv=0x7fffffffec70) at ../../
> testr.cc:621
> (gdb) list
> 1181      set_map_word(MapWord::FromMap(value));
> 1182    }
> 1183
> 1184
> 1185    MapWord HeapObject::map_word() {
> 1186      return MapWord(reinterpret_cast<uintptr_t>(READ_FIELD(this,
> kMapOffset)));
> 1187    }
> 1188
> 1189
> 1190    void HeapObject::set_map_word(MapWord map_word) {
> (gdb) :q
> Undefined command: "".  Try "help".
> (gdb) frame 6
> #6  0x00000000004566c5 in mus_parser::_create_step
> (this=0x7fffffffdff0, obj=...)
>     at ../../mus_parser_gen.cc:2840
> 2840            for (uint32_t n=0; n<variables->Length(); ++n) {
> (gdb) l
> 2835                if (v_payload == 0) goto bummer;
> 2836                v->payload(v_payload);
> 2837            }
> 2838
> 2839            Handle<Array> variables = _array(obj, "variables");
> 2840            for (uint32_t n=0; n<variables->Length(); ++n) {
> 2841                Handle<Object> variable_obj = _object(variables, n);
> 2842                mus_step_variable *variable = _create_variable(v,
> variable_obj);
> 2843                if (variable == 0) goto bummer;
> 2844                v->variables(variable);
>
> Hopefully,
> Ricky Charlet

-- 
v8-users mailing list
v8-users@googlegroups.com
http://groups.google.com/group/v8-users

Reply via email to