pikasTech / PikaPython

An ultra-lightweight Python interpreter that runs with only 4KB of RAM, zero dependencies. It is ready to use out of the box without any configuration required and easy to extend with C. Similar project: MicroPython, JerryScript.
http://pikapython.com/
MIT License
1.47k stars 134 forks source link

Valgrind no pass in PikaNN #212

Closed pikasTech closed 2 years ago

pikasTech commented 2 years ago

valgrind log:

[ RUN      ] PikaNN.test1
BEGIN
mnist demo
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,116,125,171,255,255,150, 93,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,169,253,253,253,253,253,253,218, 30,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,169,253,253,253,213,142,176,253,253,122,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0, 52,250,253,210, 32, 12,  0,  6,206,253,140,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0, 77,251,210, 25,  0,  0,  0,122,248,253, 65,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0, 31, 18,  0,  0,  0,  0,209,253,253, 65,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,117,247,253,198, 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 76,247,253,231, 63,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,253,253,144,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,176,246,253,159, 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 25,234,253,233, 35,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,198,253,253,141,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0, 78,248,253,189, 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0, 19,200,253,253,141,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,134,253,253,173, 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,248,253,253, 25,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,248,253,253, 43, 20, 20, 20, 20,  5,  0,  5, 20, 20, 37,150,150,150,147, 10,  0,
  0,  0,  0,  0,  0,  0,  0,  0,248,253,253,253,253,253,253,253,168,143,166,253,253,253,253,253,253,253,123,  0,
  0,  0,  0,  0,  0,  0,  0,  0,174,253,253,253,253,253,253,253,253,253,253,253,249,247,247,169,117,117, 57,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,118,123,123,123,166,253,253,253,155,123,123, 41,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
================================ model stat ================================
mdl_type=0 (int8))
out_deq=1 
input_cnt=1, output_cnt=1, layer_cnt=6
input 3dims: (28, 28, 1)
output 1dims: (1, 1, 10)
main buf size 1464; sub buf size 0
//Note: PARAM is layer param size, include align padding

Idx     Layer            outshape       inoft   outoft  PARAM   MEMOUT OPS
---     Input            28, 28,  1     -       0       0       784     0
###L63: body oft = 64
###L64: type=0, is_out=0, size=152, in_oft=0, out_oft=784, in_dims=[3,28,28,1], out_dims=[3,13,13,4], in_s=0.004, in_zp=-128, out_s=0.016, out_zp=-128
###L81: Conv2d: kw=3, kh=3, sw=2, sh=2, dw=1, dh=1, act=1, pad=[0,0,0,0], dmul=0, ws_oft=80, w_oft=96, b_oft=136
000     Conv2D           13, 13,  4     0       784     72      676     6084
###L63: body oft = 216
###L64: type=0, is_out=0, size=432, in_oft=784, out_oft=0, in_dims=[3,13,13,4], out_dims=[3,6,6,8], in_s=0.016, in_zp=-128, out_s=0.016, out_zp=-128
###L81: Conv2d: kw=3, kh=3, sw=2, sh=2, dw=1, dh=1, act=1, pad=[0,0,0,0], dmul=0, ws_oft=80, w_oft=112, b_oft=400
001     Conv2D            6,  6,  8     784     0       352     288     10368
###L63: body oft = 648
###L64: type=0, is_out=0, size=1360, in_oft=0, out_oft=1400, in_dims=[3,6,6,8], out_dims=[3,2,2,16], in_s=0.016, in_zp=-128, out_s=0.057, out_zp=-128
###L81: Conv2d: kw=3, kh=3, sw=2, sh=2, dw=1, dh=1, act=1, pad=[0,0,0,0], dmul=0, ws_oft=80, w_oft=144, b_oft=1296
002     Conv2D            2,  2, 16     0       1400    1280    64      4608
###L63: body oft = 2008
###L64: type=1, is_out=0, size=48, in_oft=1400, out_oft=0, in_dims=[3,2,2,16], out_dims=[1,1,1,16], in_s=0.057, in_zp=-128, out_s=0.022, out_zp=-128
003     GAP               1,  1, 16     1400    0       0       16      64
###L63: body oft = 2056
###L64: type=2, is_out=0, size=304, in_oft=0, out_oft=1448, in_dims=[1,1,1,16], out_dims=[1,1,1,10], in_s=0.022, in_zp=-128, out_s=0.151, out_zp=42
###L98: FC: ws_oft=64, w_oft=104, b_oft=264
004     FC                1,  1, 10     0       1448    240     10      160
###L63: body oft = 2360
###L64: type=3, is_out=1, size=48, in_oft=1448, out_oft=0, in_dims=[1,1,1,10], out_dims=[1,1,1,10], in_s=0.151, in_zp=42, out_s=0.004, out_zp=-128
005     Softmax           1,  1, 10     1448    0       0       10      60

Total param ~1.9 KB, OPS ~0.02 MOPS, buffer 1.4 KB

==23280== Invalid read of size 4
==23280==    at 0x5E733F: tm_preprocess (tm_model.c:67)
==23280==    by 0x5DC822: PikaNN_net_run (PikaNN_net.c:221)
==23280==    by 0x589AD1: PikaNN_net_runMethod (__pikaBinding.c:1135)
==23280==    by 0x5B8D89: _obj_runMethodArgWithState (PikaVM.c:536)
==23280==    by 0x5B9027: obj_runMethodArgWithState_noalloc (PikaVM.c:575)
==23280==    by 0x5BB2BF: VM_instruction_handler_RUN (PikaVM.c:1021)
==23280==    by 0x5C1392: pikaVM_runInstructUnit (PikaVM.c:2048)
==23280==    by 0x5C3BD2: __pikaVM_runByteCodeFrameWithState (PikaVM.c:2558)
==23280==    by 0x5C3E75: pikaVM_runByteCodeFrame (PikaVM.c:2608)
==23280==    by 0x5C1BC2: __pikaVM_runPyLines_or_byteCode (PikaVM.c:2191)
==23280==    by 0x5C1E0D: pikaVM_run (PikaVM.c:2217)
==23280==    by 0x5C1D63: pikaVM_runSingleFile (PikaVM.c:2210)
==23280==  Address 0x51f5ce8 is 24 bytes before a block of size 32 alloc'd
==23280==    at 0x4848899: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==23280==    by 0x5B62C1: __platform_malloc (PikaPlatform.c:39)
==23280==    by 0x5B6322: __user_malloc (PikaPlatform.c:47)
==23280==    by 0x5CA3D7: pikaMalloc (dataMemory.c:51)
==23280==    by 0x5C459C: arg_init_hash (dataArg.c:55)
==23280==    by 0x5C47C6: arg_init (dataArg.c:78)
==23280==    by 0x5C496F: arg_setContent (dataArg.c:106)
==23280==    by 0x5C5E30: arg_copy (dataArg.c:342)
==23280==    by 0x5C6F94: args_pushArg (dataArgs.c:96)
==23280==    by 0x5C7F69: args_setArg (dataArgs.c:323)
==23280==    by 0x5A2CB8: __obj_setArg (PikaObj.c:264)
==23280==    by 0x5A2D6D: obj_setArg_noCopy (PikaObj.c:273)
==23280== 
==23280== Invalid read of size 4
==23280==    at 0x5E734D: tm_preprocess (tm_model.c:68)
==23280==    by 0x5DC822: PikaNN_net_run (PikaNN_net.c:221)
==23280==    by 0x589AD1: PikaNN_net_runMethod (__pikaBinding.c:1135)
==23280==    by 0x5B8D89: _obj_runMethodArgWithState (PikaVM.c:536)
==23280==    by 0x5B9027: obj_runMethodArgWithState_noalloc (PikaVM.c:575)
==23280==    by 0x5BB2BF: VM_instruction_handler_RUN (PikaVM.c:1021)
==23280==    by 0x5C1392: pikaVM_runInstructUnit (PikaVM.c:2048)
==23280==    by 0x5C3BD2: __pikaVM_runByteCodeFrameWithState (PikaVM.c:2558)
==23280==    by 0x5C3E75: pikaVM_runByteCodeFrame (PikaVM.c:2608)
==23280==    by 0x5C1BC2: __pikaVM_runPyLines_or_byteCode (PikaVM.c:2191)
==23280==    by 0x5C1E0D: pikaVM_run (PikaVM.c:2217)
==23280==    by 0x5C1D63: pikaVM_runSingleFile (PikaVM.c:2210)
==23280==  Address 0x51f5cec is 20 bytes before a block of size 32 alloc'd
==23280==    at 0x4848899: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==23280==    by 0x5B62C1: __platform_malloc (PikaPlatform.c:39)
==23280==    by 0x5B6322: __user_malloc (PikaPlatform.c:47)
==23280==    by 0x5CA3D7: pikaMalloc (dataMemory.c:51)
==23280==    by 0x5C459C: arg_init_hash (dataArg.c:55)
==23280==    by 0x5C47C6: arg_init (dataArg.c:78)
==23280==    by 0x5C496F: arg_setContent (dataArg.c:106)
==23280==    by 0x5C5E30: arg_copy (dataArg.c:342)
==23280==    by 0x5C6F94: args_pushArg (dataArgs.c:96)
==23280==    by 0x5C7F69: args_setArg (dataArgs.c:323)
==23280==    by 0x5A2CB8: __obj_setArg (PikaObj.c:264)
==23280==    by 0x5A2D6D: obj_setArg_noCopy (PikaObj.c:273)
==23280== 
==23280== Invalid read of size 4
==23280==    at 0x5E75A6: tm_run (tm_model.c:113)
==23280==    by 0x5DC868: PikaNN_net_run (PikaNN_net.c:227)
==23280==    by 0x589AD1: PikaNN_net_runMethod (__pikaBinding.c:1135)
==23280==    by 0x5B8D89: _obj_runMethodArgWithState (PikaVM.c:536)
==23280==    by 0x5B9027: obj_runMethodArgWithState_noalloc (PikaVM.c:575)
==23280==    by 0x5BB2BF: VM_instruction_handler_RUN (PikaVM.c:1021)
==23280==    by 0x5C1392: pikaVM_runInstructUnit (PikaVM.c:2048)
==23280==    by 0x5C3BD2: __pikaVM_runByteCodeFrameWithState (PikaVM.c:2558)
==23280==    by 0x5C3E75: pikaVM_runByteCodeFrame (PikaVM.c:2608)
==23280==    by 0x5C1BC2: __pikaVM_runPyLines_or_byteCode (PikaVM.c:2191)
==23280==    by 0x5C1E0D: pikaVM_run (PikaVM.c:2217)
==23280==    by 0x5C1D63: pikaVM_runSingleFile (PikaVM.c:2210)
==23280==  Address 0x51f5cd4 is 20 bytes after a block of size 80 in arena "client"
==23280== 
==23280== Invalid read of size 8
==23280==    at 0x5E75BD: tm_run (tm_model.c:114)
==23280==    by 0x5DC868: PikaNN_net_run (PikaNN_net.c:227)
==23280==    by 0x589AD1: PikaNN_net_runMethod (__pikaBinding.c:1135)
==23280==    by 0x5B8D89: _obj_runMethodArgWithState (PikaVM.c:536)
==23280==    by 0x5B9027: obj_runMethodArgWithState_noalloc (PikaVM.c:575)
==23280==    by 0x5BB2BF: VM_instruction_handler_RUN (PikaVM.c:1021)
==23280==    by 0x5C1392: pikaVM_runInstructUnit (PikaVM.c:2048)
==23280==    by 0x5C3BD2: __pikaVM_runByteCodeFrameWithState (PikaVM.c:2558)
==23280==    by 0x5C3E75: pikaVM_runByteCodeFrame (PikaVM.c:2608)
==23280==    by 0x5C1BC2: __pikaVM_runPyLines_or_byteCode (PikaVM.c:2191)
==23280==    by 0x5C1E0D: pikaVM_run (PikaVM.c:2217)
==23280==    by 0x5C1D63: pikaVM_runSingleFile (PikaVM.c:2210)
==23280==  Address 0x51f5ce0 is 32 bytes before a block of size 32 in arena "client"
==23280== 
==23280== Invalid read of size 2
==23280==    at 0x5E75CB: tm_run (tm_model.c:115)
==23280==    by 0x5DC868: PikaNN_net_run (PikaNN_net.c:227)
==23280==    by 0x589AD1: PikaNN_net_runMethod (__pikaBinding.c:1135)
==23280==    by 0x5B8D89: _obj_runMethodArgWithState (PikaVM.c:536)
==23280==    by 0x5B9027: obj_runMethodArgWithState_noalloc (PikaVM.c:575)
==23280==    by 0x5BB2BF: VM_instruction_handler_RUN (PikaVM.c:1021)
==23280==    by 0x5C1392: pikaVM_runInstructUnit (PikaVM.c:2048)
==23280==    by 0x5C3BD2: __pikaVM_runByteCodeFrameWithState (PikaVM.c:2558)
==23280==    by 0x5C3E75: pikaVM_runByteCodeFrame (PikaVM.c:2608)
==23280==    by 0x5C1BC2: __pikaVM_runPyLines_or_byteCode (PikaVM.c:2191)
==23280==    by 0x5C1E0D: pikaVM_run (PikaVM.c:2217)
==23280==    by 0x5C1D63: pikaVM_runSingleFile (PikaVM.c:2210)
==23280==  Address 0x51f5cc8 is 16 bytes after a block of size 72 alloc'd
==23280==    at 0x4848899: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==23280==    by 0x5B62C1: __platform_malloc (PikaPlatform.c:39)
==23280==    by 0x5B6322: __user_malloc (PikaPlatform.c:47)
==23280==    by 0x5CA3D7: pikaMalloc (dataMemory.c:51)
==23280==    by 0x5C459C: arg_init_hash (dataArg.c:55)
==23280==    by 0x5C47C6: arg_init (dataArg.c:78)
==23280==    by 0x5C496F: arg_setContent (dataArg.c:106)
==23280==    by 0x5C5353: arg_setStruct (dataArg.c:216)
==23280==    by 0x5C792A: args_setStructWithSize (dataArgs.c:222)
==23280==    by 0x5DC580: PikaNN_net___init__ (PikaNN_net.c:189)
==23280==    by 0x589A43: PikaNN_net___init__Method (__pikaBinding.c:1127)
==23280==    by 0x5B8D89: _obj_runMethodArgWithState (PikaVM.c:536)
==23280== 
==23280== Invalid read of size 4
==23280==    at 0x5E7625: tm_run (tm_model.c:119)
==23280==    by 0x5DC868: PikaNN_net_run (PikaNN_net.c:227)
==23280==    by 0x589AD1: PikaNN_net_runMethod (__pikaBinding.c:1135)
==23280==    by 0x5B8D89: _obj_runMethodArgWithState (PikaVM.c:536)
==23280==    by 0x5B9027: obj_runMethodArgWithState_noalloc (PikaVM.c:575)
==23280==    by 0x5BB2BF: VM_instruction_handler_RUN (PikaVM.c:1021)
==23280==    by 0x5C1392: pikaVM_runInstructUnit (PikaVM.c:2048)
==23280==    by 0x5C3BD2: __pikaVM_runByteCodeFrameWithState (PikaVM.c:2558)
==23280==    by 0x5C3E75: pikaVM_runByteCodeFrame (PikaVM.c:2608)
==23280==    by 0x5C1BC2: __pikaVM_runPyLines_or_byteCode (PikaVM.c:2191)
==23280==    by 0x5C1E0D: pikaVM_run (PikaVM.c:2217)
==23280==    by 0x5C1D63: pikaVM_runSingleFile (PikaVM.c:2210)
==23280==  Address 0x51f5cf4 is 12 bytes before a block of size 32 alloc'd
==23280==    at 0x4848899: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==23280==    by 0x5B62C1: __platform_malloc (PikaPlatform.c:39)
==23280==    by 0x5B6322: __user_malloc (PikaPlatform.c:47)
==23280==    by 0x5CA3D7: pikaMalloc (dataMemory.c:51)
==23280==    by 0x5C459C: arg_init_hash (dataArg.c:55)
==23280==    by 0x5C47C6: arg_init (dataArg.c:78)
==23280==    by 0x5C496F: arg_setContent (dataArg.c:106)
==23280==    by 0x5C5E30: arg_copy (dataArg.c:342)
==23280==    by 0x5C6F94: args_pushArg (dataArgs.c:96)
==23280==    by 0x5C7F69: args_setArg (dataArgs.c:323)
==23280==    by 0x5A2CB8: __obj_setArg (PikaObj.c:264)
==23280==    by 0x5A2D6D: obj_setArg_noCopy (PikaObj.c:273)
==23280== 
==23280== Invalid read of size 4
==23280==    at 0x5E762F: tm_run (tm_model.c:119)
==23280==    by 0x5DC868: PikaNN_net_run (PikaNN_net.c:227)
==23280==    by 0x589AD1: PikaNN_net_runMethod (__pikaBinding.c:1135)
==23280==    by 0x5B8D89: _obj_runMethodArgWithState (PikaVM.c:536)
==23280==    by 0x5B9027: obj_runMethodArgWithState_noalloc (PikaVM.c:575)
==23280==    by 0x5BB2BF: VM_instruction_handler_RUN (PikaVM.c:1021)
==23280==    by 0x5C1392: pikaVM_runInstructUnit (PikaVM.c:2048)
==23280==    by 0x5C3BD2: __pikaVM_runByteCodeFrameWithState (PikaVM.c:2558)
==23280==    by 0x5C3E75: pikaVM_runByteCodeFrame (PikaVM.c:2608)
==23280==    by 0x5C1BC2: __pikaVM_runPyLines_or_byteCode (PikaVM.c:2191)
==23280==    by 0x5C1E0D: pikaVM_run (PikaVM.c:2217)
==23280==    by 0x5C1D63: pikaVM_runSingleFile (PikaVM.c:2210)
==23280==  Address 0x51f5cf0 is 16 bytes before a block of size 32 alloc'd
==23280==    at 0x4848899: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==23280==    by 0x5B62C1: __platform_malloc (PikaPlatform.c:39)
==23280==    by 0x5B6322: __user_malloc (PikaPlatform.c:47)
==23280==    by 0x5CA3D7: pikaMalloc (dataMemory.c:51)
==23280==    by 0x5C459C: arg_init_hash (dataArg.c:55)
==23280==    by 0x5C47C6: arg_init (dataArg.c:78)
==23280==    by 0x5C496F: arg_setContent (dataArg.c:106)
==23280==    by 0x5C5E30: arg_copy (dataArg.c:342)
==23280==    by 0x5C6F94: args_pushArg (dataArgs.c:96)
==23280==    by 0x5C7F69: args_setArg (dataArgs.c:323)
==23280==    by 0x5A2CB8: __obj_setArg (PikaObj.c:264)
==23280==    by 0x5A2D6D: obj_setArg_noCopy (PikaObj.c:273)
==23280== 
==23280== Invalid read of size 4
==23280==    at 0x5E763B: tm_run (tm_model.c:119)
==23280==    by 0x5DC868: PikaNN_net_run (PikaNN_net.c:227)
==23280==    by 0x589AD1: PikaNN_net_runMethod (__pikaBinding.c:1135)
==23280==    by 0x5B8D89: _obj_runMethodArgWithState (PikaVM.c:536)
==23280==    by 0x5B9027: obj_runMethodArgWithState_noalloc (PikaVM.c:575)
==23280==    by 0x5BB2BF: VM_instruction_handler_RUN (PikaVM.c:1021)
==23280==    by 0x5C1392: pikaVM_runInstructUnit (PikaVM.c:2048)
==23280==    by 0x5C3BD2: __pikaVM_runByteCodeFrameWithState (PikaVM.c:2558)
==23280==    by 0x5C3E75: pikaVM_runByteCodeFrame (PikaVM.c:2608)
==23280==    by 0x5C1BC2: __pikaVM_runPyLines_or_byteCode (PikaVM.c:2191)
==23280==    by 0x5C1E0D: pikaVM_run (PikaVM.c:2217)
==23280==    by 0x5C1D63: pikaVM_runSingleFile (PikaVM.c:2210)
==23280==  Address 0x51f5cec is 20 bytes before a block of size 32 alloc'd
==23280==    at 0x4848899: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==23280==    by 0x5B62C1: __platform_malloc (PikaPlatform.c:39)
==23280==    by 0x5B6322: __user_malloc (PikaPlatform.c:47)
==23280==    by 0x5CA3D7: pikaMalloc (dataMemory.c:51)
==23280==    by 0x5C459C: arg_init_hash (dataArg.c:55)
==23280==    by 0x5C47C6: arg_init (dataArg.c:78)
==23280==    by 0x5C496F: arg_setContent (dataArg.c:106)
==23280==    by 0x5C5E30: arg_copy (dataArg.c:342)
==23280==    by 0x5C6F94: args_pushArg (dataArgs.c:96)
==23280==    by 0x5C7F69: args_setArg (dataArgs.c:323)
==23280==    by 0x5A2CB8: __obj_setArg (PikaObj.c:264)
==23280==    by 0x5A2D6D: obj_setArg_noCopy (PikaObj.c:273)
==23280== 
==23280== Invalid read of size 4
==23280==    at 0x5E7646: tm_run (tm_model.c:119)
==23280==    by 0x5DC868: PikaNN_net_run (PikaNN_net.c:227)
==23280==    by 0x589AD1: PikaNN_net_runMethod (__pikaBinding.c:1135)
==23280==    by 0x5B8D89: _obj_runMethodArgWithState (PikaVM.c:536)
==23280==    by 0x5B9027: obj_runMethodArgWithState_noalloc (PikaVM.c:575)
==23280==    by 0x5BB2BF: VM_instruction_handler_RUN (PikaVM.c:1021)
==23280==    by 0x5C1392: pikaVM_runInstructUnit (PikaVM.c:2048)
==23280==    by 0x5C3BD2: __pikaVM_runByteCodeFrameWithState (PikaVM.c:2558)
==23280==    by 0x5C3E75: pikaVM_runByteCodeFrame (PikaVM.c:2608)
==23280==    by 0x5C1BC2: __pikaVM_runPyLines_or_byteCode (PikaVM.c:2191)
==23280==    by 0x5C1E0D: pikaVM_run (PikaVM.c:2217)
==23280==    by 0x5C1D63: pikaVM_runSingleFile (PikaVM.c:2210)
==23280==  Address 0x51f5ce8 is 24 bytes before a block of size 32 alloc'd
==23280==    at 0x4848899: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==23280==    by 0x5B62C1: __platform_malloc (PikaPlatform.c:39)
==23280==    by 0x5B6322: __user_malloc (PikaPlatform.c:47)
==23280==    by 0x5CA3D7: pikaMalloc (dataMemory.c:51)
==23280==    by 0x5C459C: arg_init_hash (dataArg.c:55)
==23280==    by 0x5C47C6: arg_init (dataArg.c:78)
==23280==    by 0x5C496F: arg_setContent (dataArg.c:106)
==23280==    by 0x5C5E30: arg_copy (dataArg.c:342)
==23280==    by 0x5C6F94: args_pushArg (dataArgs.c:96)
==23280==    by 0x5C7F69: args_setArg (dataArgs.c:323)
==23280==    by 0x5A2CB8: __obj_setArg (PikaObj.c:264)
==23280==    by 0x5A2D6D: obj_setArg_noCopy (PikaObj.c:273)
==23280== 
==23280== Invalid read of size 2
==23280==    at 0x5E76B2: tm_run (tm_model.c:123)
==23280==    by 0x5DC868: PikaNN_net_run (PikaNN_net.c:227)
==23280==    by 0x589AD1: PikaNN_net_runMethod (__pikaBinding.c:1135)
==23280==    by 0x5B8D89: _obj_runMethodArgWithState (PikaVM.c:536)
==23280==    by 0x5B9027: obj_runMethodArgWithState_noalloc (PikaVM.c:575)
==23280==    by 0x5BB2BF: VM_instruction_handler_RUN (PikaVM.c:1021)
==23280==    by 0x5C1392: pikaVM_runInstructUnit (PikaVM.c:2048)
==23280==    by 0x5C3BD2: __pikaVM_runByteCodeFrameWithState (PikaVM.c:2558)
==23280==    by 0x5C3E75: pikaVM_runByteCodeFrame (PikaVM.c:2608)
==23280==    by 0x5C1BC2: __pikaVM_runPyLines_or_byteCode (PikaVM.c:2191)
==23280==    by 0x5C1E0D: pikaVM_run (PikaVM.c:2217)
==23280==    by 0x5C1D63: pikaVM_runSingleFile (PikaVM.c:2210)
==23280==  Address 0x51f5cfe is 2 bytes before a block of size 32 alloc'd
==23280==    at 0x4848899: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==23280==    by 0x5B62C1: __platform_malloc (PikaPlatform.c:39)
==23280==    by 0x5B6322: __user_malloc (PikaPlatform.c:47)
==23280==    by 0x5CA3D7: pikaMalloc (dataMemory.c:51)
==23280==    by 0x5C459C: arg_init_hash (dataArg.c:55)
==23280==    by 0x5C47C6: arg_init (dataArg.c:78)
==23280==    by 0x5C496F: arg_setContent (dataArg.c:106)
==23280==    by 0x5C5E30: arg_copy (dataArg.c:342)
==23280==    by 0x5C6F94: args_pushArg (dataArgs.c:96)
==23280==    by 0x5C7F69: args_setArg (dataArgs.c:323)
==23280==    by 0x5A2CB8: __obj_setArg (PikaObj.c:264)
==23280==    by 0x5A2D6D: obj_setArg_noCopy (PikaObj.c:273)
==23280== 
==23280== Invalid read of size 1
==23280==    at 0x5E76C3: tm_run (tm_model.c:123)
==23280==    by 0x5DC868: PikaNN_net_run (PikaNN_net.c:227)
==23280==    by 0x589AD1: PikaNN_net_runMethod (__pikaBinding.c:1135)
==23280==    by 0x5B8D89: _obj_runMethodArgWithState (PikaVM.c:536)
==23280==    by 0x5B9027: obj_runMethodArgWithState_noalloc (PikaVM.c:575)
==23280==    by 0x5BB2BF: VM_instruction_handler_RUN (PikaVM.c:1021)
==23280==    by 0x5C1392: pikaVM_runInstructUnit (PikaVM.c:2048)
==23280==    by 0x5C3BD2: __pikaVM_runByteCodeFrameWithState (PikaVM.c:2558)
==23280==    by 0x5C3E75: pikaVM_runByteCodeFrame (PikaVM.c:2608)
==23280==    by 0x5C1BC2: __pikaVM_runPyLines_or_byteCode (PikaVM.c:2191)
==23280==    by 0x5C1E0D: pikaVM_run (PikaVM.c:2217)
==23280==    by 0x5C1D63: pikaVM_runSingleFile (PikaVM.c:2210)
==23280==  Address 0x51f5cfd is 3 bytes before a block of size 32 alloc'd
==23280==    at 0x4848899: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==23280==    by 0x5B62C1: __platform_malloc (PikaPlatform.c:39)
==23280==    by 0x5B6322: __user_malloc (PikaPlatform.c:47)
==23280==    by 0x5CA3D7: pikaMalloc (dataMemory.c:51)
==23280==    by 0x5C459C: arg_init_hash (dataArg.c:55)
==23280==    by 0x5C47C6: arg_init (dataArg.c:78)
==23280==    by 0x5C496F: arg_setContent (dataArg.c:106)
==23280==    by 0x5C5E30: arg_copy (dataArg.c:342)
==23280==    by 0x5C6F94: args_pushArg (dataArgs.c:96)
==23280==    by 0x5C7F69: args_setArg (dataArgs.c:323)
==23280==    by 0x5A2CB8: __obj_setArg (PikaObj.c:264)
==23280==    by 0x5A2D6D: obj_setArg_noCopy (PikaObj.c:273)
==23280== 
==23280== Invalid read of size 1
==23280==    at 0x5E76CF: tm_run (tm_model.c:122)
==23280==    by 0x5DC868: PikaNN_net_run (PikaNN_net.c:227)
==23280==    by 0x589AD1: PikaNN_net_runMethod (__pikaBinding.c:1135)
==23280==    by 0x5B8D89: _obj_runMethodArgWithState (PikaVM.c:536)
==23280==    by 0x5B9027: obj_runMethodArgWithState_noalloc (PikaVM.c:575)
==23280==    by 0x5BB2BF: VM_instruction_handler_RUN (PikaVM.c:1021)
==23280==    by 0x5C1392: pikaVM_runInstructUnit (PikaVM.c:2048)
==23280==    by 0x5C3BD2: __pikaVM_runByteCodeFrameWithState (PikaVM.c:2558)
==23280==    by 0x5C3E75: pikaVM_runByteCodeFrame (PikaVM.c:2608)
==23280==    by 0x5C1BC2: __pikaVM_runPyLines_or_byteCode (PikaVM.c:2191)
==23280==    by 0x5C1E0D: pikaVM_run (PikaVM.c:2217)
==23280==    by 0x5C1D63: pikaVM_runSingleFile (PikaVM.c:2210)
==23280==  Address 0x51f5cfc is 4 bytes before a block of size 32 alloc'd
==23280==    at 0x4848899: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==23280==    by 0x5B62C1: __platform_malloc (PikaPlatform.c:39)
==23280==    by 0x5B6322: __user_malloc (PikaPlatform.c:47)
==23280==    by 0x5CA3D7: pikaMalloc (dataMemory.c:51)
==23280==    by 0x5C459C: arg_init_hash (dataArg.c:55)
==23280==    by 0x5C47C6: arg_init (dataArg.c:78)
==23280==    by 0x5C496F: arg_setContent (dataArg.c:106)
==23280==    by 0x5C5E30: arg_copy (dataArg.c:342)
==23280==    by 0x5C6F94: args_pushArg (dataArgs.c:96)
==23280==    by 0x5C7F69: args_setArg (dataArgs.c:323)
==23280==    by 0x5A2CB8: __obj_setArg (PikaObj.c:264)
==23280==    by 0x5A2D6D: obj_setArg_noCopy (PikaObj.c:273)
==23280== 
==23280== Invalid read of size 1
==23280==    at 0x5E76DB: tm_run (tm_model.c:122)
==23280==    by 0x5DC868: PikaNN_net_run (PikaNN_net.c:227)
==23280==    by 0x589AD1: PikaNN_net_runMethod (__pikaBinding.c:1135)
==23280==    by 0x5B8D89: _obj_runMethodArgWithState (PikaVM.c:536)
==23280==    by 0x5B9027: obj_runMethodArgWithState_noalloc (PikaVM.c:575)
==23280==    by 0x5BB2BF: VM_instruction_handler_RUN (PikaVM.c:1021)
==23280==    by 0x5C1392: pikaVM_runInstructUnit (PikaVM.c:2048)
==23280==    by 0x5C3BD2: __pikaVM_runByteCodeFrameWithState (PikaVM.c:2558)
==23280==    by 0x5C3E75: pikaVM_runByteCodeFrame (PikaVM.c:2608)
==23280==    by 0x5C1BC2: __pikaVM_runPyLines_or_byteCode (PikaVM.c:2191)
==23280==    by 0x5C1E0D: pikaVM_run (PikaVM.c:2217)
==23280==    by 0x5C1D63: pikaVM_runSingleFile (PikaVM.c:2210)
==23280==  Address 0x51f5cfb is 5 bytes before a block of size 32 alloc'd
==23280==    at 0x4848899: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==23280==    by 0x5B62C1: __platform_malloc (PikaPlatform.c:39)
==23280==    by 0x5B6322: __user_malloc (PikaPlatform.c:47)
==23280==    by 0x5CA3D7: pikaMalloc (dataMemory.c:51)
==23280==    by 0x5C459C: arg_init_hash (dataArg.c:55)
==23280==    by 0x5C47C6: arg_init (dataArg.c:78)
==23280==    by 0x5C496F: arg_setContent (dataArg.c:106)
==23280==    by 0x5C5E30: arg_copy (dataArg.c:342)
==23280==    by 0x5C6F94: args_pushArg (dataArgs.c:96)
==23280==    by 0x5C7F69: args_setArg (dataArgs.c:323)
==23280==    by 0x5A2CB8: __obj_setArg (PikaObj.c:264)
==23280==    by 0x5A2D6D: obj_setArg_noCopy (PikaObj.c:273)
==23280== 
==23280== Invalid read of size 1
==23280==    at 0x5E76E7: tm_run (tm_model.c:122)
==23280==    by 0x5DC868: PikaNN_net_run (PikaNN_net.c:227)
==23280==    by 0x589AD1: PikaNN_net_runMethod (__pikaBinding.c:1135)
==23280==    by 0x5B8D89: _obj_runMethodArgWithState (PikaVM.c:536)
==23280==    by 0x5B9027: obj_runMethodArgWithState_noalloc (PikaVM.c:575)
==23280==    by 0x5BB2BF: VM_instruction_handler_RUN (PikaVM.c:1021)
==23280==    by 0x5C1392: pikaVM_runInstructUnit (PikaVM.c:2048)
==23280==    by 0x5C3BD2: __pikaVM_runByteCodeFrameWithState (PikaVM.c:2558)
==23280==    by 0x5C3E75: pikaVM_runByteCodeFrame (PikaVM.c:2608)
==23280==    by 0x5C1BC2: __pikaVM_runPyLines_or_byteCode (PikaVM.c:2191)
==23280==    by 0x5C1E0D: pikaVM_run (PikaVM.c:2217)
==23280==    by 0x5C1D63: pikaVM_runSingleFile (PikaVM.c:2210)
==23280==  Address 0x51f5cfa is 6 bytes before a block of size 32 alloc'd
==23280==    at 0x4848899: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==23280==    by 0x5B62C1: __platform_malloc (PikaPlatform.c:39)
==23280==    by 0x5B6322: __user_malloc (PikaPlatform.c:47)
==23280==    by 0x5CA3D7: pikaMalloc (dataMemory.c:51)
==23280==    by 0x5C459C: arg_init_hash (dataArg.c:55)
==23280==    by 0x5C47C6: arg_init (dataArg.c:78)
==23280==    by 0x5C496F: arg_setContent (dataArg.c:106)
==23280==    by 0x5C5E30: arg_copy (dataArg.c:342)
==23280==    by 0x5C6F94: args_pushArg (dataArgs.c:96)
==23280==    by 0x5C7F69: args_setArg (dataArgs.c:323)
==23280==    by 0x5A2CB8: __obj_setArg (PikaObj.c:264)
==23280==    by 0x5A2D6D: obj_setArg_noCopy (PikaObj.c:273)
==23280== 
==23280== Invalid read of size 1
==23280==    at 0x5E76F3: tm_run (tm_model.c:122)
==23280==    by 0x5DC868: PikaNN_net_run (PikaNN_net.c:227)
==23280==    by 0x589AD1: PikaNN_net_runMethod (__pikaBinding.c:1135)
==23280==    by 0x5B8D89: _obj_runMethodArgWithState (PikaVM.c:536)
==23280==    by 0x5B9027: obj_runMethodArgWithState_noalloc (PikaVM.c:575)
==23280==    by 0x5BB2BF: VM_instruction_handler_RUN (PikaVM.c:1021)
==23280==    by 0x5C1392: pikaVM_runInstructUnit (PikaVM.c:2048)
==23280==    by 0x5C3BD2: __pikaVM_runByteCodeFrameWithState (PikaVM.c:2558)
==23280==    by 0x5C3E75: pikaVM_runByteCodeFrame (PikaVM.c:2608)
==23280==    by 0x5C1BC2: __pikaVM_runPyLines_or_byteCode (PikaVM.c:2191)
==23280==    by 0x5C1E0D: pikaVM_run (PikaVM.c:2217)
==23280==    by 0x5C1D63: pikaVM_runSingleFile (PikaVM.c:2210)
==23280==  Address 0x51f5cf9 is 7 bytes before a block of size 32 alloc'd
==23280==    at 0x4848899: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==23280==    by 0x5B62C1: __platform_malloc (PikaPlatform.c:39)
==23280==    by 0x5B6322: __user_malloc (PikaPlatform.c:47)
==23280==    by 0x5CA3D7: pikaMalloc (dataMemory.c:51)
==23280==    by 0x5C459C: arg_init_hash (dataArg.c:55)
==23280==    by 0x5C47C6: arg_init (dataArg.c:78)
==23280==    by 0x5C496F: arg_setContent (dataArg.c:106)
==23280==    by 0x5C5E30: arg_copy (dataArg.c:342)
==23280==    by 0x5C6F94: args_pushArg (dataArgs.c:96)
==23280==    by 0x5C7F69: args_setArg (dataArgs.c:323)
==23280==    by 0x5A2CB8: __obj_setArg (PikaObj.c:264)
==23280==    by 0x5A2D6D: obj_setArg_noCopy (PikaObj.c:273)
==23280== 
==23280== Invalid read of size 1
==23280==    at 0x5E7704: tm_run (tm_model.c:121)
==23280==    by 0x5DC868: PikaNN_net_run (PikaNN_net.c:227)
==23280==    by 0x589AD1: PikaNN_net_runMethod (__pikaBinding.c:1135)
==23280==    by 0x5B8D89: _obj_runMethodArgWithState (PikaVM.c:536)
==23280==    by 0x5B9027: obj_runMethodArgWithState_noalloc (PikaVM.c:575)
==23280==    by 0x5BB2BF: VM_instruction_handler_RUN (PikaVM.c:1021)
==23280==    by 0x5C1392: pikaVM_runInstructUnit (PikaVM.c:2048)
==23280==    by 0x5C3BD2: __pikaVM_runByteCodeFrameWithState (PikaVM.c:2558)
==23280==    by 0x5C3E75: pikaVM_runByteCodeFrame (PikaVM.c:2608)
==23280==    by 0x5C1BC2: __pikaVM_runPyLines_or_byteCode (PikaVM.c:2191)
==23280==    by 0x5C1E0D: pikaVM_run (PikaVM.c:2217)
==23280==    by 0x5C1D63: pikaVM_runSingleFile (PikaVM.c:2210)
==23280==  Address 0x51f5cf8 is 8 bytes before a block of size 32 alloc'd
==23280==    at 0x4848899: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==23280==    by 0x5B62C1: __platform_malloc (PikaPlatform.c:39)
==23280==    by 0x5B6322: __user_malloc (PikaPlatform.c:47)
==23280==    by 0x5CA3D7: pikaMalloc (dataMemory.c:51)
==23280==    by 0x5C459C: arg_init_hash (dataArg.c:55)
==23280==    by 0x5C47C6: arg_init (dataArg.c:78)
==23280==    by 0x5C496F: arg_setContent (dataArg.c:106)
==23280==    by 0x5C5E30: arg_copy (dataArg.c:342)
==23280==    by 0x5C6F94: args_pushArg (dataArgs.c:96)
==23280==    by 0x5C7F69: args_setArg (dataArgs.c:323)
==23280==    by 0x5A2CB8: __obj_setArg (PikaObj.c:264)
==23280==    by 0x5A2D6D: obj_setArg_noCopy (PikaObj.c:273)
==23280== 
===tm_run use 11.800 ms
tm run error: 7
[       OK ] PikaNN.test1 (624 ms)
[----------] 1 test from PikaNN (646 ms total)

[----------] Global test environment tear-down
[==========] 1 test from 1 test suite ran. (757 ms total)
[  PASSED  ] 1 test.
libgcov profiling error:/root/pikascript/port/linux/build/test/CMakeFiles/pikascript_test.dir/PikaNN-test.cpp.gcda:overwriting an existing profile data with a different timestamp
==23280== 
==23280== HEAP SUMMARY:
==23280==     in use at exit: 0 bytes in 0 blocks
==23280==   total heap usage: 7,605 allocs, 7,605 frees, 12,447,538 bytes allocated
==23280== 
==23280== All heap blocks were freed -- no leaks are possible
==23280== 
==23280== For lists of detected and suppressed errors, rerun with: -s
==23280== ERROR SUMMARY: 16 errors from 16 contexts (suppressed: 0 from 0)
pikasTech commented 2 years ago

@Renzhihan 任总有空看一下?

pikasTech commented 2 years ago

https://github.com/pikasTech/pikascript/commit/8734548a37c20b2354b67f5b43ffa4e4f6542e09 fixed