This is the mail archive of the frysk@sources.redhat.com mailing list for the frysk project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: implement backtraces for AMD64


On Sun, Sep 17, 2006 at 04:45:00AM -0300, Alexandre Oliva wrote:
> This patch adds the missing bits to enable libunwind-based backtraces
> on AMD64/EM64T.  A few notes:
> 
> - The existing IsaEMT64 is misnamed: the correct spelling is EM64T,
> not EMT64.  We should probably prefer the more neutral X86_64 name (as
> in the ELF data structure), or favor AMD64, like I did in the new
> RegisterAMD64 class (just trying to set balance ;-)
X86_64 is a neutral one, and emt64/em64t/amd64 should be replaced by
x86_64 or x8664 later.
> 
> - I'm not entirely happy with adding libunwind-specific information to
> Isa, but Isa doesn't currently provide enough information to enable
> some alternate implementation that would keep everything entirely
> separate.  If we had a method to return the Isa name or the ELF
> machine type or some such, then it would be possible to turn that into
> a reworked Register* factory/singleton pattern similar to that used
> for Isa, all within lib/unwind.  It certainly doesn't help that
> lib/unwind is in frysk-imports, so it can't use anything in
> frysk-core; frysk-core/rt would have to have the glue.
I have added a method toString() in Isa to return Isa name, but I did
not check it in.  If you think it is needed, I will code a patch for
it.
Personally, I think Isa.toString is useful.

There has been a factory for Isa,
frysk-core/frysk/proc/IsaFacotry.java, and this factory gets machine
type from ELF file, /proc/<pid>/exe.

It is fine to me to add a register factory for libunwind.
> 
> Comments?  Any architectural guidance?  Or is this ok to install?
> 

-- 
Yao Qi


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]