Hello While understanding how refs work inside nupas, i decided to try to implement the same function nupas has to find mailbox references in acid langauge, so i did:
defn findmboxrefs(mb,fids) { local f, refs; f=fids; while f!=0 do { print("f=", f\X,"\n"); if f->mb==mb then refs++; print("f->mb=", f->mb\X," =? mb=",mb\X,"\n"); f=f->next; } print("refs ==", refs,"\n"); } using a Broken nupas (broked by an assert call), i got this: acid: findmboxrefs(*checkmboxrefs:mb,fids); f=0x0003a090 f->mb=0x00000000 =? mb=0x0004a468 f=0x0004bf68 f->mb=0x8d1c2444 =? mb=0x0004a468 f=0x89ffffe4 <stdin>:75: (error) indir: can't read address 0x89ffffe4: bad arg in system call is that related to something wrongly done in the acid function? that means that there is an f which is pointing to an incorrect place? or means that as the process is broken, acid cannot read some parts of it? i forgot another possible issue, the broken process is owned by another user, i just chmod'ed /proc/pid/*. . . . thanks gabi