* [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).