Thank you all for your prompt replies. I've tried the following but it doesn't work either:
if ((mem_op->s.logical_address >= 0xff26e000) && (mem_op->s.logical_address < 0xff26e00f))
printf("Accessing logical address %x\n", mem_op->s.logical_address);
For example, I put magic breakpoints before and after "value = ptr[0]" and step through the instructions in Simics, I can see that one of the registers contain 0x00000000ff26e000, but it doesn't show up in ruby_operate. Perhaps I'm missing something..
Dave
----- Original Message ----
From: Mike Marty <mikem@xxxxxxxxxxx>
To: Gems Users <gems-users@xxxxxxxxxxx>
Sent: Wednesday, January 17, 2007 11:31:57 AM
Subject: Re: [Gems-users] ruby_operate
He is better off using the virtual address available in mem_op (I think)
--Mike
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Is the address 0xff26e00 a physical or logical address? If you just
> obtained the address from the program you need to first get the
> physical address translation of it. The easiest way (that I can
> think of) would be to issue a magic break point after you printed the
> instruction, and ask simics for the translation (check the simics
> reference manual on how to do this). Then you'd need to change the
> physical address to the translated value. You might also want to
> consider creating a new magic instruction that first puts the
> physical address in a known register and then translates that address
> on a magic reference (you'd also have to make sure you read/wrote a
> value to that address beforehand so that simics can actually perform
> the translation and find it in the processors TLB). Check out the
> simics.net for more information.
>
> phil
> On Jan 17, 2007, at 1:15 PM, Dave Z. wrote:
>
> > Hi,
> >
> > I'm trying to catch some accesses in ruby_operate (ruby.c) using
> > the following:
> >
> > if ((mem_op->s.physical_address >= 0xff26e000) && (mem_op-
> > >s.physical_address < 0xff26e00f))
> > printf("Accessing physical address %x\n", mem_op-
> > >s.physical_address);
> >
> > In my benchmarks, I have int* ptr (where ptr = ff26e000). But the
> > following accesses are not caught in ruby_operate:
> >
> > ptr[0] = value;
> > x = ptr[1];
> > ...
> >
> > Is there something wrong with what I'm doing?
> >
> > Thanks
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > ______________________________________________________________________
> > ______________
> > Never miss an email again!
> > Yahoo! Toolbar alerts you the instant new Mail arrives.
> > http://tools.search.yahoo.com/toolbar/features/mail/
> >
> > _______________________________________________
> > Gems-users mailing list
> > Gems-users@xxxxxxxxxxx
> > https://lists.cs.wisc.edu/mailman/listinfo/gems-users
> > Use Google to search the GEMS Users mailing list by adding
> > "site:https://lists.cs.wisc.edu/archive/gems-users/"; to your search.
> >
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.3 (Darwin)
>
> iD8DBQFFrngYkSK2LwjyZ3wRAjjtAKCgjyZCHEwObauyqIGjfdXiL0VFOgCghOnY
> kHjl+rU+qISFBKOQiSpZ7Cc=
> =OBAR
> -----END PGP SIGNATURE-----
> _______________________________________________
> Gems-users mailing list
> Gems-users@xxxxxxxxxxx
> https://lists.cs.wisc.edu/mailman/listinfo/gems-users
> Use Google to search the GEMS Users mailing list by adding "site:https://lists.cs.wisc.edu/archive/gems-users/"; to your search.
>
_______________________________________________
Gems-users mailing list
Gems-users@xxxxxxxxxxx
https://lists.cs.wisc.edu/mailman/listinfo/gems-users
Use Google to search the GEMS Users mailing list by adding "site:https://lists.cs.wisc.edu/archive/gems-users/"; to your search.
____________________________________________________________________________________
Expecting? Get great news right away with email Auto-Check.
Try the Yahoo! Mail Beta.
http://advision.webevents.yahoo.com/mailbeta/newmail_tools.html
|