9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
* [9fans] acid. cormap vs. symmap
@ 2010-04-04 20:10 Sir Guenther
  2010-04-04 20:55 ` erik quanstrom
  0 siblings, 1 reply; 4+ messages in thread
From: Sir Guenther @ 2010-04-04 20:10 UTC (permalink / raw)
  To: 9fans

[-- Attachment #1: Type: text/plain, Size: 708 bytes --]

Hey,

I am currently trying to debug a program, where the image map acid builds is
pretty much fubar. This obviously breaks a lot of stuff in acid. Still it
makes me wondering about some design decissions.

eg. asm from port.
It takes it's instructions from symmap. Why? I am interested at the
_current_ instructions?
Okay this is not really a problem...I just override asm and done.

However replacing @addr++ with *addr++ reveils another interesting thing.
The increment operation searches for the instruction length in the symmap by
default. Which obviously breaks again...
And I cannot override that from within acid itself.

Am I missing something obvious here?

Best regards,
Andre

[-- Attachment #2: Type: text/html, Size: 748 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [9fans] acid. cormap vs. symmap
  2010-04-04 20:10 [9fans] acid. cormap vs. symmap Sir Guenther
@ 2010-04-04 20:55 ` erik quanstrom
  2010-04-04 21:03   ` Sir Guenther
  0 siblings, 1 reply; 4+ messages in thread
From: erik quanstrom @ 2010-04-04 20:55 UTC (permalink / raw)
  To: 9fans

> However replacing @addr++ with *addr++ reveils another interesting thing.
> The increment operation searches for the instruction length in the symmap by
> default.

the symbol table has nothing to do with it.  the behavior
of ++ depends on the type of addr.  in your case, it has
type \I.  \I interprets the (pointed-to) data as instructions.
compare:

acid /bin/cat
acid: x=read\I
acid: x++
SUBL	$0x18,SP
acid: x++
INB	DX,AL
acid: x++
SBBB	CL,0x891c244c(BX)
acid: x++
ORB	$0x24,AL

with

acid: x=read
acid: x++
0x000013a8
acid: x++
0x000013ac
acid: x++
0x000013b0
acid: x++
0x000013b4

- erik



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [9fans] acid. cormap vs. symmap
  2010-04-04 20:55 ` erik quanstrom
@ 2010-04-04 21:03   ` Sir Guenther
  2010-04-04 21:19     ` Sir Guenther
  0 siblings, 1 reply; 4+ messages in thread
From: Sir Guenther @ 2010-04-04 21:03 UTC (permalink / raw)
  To: Fans of the OS Plan 9 from Bell Labs

[-- Attachment #1: Type: text/plain, Size: 702 bytes --]

int
fmtsize(Value *v)
{
       int ret;

       switch(v->store.fmt) {
       default:
               return  fsize[(unsigned char)v->store.fmt];
       case 'i':
       case 'I':
               if(v->type != TINT || mach == 0)
                       error("no size for i fmt pointer ++/--");
               ret = (*mach->instsize)(symmap, v->store.u.ival);
               if(ret < 0) {
                       ret = (*mach->instsize)(symmap, v->store.u.ival);
                       if(ret < 0)
                               error("%r");
               }
               return ret;
       }
}

---
it's always using symmap. replacing it with cormap fixed my problems.

Andre

[-- Attachment #2: Type: text/html, Size: 885 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [9fans] acid. cormap vs. symmap
  2010-04-04 21:03   ` Sir Guenther
@ 2010-04-04 21:19     ` Sir Guenther
  0 siblings, 0 replies; 4+ messages in thread
From: Sir Guenther @ 2010-04-04 21:19 UTC (permalink / raw)
  To: Fans of the OS Plan 9 from Bell Labs

[-- Attachment #1: Type: text/plain, Size: 89 bytes --]

Plan9s acid actually does it right.

I consider this a bug in p9ps acid.

--
Andre

[-- Attachment #2: Type: text/html, Size: 105 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2010-04-04 21:19 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-04-04 20:10 [9fans] acid. cormap vs. symmap Sir Guenther
2010-04-04 20:55 ` erik quanstrom
2010-04-04 21:03   ` Sir Guenther
2010-04-04 21:19     ` Sir Guenther

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).