Hi Erik,

I run into the problem by just starting up the VM.  I tried the
backtrace earlier and haven't gotten very far with it.

backtrace() returned 1 addresses
./shell_g [0x33404]

And for the sake of brevity, attached below is the default JS stack
trace that is printed on crash.

Thanks,
John

==== Stack trace ============================================

Security context: 0x408003c1 <JS Object>#0#
    1: ConfigureTemplateInstance(this=0x40800561 <JS
Object>#1#,obj=0x40425b39 <JS Object>#2#,data=0x40800101
<ObjectTemplateInfo>#3#)
    6: Instantiate(this=0x40800561 <JS Object>#1#,data=0x40800101
<ObjectTemplateInfo>#3#,name=0x4099a135 <undefined>)
    7: arguments adaptor frame: 1->2

==== Details ================================================

[1]: ConfigureTemplateInstance(this=0x40800561 <JS
Object>#1#,obj=0x40425b39 <JS Object>#2#,data=0x40800101
<ObjectTemplateInfo>#3#) {
  // stack-allocated locals
  var prop_data = 0x4080011d <FunctionTemplateInfo>#4#
  var value = 0x40805a01 <JS Function print>#5#
  var name = 0x40400651 <String[5]: print>
  var properties = 0x40400669 <JS Object>#6#
  var requires_access_checks = 0x4099a179 <false>
  var attributes = 0
  var i = 0
  // expression stack (top to bottom)
  [16] : 0
  [15] : 0x40805a01 <JS Function print>#5#
  [14] : 0x40400651 <String[5]: print>
  [13] : 0x40425b39 <JS Object>#2#
--------- s o u r c e   c o d e ---------
function ConfigureTemplateInstance(obj, data) {?  var properties =
%GetTemplateField(data, 1);?  if (properties) {?    var
requires_access_checks = %DisableAccessChecks(obj);?    try {?
for (var i = 0; i < properties[0]; i += 3) {?        var name =
properties[i + 1];?        var prop_data = properties[i + 2];?
var attri...

-----------------------------------------
}

[6]: Instantiate(this=0x40800561 <JS Object>#1#,data=0x40800101
<ObjectTemplateInfo>#3#,name=0x4099a135 <undefined>) {
  // stack-allocated locals
  var Constructor = 0x40800299 <FunctionTemplateInfo>#7#
  var tag = 1
  var result = 0x4099a135 <undefined>
  // expression stack (top to bottom)
  [04] : 0x40800561 <JS Object>#1#
  [03] : 0x408059e5 <JS Function>#8#
--------- s o u r c e   c o d e ---------
function Instantiate(data, name) {?  if (!%IsTemplate(data)) return
data;?  var tag = %GetTemplateField(data, 0);?  switch (tag) {?
case 0:?      return InstantiateFunction(data, name);?    case
1:?      var Constructor = %GetTemplateField(data, 2);?      var
result = Constructor ? new (Instantiate(Constructor))() :...

-----------------------------------------
}

[7]: arguments adaptor frame: 1->2 {
  // actual arguments
  [00] : 0x40800101 <ObjectTemplateInfo>#3#
}

==== Key         ============================================

 #0# 0x408003c1: 0x408003c1 <JS Object>
               NaN: 0x4099a129 <Number: nan>
              JSON: 0x408004e5 <JS Object>#9#
              Math: 0x404142c5 <a MathConstructor>>#10#
          Infinity: 0x4099c101 <Number: inf>
         undefined: 0x4099a135 <undefined>
 #1# 0x40800561: 0x40800561 <JS Object>
              $NaN: 0x4099a129 <Number: nan>
             $Math: 0x404142c5 <a MathConstructor>>#10#
            global: 0x408003c1 <JS Object>#0#
         kMessages: 0x4041a035 <an Object>>#11#
         $Infinity: 0x4099c101 <Number: inf>
      hexCharArray: 0x404104ed <JS array[16]>#12#
      kVowelSounds: 0x404189c9 <an Object>>#13#
     functionCache: 0x404245b5 <an Object>>#14#
    visited_arrays: 0x404081ed <JS array[0]>#15#
  kLineLengthLimit: 78
  hexCharCodeArray: 0x4041059d <JS array[16]>#16#
 kApiFunctionCache: 0x404245b5 <an Object>>#14#
 reusableMatchInfo: 0x4040b71d <JS array[5]>#17#
kCapitalVowelSounds: 0x40418e61 <an Object>>#18#
kStackOverflowBoilerplate: 0x40421451 <a RangeError>>#19#
kAddMessageAccessorsMarker: 0x4041a799 <an Object>>#20#
 #2# 0x40425b39: 0x40425b39 <JS Object>
 #3# 0x40800101: 0x40800101 <ObjectTemplateInfo>
 #4# 0x4080011d: 0x4080011d <FunctionTemplateInfo>
 #5# 0x40805a01: 0x40805a01 <JS Function print>
 #6# 0x40400669: 0x40400669 <JS Object>
 #7# 0x40800299: 0x40800299 <FunctionTemplateInfo>
 #8# 0x408059e5: 0x408059e5 <JS Function>
 #9# 0x408004e5: 0x408004e5 <JS Object>
 #10# 0x404142c5: 0x404142c5 <a MathConstructor>>
                 E: 0x4099e3e1 <Number: 2.718281828459045>
                PI: 0x4099e41d <Number: 3.141592653589793>
               LN2: 0x4099e3f9 <Number: 0.6931471805599453>
              LN10: 0x4099e3ed <Number: 2.302585092994046>
             SQRT2: 0x4099e435 <Number: 1.414213562373095>
             LOG2E: 0x4099e405 <Number: 1.442695040888963>
            LOG10E: 0x4099e411 <Number: 0.4342944819032518>
           SQRT1_2: 0x4099e429 <Number: 0.7071067811865476>
 #11# 0x4041a035: 0x4041a035 <an Object>>
        pcre_error: 0x4099e73d <String[31]: PCRE function %0, error
code %1>
       not_defined: 0x4099ec09 <String[17]: %0 is not defined>
       stack_trace: 0x4099ea79 <String[15]\: Stack Trace:\n%0>
      cyclic_proto: 0x4099e521 <String[22]: Cyclic __proto__ value>
      regexp_flags: 0x4099e779 <String[61]: Cannot supply flags when
constructing one RegExp from another>
      illegal_eval: 0x4099ed15 <String[32]: Unsupported indirect eval
() call>
      invalid_json: 0x4099f2c1 <String[29]: String '%0' is not valid
JSON>
     illegal_break: 0x4099f1a1 <String[23]: Illegal break statement>
     unknown_label: 0x4099e9a5 <String[20]: Undefined label '%0'>
     redeclaration: 0x4099e931 <String[33]: %0 '%1' has already been
declared>
     invalid_break: 0x4099e9d9 <String[23]: Invalid break statement>
    invalid_regexp: 0x4099f17d <String[27]: Invalid RegExp pattern /%0/
>
    expected_label: 0x4099e681 <String[14]: Expected label>
    stack_overflow: 0x4099f069 <String[32]: Maximum call stack size
exceeded>
    null_to_object: 0x4099ef55 <String[29]: Cannot convert null to
object>
    apply_overflow: 0x4099f091 <String[52]: Function.prototype.apply
cannot support %0 arguments>
    illegal_return: 0x4099f1e5 <String[24]: Illegal return statement>
    unexpected_eos: 0x4099e649 <String[23]: Unexpected end of input>
   with_expression: 0x4099ed55 <String[20]: %0 has no properties>
   not_constructor: 0x4099ebd5 <String[23]: %0 is not a constructor>
   unable_to_parse: 0x4099f0cd <String[11]: Parse error>
  apply_wrong_args: 0x4099ee59 <String[55]: Function.prototype.apply:
Arguments list has wrong type>
  unexpected_token: 0x4099e559 <String[19]: Unexpected token %0>
  invalid_continue: 0x4099ea11 <String[26]: Invalid continue
statement>
  malformed_regexp: 0x4099e6b1 <String[36]: Invalid regular
expression: /%0/: %1>
  undefined_method: 0x4099eac5 <String[28]: Object %1 has no method
'%0'>
  illegal_continue: 0x4099f1c1 <String[26]: Illegal continue
statement>
 null_or_undefined: 0x4099eb59 <String[43]: Cannot access property of
null or undefined>
 reduce_no_initial: 0x4099ef7d <String[43]: Reduce of empty array with
no initial value>
no_input_to_regexp: 0x4099f265 <String[14]: No input to %0>
uncaught_exception: 0x4099ea51 <String[11]: Uncaught %0>
illegal_invocation: 0x4099ed8d <String[18]: Illegal invocation>
apply_non_function: 0x4099ee05 <String[75]: Function.prototype.apply
was called on %0, which is a %1 and not a function>
circular_structure: 0x4099f305 <String[37]: Converting circular
structure to JSON>
newline_after_throw: 0x4099e90d <String[27]: Illegal newline after
throw>
unterminated_regexp: 0x4099e6f9 <String[37]: Invalid regular
expression: missing />
called_non_callable: 0x4099ea91 <String[20]: %0 is not a function>
no_catch_or_finally: 0x4099e979 <String[34]: Missing catch or finally
after try>
result_not_primitive: 0x4099f27d <String[40]: Result of %0 must be a
primitive, was %1>
invalid_array_length: 0x4099efcd <String[20]: Invalid array length>
property_not_function: 0x4099eb09 <String[44]: Property '%0' of object
%1 is not a function>
no_setter_in_callback: 0x4099edc9 <String[52]: Cannot set property %0
of %1 which has only a getter>
invalid_lhs_in_for_in: 0x4099e7ed <String[32]: Invalid left-hand side
in for-in>
duplicate_regexp_flag: 0x4099f101 <String[24]: Duplicate RegExp flag
%0>
error_loading_debugger: 0x4099f225 <String[25]: Error loading debugger
%0>
unexpected_token_number: 0x4099e595 <String[17]: Unexpected number>
invalid_in_operator_use: 0x4099ee99 <String[49]: Cannot use 'in'
operator to search for '%0' in %1>
unexpected_token_string: 0x4099e5d1 <String[17]: Unexpected string>
invalid_lhs_in_prefix_op: 0x4099e855 <String[53]: Invalid left-hand
side expression in prefix operation>
unrecognized_regexp_flag: 0x4099f141 <String[27]: Unrecognized RegExp
flag %0>
non_object_property_load: 0x4099ec45 <String[31]: Cannot read property
'%0' of %1>
non_object_property_call: 0x4099ecd9 <String[29]: Cannot call method
'%0' of %1>
invalid_lhs_in_assignment: 0x4099e7c1 <String[36]: Invalid left-hand
side in assignment>
non_object_property_store: 0x4099ec91 <String[30]: Cannot set property
'%0' of %1>
invalid_lhs_in_postfix_op: 0x4099e815 <String[54]: Invalid left-hand
side expression in postfix operation>
instanceof_nonobject_proto: 0x4099ef11 <String[58]: Function has non-
object prototype '%0' in instanceof check>
invalid_array_apply_length: 0x4099f00d <String[59]:
Function.prototype.apply supports only up to 1024 arguments>
cannot_convert_to_primitive: 0x4099eb8d <String[40]: Cannot convert
object to primitive value>
multiple_defaults_in_switch: 0x4099e8b9 <String[48]: More than one
default clause in switch statement>
unexpected_token_identifier: 0x4099e611 <String[21]: Unexpected
identifier>
instanceof_function_expected: 0x4099eed5 <String[52]: Expecting a
function in instanceof check, but got %0>
 #12# 0x404104ed: 0x404104ed <JS array[16]>
                 0: 0x4099a641 <String[1]: 0>
                 1: 0x4099dc91 <String[1]: 1>
                 2: 0x4099dc9d <String[1]: 2>
                 3: 0x4099dca9 <String[1]: 3>
                 4: 0x4099dcb5 <String[1]: 4>
                 5: 0x4099dcc1 <String[1]: 5>
                 6: 0x4099dccd <String[1]: 6>
                 7: 0x4099dcd9 <String[1]: 7>
                 8: 0x4099dce5 <String[1]: 8>
                 9: 0x4099dcf1 <String[1]: 9>
                  ...
 #13# 0x404189c9: 0x404189c9 <an Object>>
                 e: 0x4099a161 <true>
                 a: 0x4099a161 <true>
                 u: 0x4099a161 <true>
                 o: 0x4099a161 <true>
                 y: 0x4099a161 <true>
                 i: 0x4099a161 <true>
 #14# 0x404245b5: 0x404245b5 <an Object>>
 #15# 0x404081ed: 0x404081ed <JS array[0]>
 #16# 0x4041059d: 0x4041059d <JS array[16]>
                 0: 48
                 1: 49
                 2: 50
                 3: 51
                 4: 52
                 5: 53
                 6: 54
                 7: 55
                 8: 56
                 9: 57
                  ...
 #17# 0x4040b71d: 0x4040b71d <JS array[5]>
                 0: 2
                 1: 0x4099a2dd <String[0]: >
                 2: 0x4099a2dd <String[0]: >
                 3: -1
                 4: -1
 #18# 0x40418e61: 0x40418e61 <an Object>>
                 r: 0x4099a161 <true>
                 x: 0x4099a161 <true>
                 h: 0x4099a161 <true>
                 f: 0x4099a161 <true>
                 l: 0x4099a161 <true>
                 e: 0x4099a161 <true>
                 a: 0x4099a161 <true>
                 u: 0x4099a161 <true>
                 o: 0x4099a161 <true>
                 n: 0x4099a161 <true>
                 y: 0x4099a161 <true>
                 s: 0x4099a161 <true>
                 i: 0x4099a161 <true>
                 m: 0x4099a161 <true>
 #19# 0x40421451: 0x40421451 <a RangeError>>
 #20# 0x4041a799: 0x4041a799 <an Object>>
=====================


Regards,
John

On May 12, 4:21 pm, Erik Corry <[email protected]> wrote:
> 2009/5/12 Erik Corry <[email protected]>:
>
>
>
> > 2009/5/12  <[email protected]>:
>
> >> Thanks again Erik.  I tried removing it and it now crashes in src/
> >> objects-inl.h on line 1332.
>
> >> #
> >> # Fatal error in src/objects-inl.h, line 1332
> >> # CHECK(descriptor_number < number_of_descriptors()) failed
> >> #
>
> > That's reasonably strange.  A stack trace certainly would be helpful.
> > If you don't have gdb, but you do have glibc then perhaps you can use
> > the backtrace function (as used in OS::StackWalk in platform-linux.cc)
> > to hack up a quick stack-trace printer in V8_Fatal in checks.cc.  It
> > already tries to print a JS stack trace, but it doesn't attempt to
> > print a C/C+ stack trace.
>
> By the way are you hitting this just by starting up the VM or is there
> a particular source file (that you can share?) that triggers it.
>
>
>
>
>
> >> I haven't been able to see what the values of these are yet, but I am
> >> trying to track that down.
>
> >> On May 12, 1:58 pm, Erik Corry <[email protected]> wrote:
> >>> Oops the assertion is wrong.  Just delete the assertion.  I'll fix it 
> >>> ASAP.
>
> >>> Hopefully a more significant assertion will turn up if you delete that 
> >>> one.
>
> >>> 2009/5/12  <[email protected]>:
>
> >>> > Thanks Erik.
>
> >>> > I did manage to continue tracking down the issue last night and it
> >>> > turns out that there is an assertion occurring in assembler-asm.cc -
> >>> > line 612, which is in the function void Assembler::addrmod5(...)
> >>> > ----> ASSERT((instr & ~(CondMask | P | U | N | W | L)) == (B27 |
> >>> > B26));
>
> >>> > Unfortunately, I am having trouble getting gdb to work properly on my
> >>> > hardware platform, so I am trying some alternative debugging
> >>> > methods.
>
> >>> > Any ideas on the assertion?
>
> >>> > Regards,
> >>> > John
>
> >>> > On May 11, 4:35 pm, Erik Corry <[email protected]> wrote:
> >>> >> 2009/5/11  <[email protected]>:
>
> >>> >> > Hi,
>
> >>> >> > I have recently compiled the trunk version of the v8 javascript 
> >>> >> > engine
> >>> >> > for the ARM processor under Linux and have run into an issue when
> >>> >> > executing the sample "shell" application from the command line.
>
> >>> >> > I get the following output:
> >>> >> > "native runtime.js:612: <error>
>
> >>> >> > Fatal error in v8::Context::New()
> >>> >> > Could not initialize environment
>
> >>> >> Not a lot to go on here.  I would recommend you compile with
> >>> >> mode=debug on the scons command line to get all the slow assert code.
> >>> >> It sucks for performance but it's great for debugging.  If you get a
> >>> >> failed assert, then run in gdb and use bt to see where it is
> >>> >> happening.
>
> >>> >> > "
> >>> >> > ./shell --help works fine.
>
> >>> >> > The target platform is an ARM11 with the armv6 instruction set.  
> >>> >> > Linux
> >>> >> > kernel is 2.6.14.  gcc toolchain is 3.4.0.
>
> >>> >> > To compile I did the following:
> >>> >> > $ scons toolchain=gcc arch=arm library=static os=linux importenv=PATH
> >>> >> > sample=shell
> >>> >> > where:
> >>> >> > CC="arm-linux-gcc"
> >>> >> > CXX="arm-linux-g++"
> >>> >> > RANLIB="arm-linux-ranlib"
> >>> >> > AR="arm-linux-ar"
>
> >>> >> > Thanks for your time and I look forward to hearing any ideas on how 
> >>> >> > to
> >>> >> > resolve this issue.
>
> >>> >> > Regards,
> >>> >> > John
>
> >>> >> --
> >>> >> Erik Corry, Software Engineer
> >>> >> Google Denmark ApS.  CVR nr. 28 86 69 84
> >>> >> c/o Philip & Partners, 7 Vognmagergade, P.O. Box 2227, DK-1018
> >>> >> Copenhagen K, Denmark.
>
> >>> --
> >>> Erik Corry, Software Engineer
> >>> Google Denmark ApS.  CVR nr. 28 86 69 84
> >>> c/o Philip & Partners, 7 Vognmagergade, P.O. Box 2227, DK-1018
> >>> Copenhagen K, Denmark.
>
> > --
> > Erik Corry, Software Engineer
> > Google Denmark ApS.  CVR nr. 28 86 69 84
> > c/o Philip & Partners, 7 Vognmagergade, P.O. Box 2227, DK-1018
> > Copenhagen K, Denmark.
>
> --
> Erik Corry, Software Engineer
> Google Denmark ApS.  CVR nr. 28 86 69 84
> c/o Philip & Partners, 7 Vognmagergade, P.O. Box 2227, DK-1018
> Copenhagen K, Denmark.
--~--~---------~--~----~------------~-------~--~----~
v8-users mailing list
[email protected]
http://groups.google.com/group/v8-users
-~----------~----~----~----~------~----~------~--~---

Reply via email to