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


Reply via email to