Re: phix and debugging question
- Posted by petelomax Jun 14, 2018
- 2094 views
begin said...
trace(1) and F6 dies with
pDiagN.e line 3300: symtab[220] bad S_NTyp[1] H:\Euphoriaprog\Microexp\testmicroexp.ew:-1 (era=#00600DDC, from_addr=#0, ret_addr=#0) type check failure, ???(varno=8738[or_ecx=#00002222]) is ???
Can you try grabbing a fuller screenshot? For example, running Greg's "wrong file mode for attempted operation" sample as recently posted, trace(1) F6 (and <Ctrl A><CR>) gives me:
..Files (x86)\Phix\builtins\database.e F1=main F2=trace F3=help ? q Q ! 296: end function 297: 298: procedure put1(integer x) 299: -- write 1 byte to current database file 300: puts(current_db, x) 301: end procedure 302: 303: procedure put4(atom x) 304: -- write 4 bytes to current database file 305: -- x is 32-bits max 306: poke4(mem0, x) -- faster than doing divides etc. 307==> puts(current_db, peek(memseq)) C:\Program Files (x86)\Phix\builtins\database.e:307 in procedure put4() wrong file mode for attempted operation x = 45ocedure putn(sequence s) ... called from C:\Program Files (x86)\Phix\builtins\database.e:508 in function db_allocate()uts(current_db, s) n = 41d procedure free_list = <novalue> size = <novalue>fe_seek(atom pos) size_ptr = <novalue>ition in the current db file addr = <novalue>current_db, pos)!=0 then free_count = 0tal(sprintf("seek to position %d failed!\n", pos)) remaining = <novalue> i = <novalue> Global & Local Variables --> see C:\Program Files (x86)\Phix\ex.err Press Enter...
So obviously, in that case, it is failing on line 307 (and obviously the fact that you get a line number of -1 instead, is the biggest problem here).
Hopefully that somewhat garbled screen may contain some vital clues missing from the ex.err.
begin said...
ps if you don' need the symtab (previous post) any more, i edit and delete them - to shorten the post.
yeah, that may as well go now.
Pete