jerryscript-project / iotjs

Platform for Internet of Things with JavaScript http://www.iotjs.net
Other
2.59k stars 438 forks source link

Assertion `handler.GetArg(0)->IsNumber()' failed in iotjs::___WritePin_wrap #225

Closed renatahodovan closed 9 years ago

renatahodovan commented 9 years ago
Version:
IoT.js rev : 7f7d150
Jerry rev  : a00079e
Build      : x86_64-linux, debug
Test case:
var gpio = require("gpio");
gpio.writePin("hello","hello","hello");
Note:
It's probably similar to #224.
Backtrace:
iotjs: iotjs/src/iotjs_module_gpioctl.cpp:165: bool iotjs::___WritePin_wrap(iotjs::JHandlerInfo&): Assertion `handler.GetArg(0)->IsNumber()' failed.

Program received signal SIGABRT, Aborted.
0x00007ffff720f267 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:55
55  ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt
#0  0x00007ffff720f267 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:55
#1  0x00007ffff7210eca in __GI_abort () at abort.c:89
#2  0x00007ffff720803d in __assert_fail_base (fmt=0x7ffff736a028 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", 
    assertion=assertion@entry=0x523939 "handler.GetArg(0)->IsNumber()", file=file@entry=0x523880 "iotjs/src/iotjs_module_gpioctl.cpp", 
    line=line@entry=165, 
    function=function@entry=0x523d60 <iotjs::___WritePin_wrap(iotjs::JHandlerInfo&)::__PRETTY_FUNCTION__> "bool iotjs::___WritePin_wrap(iotjs::JHandlerInfo&)") at assert.c:92
#3  0x00007ffff72080f2 in __GI___assert_fail (assertion=0x523939 "handler.GetArg(0)->IsNumber()", 
    file=0x523880 "iotjs/src/iotjs_module_gpioctl.cpp", line=165, 
    function=0x523d60 <iotjs::___WritePin_wrap(iotjs::JHandlerInfo&)::__PRETTY_FUNCTION__> "bool iotjs::___WritePin_wrap(iotjs::JHandlerInfo&)")
    at assert.c:101
#4  0x000000000042afbe in iotjs::___WritePin_wrap (handler=...) at iotjs/src/iotjs_module_gpioctl.cpp:165
#5  0x000000000042af07 in iotjs::WritePin (function_obj_p=0x775158 <mem_heap+40344>, this_p=0x7fffffffc200, ret_val_p=0x7fffffffc1f0, 
    args_p=0x7aa580 <mem_heap+258496>, args_cnt=3) at iotjs/src/iotjs_module_gpioctl.cpp:163
#6  0x00000000004342e6 in jerry_dispatch_external_function (function_object_p=0x775158 <mem_heap+40344>, handler_p=4370065, this_arg_value=24959, 
    arg_collection_p=0x7777e8 <mem_heap+50216>) at iotjs/deps/jerry/jerry-core/jerry.cpp:671
#7  0x000000000048f6d7 in ecma_op_function_call (func_obj_p=0x775158 <mem_heap+40344>, this_arg_value=24959, arg_collection_p=0x7777e8 <mem_heap+50216>)
    at iotjs/deps/jerry/jerry-core/ecma/operations/ecma-function-object.cpp:807
#8  0x00000000004a9ae2 in opfunc_call_n (instr=..., frame_ctx_p=0x7fffffffc3d0) at iotjs/deps/jerry/jerry-core/vm/opcodes.cpp:819
#9  0x000000000043892d in vm_loop (frame_ctx_p=0x7fffffffc3d0, run_scope_p=0x0) at iotjs/deps/jerry/jerry-core/vm/vm.cpp:484
#10 0x0000000000438bc7 in vm_run_from_pos (instrs_p=0x778108 <mem_heap+52552>, start_pos=333, this_binding_value=25983, lex_env_p=0x777cc0 <mem_heap+51456>, 
    is_strict=false, is_eval_code=false) at iotjs/deps/jerry/jerry-core/vm/vm.cpp:575
#11 0x000000000048f5c9 in ecma_op_function_call (func_obj_p=0x779fb8 <mem_heap+60408>, this_arg_value=25983, arg_collection_p=0x777de8 <mem_heap+51752>)
    at iotjs/deps/jerry/jerry-core/ecma/operations/ecma-function-object.cpp:773
#12 0x00000000004a9ae2 in opfunc_call_n (instr=..., frame_ctx_p=0x7fffffffc630) at iotjs/deps/jerry/jerry-core/vm/opcodes.cpp:819
#13 0x000000000043892d in vm_loop (frame_ctx_p=0x7fffffffc630, run_scope_p=0x0) at iotjs/deps/jerry/jerry-core/vm/vm.cpp:484
#14 0x0000000000438bc7 in vm_run_from_pos (instrs_p=0x776d48 <mem_heap+47496>, start_pos=9, this_binding_value=23071, lex_env_p=0x777e30 <mem_heap+51824>, 
    is_strict=false, is_eval_code=false) at iotjs/deps/jerry/jerry-core/vm/vm.cpp:575
#15 0x000000000048f5c9 in ecma_op_function_call (func_obj_p=0x777c78 <mem_heap+51384>, this_arg_value=23071, arg_collection_p=0x777e00 <mem_heap+51776>)
    at iotjs/deps/jerry/jerry-core/ecma/operations/ecma-function-object.cpp:773
#16 0x000000000048f248 in ecma_op_function_call_array_args (func_obj_p=0x777c78 <mem_heap+51384>, this_arg_value=23071, 
    arguments_list_p=0x7aa644 <mem_heap+258692>, arguments_list_len=3)
    at iotjs/deps/jerry/jerry-core/ecma/operations/ecma-function-object.cpp:678
#17 0x000000000044f02c in ecma_builtin_function_prototype_object_call (this_arg=25695, arguments_list_p=0x7aa640 <mem_heap+258688>, arguments_number=4)
    at iotjs/deps/jerry/jerry-core/ecma/builtin-objects/ecma-builtin-function-prototype.cpp:198
#18 0x000000000044ea1b in ecma_builtin_function_prototype_dispatch_routine (builtin_routine_id=195, this_arg_value=25695, 
    arguments_list=0x7aa640 <mem_heap+258688>, arguments_number=4)
    at iotjs/deps/jerry/jerry-core/ecma/builtin-objects/ecma-builtin-function-prototype.inc.h:63
#19 0x0000000000440f13 in ecma_builtin_dispatch_routine (builtin_object_id=ECMA_BUILTIN_ID_FUNCTION_PROTOTYPE, builtin_routine_id=195, this_arg_value=25695, 
    arguments_list=0x7aa640 <mem_heap+258688>, arguments_number=4)
    at iotjs/deps/jerry/jerry-core/ecma/builtin-objects/ecma-builtins.inc.h:108
#20 0x0000000000440699 in ecma_builtin_dispatch_call (obj_p=0x770f70 <mem_heap+23472>, this_arg_value=25695, arg_collection_p=0x778078 <mem_heap+52408>)
    at iotjs/deps/jerry/jerry-core/ecma/builtin-objects/ecma-builtins.cpp:438
#21 0x000000000048f652 in ecma_op_function_call (func_obj_p=0x770f70 <mem_heap+23472>, this_arg_value=25695, arg_collection_p=0x778078 <mem_heap+52408>)
    at iotjs/deps/jerry/jerry-core/ecma/operations/ecma-function-object.cpp:794
#22 0x00000000004a9ae2 in opfunc_call_n (instr=..., frame_ctx_p=0x7fffffffcae0) at iotjs/deps/jerry/jerry-core/vm/opcodes.cpp:819
#23 0x000000000043892d in vm_loop (frame_ctx_p=0x7fffffffcae0, run_scope_p=0x0) at iotjs/deps/jerry/jerry-core/vm/vm.cpp:484
#24 0x0000000000438bc7 in vm_run_from_pos (instrs_p=0x772308 <mem_heap+28488>, start_pos=457, this_binding_value=23071, lex_env_p=0x7768d0 <mem_heap+46352>, 
    is_strict=false, is_eval_code=false) at iotjs/deps/jerry/jerry-core/vm/vm.cpp:575
#25 0x000000000048f5c9 in ecma_op_function_call (func_obj_p=0x7765e8 <mem_heap+45608>, this_arg_value=23071, arg_collection_p=0x776878 <mem_heap+46264>)
    at iotjs/deps/jerry/jerry-core/ecma/operations/ecma-function-object.cpp:773
#26 0x00000000004a9ae2 in opfunc_call_n (instr=..., frame_ctx_p=0x7fffffffcd40) at iotjs/deps/jerry/jerry-core/vm/opcodes.cpp:819
#27 0x000000000043892d in vm_loop (frame_ctx_p=0x7fffffffcd40, run_scope_p=0x0) at iotjs/deps/jerry/jerry-core/vm/vm.cpp:484
#28 0x0000000000438bc7 in vm_run_from_pos (instrs_p=0x772308 <mem_heap+28488>, start_pos=383, this_binding_value=15947, lex_env_p=0x772178 <mem_heap+28088>, 
    is_strict=false, is_eval_code=false) at iotjs/deps/jerry/jerry-core/vm/vm.cpp:575
#29 0x000000000048f5c9 in ecma_op_function_call (func_obj_p=0x776560 <mem_heap+45472>, this_arg_value=15947, arg_collection_p=0x770fc0 <mem_heap+23552>)
    at iotjs/deps/jerry/jerry-core/ecma/operations/ecma-function-object.cpp:773
#30 0x00000000004a9ae2 in opfunc_call_n (instr=..., frame_ctx_p=0x7fffffffcfa0) at iotjs/deps/jerry/jerry-core/vm/opcodes.cpp:819
#31 0x000000000043892d in vm_loop (frame_ctx_p=0x7fffffffcfa0, run_scope_p=0x0) at iotjs/deps/jerry/jerry-core/vm/vm.cpp:484
#32 0x0000000000438bc7 in vm_run_from_pos (instrs_p=0x772308 <mem_heap+28488>, start_pos=511, this_binding_value=15947, lex_env_p=0x771fb0 <mem_heap+27632>, 
    is_strict=false, is_eval_code=false) at iotjs/deps/jerry/jerry-core/vm/vm.cpp:575
#33 0x000000000048f5c9 in ecma_op_function_call (func_obj_p=0x776660 <mem_heap+45728>, this_arg_value=15947, arg_collection_p=0x76d910 <mem_heap+9552>)
    at iotjs/deps/jerry/jerry-core/ecma/operations/ecma-function-object.cpp:773
#34 0x00000000004a9ae2 in opfunc_call_n (instr=..., frame_ctx_p=0x7fffffffd200) at iotjs/deps/jerry/jerry-core/vm/opcodes.cpp:819
#35 0x000000000043892d in vm_loop (frame_ctx_p=0x7fffffffd200, run_scope_p=0x0) at iotjs/deps/jerry/jerry-core/vm/vm.cpp:484
#36 0x0000000000438bc7 in vm_run_from_pos (instrs_p=0x76c408 <mem_heap+4168>, start_pos=11, this_binding_value=523, lex_env_p=0x76d818 <mem_heap+9304>, 
    is_strict=false, is_eval_code=false) at iotjs/deps/jerry/jerry-core/vm/vm.cpp:575
#37 0x000000000048f5c9 in ecma_op_function_call (func_obj_p=0x76d120 <mem_heap+7520>, this_arg_value=4, arg_collection_p=0x76d810 <mem_heap+9296>)
    at iotjs/deps/jerry/jerry-core/ecma/operations/ecma-function-object.cpp:773
#38 0x00000000004a9ae2 in opfunc_call_n (instr=..., frame_ctx_p=0x7fffffffd460) at iotjs/deps/jerry/jerry-core/vm/opcodes.cpp:819
#39 0x000000000043892d in vm_loop (frame_ctx_p=0x7fffffffd460, run_scope_p=0x0) at iotjs/deps/jerry/jerry-core/vm/vm.cpp:484
#40 0x0000000000438bc7 in vm_run_from_pos (instrs_p=0x76c408 <mem_heap+4168>, start_pos=7, this_binding_value=523, lex_env_p=0x76d0f8 <mem_heap+7480>, 
    is_strict=false, is_eval_code=false) at iotjs/deps/jerry/jerry-core/vm/vm.cpp:575
#41 0x000000000048f5c9 in ecma_op_function_call (func_obj_p=0x76d088 <mem_heap+7368>, this_arg_value=523, arg_collection_p=0x76c158 <mem_heap+3480>)
    at iotjs/deps/jerry/jerry-core/ecma/operations/ecma-function-object.cpp:773
#42 0x0000000000434aca in jerry_api_invoke_function (is_invoke_as_constructor=false, function_object_p=0x76d088 <mem_heap+7368>, 
    this_arg_p=0x76b7d0 <mem_heap+1040>, retval_p=0x7fffffffd6e0, args_p=0x7ae130, args_count=1)
    at iotjs/deps/jerry/jerry-core/jerry.cpp:1108
#43 0x0000000000434bfa in jerry_api_call_function (function_object_p=0x76d088 <mem_heap+7368>, this_arg_p=0x76b7d0 <mem_heap+1040>, retval_p=0x7fffffffd6e0, 
    args_p=0x7ae130, args_count=1) at iotjs/deps/jerry/jerry-core/jerry.cpp:1176
#44 0x00000000004242b9 in iotjs::JObject::Call (this=0x7fffffffd760, this_=..., arg=...) at iotjs/src/iotjs_binding.cpp:403
#45 0x0000000000422715 in iotjs::RunIoTjs (process=0x7ae0d0) at iotjs/src/iotjs.cpp:90
#46 0x00000000004227f9 in iotjs::StartIoTjs (env=0x7ae010) at iotjs/src/iotjs.cpp:115
#47 0x0000000000422987 in iotjs::Start (argc=2, argv=0x7fffffffd978) at iotjs/src/iotjs.cpp:155
#48 0x0000000000422a63 in iotjs_entry (argc=2, argv=0x7fffffffd978) at iotjs/src/iotjs.cpp:178
#49 0x00000000004224b6 in main (argc=2, argv=0x7fffffffd978) at iotjs/iotjs_linux.cpp:22
ILyoan commented 9 years ago

Current GPIO implementation in master is not complete. Let's see this after #215 landed.

ILyoan commented 9 years ago

Closing as fixed by #215.