|
From: Greg P. <gp...@us...> - 2005-08-25 21:53:28
|
Julian Seward writes: > Great stuff. What is the current state of your port? I have > a MacOS 10.4 box to hand and would be interested to try it out. > > It would be good to have an overview of the state of the port > and the directions you are going with it. I'm just starting work on Valgrind 3.x. It will be some time before it builds, much less runs anything. Some of my work from 2.x should carry over, especially the launch process, but this time I'm trying to avoid too much hack-and-slash porting. I'm not sure how much time I'll spend on the PPC and x86 versions. Part of that depends on whether the Linux/PPC version keeps mostly ahead of what I need. Eventually, I expect ports for both architectures. > > * Overall, Valgrind 3.x looks far more portable than 2.x. > > I appreciate all of the hard rewriting work; > > Thanks. Note that there are still a lot of cleanups in progress, > and in particular a major overhaul of address space management > is in progress. That should help non-Linux OSs a lot. Good to hear. I'll be making slow progress at best for some time, and if I get blocked behind some other cleanup I can always write some more syscall wrappers :-) > > * Darwin/PPC syscalls indicate success and failure in an unusual > > way: successful calls and failed calls return to different > > points. > > So you're saying that after sc, execution continues either at > CIA+4 or CIA+8 depending on outcome. Right? Exactly. > > Handling this in VEX might be more difficult, because VEX > > might need to know that `sc` looks like a conditional branch > > in basic block analysis. > > Probably pretty harmless. There's all sorts of tricks that can > be played. I think it's a non-problem. Sounds good. In 2.x, I simply incremented the simulated CIA if necessary in do_syscall_for_client, and that seemed to work. I didn't know whether VEX's analysis was more sophisticated so that would fail sometimes. -- Greg Parker gp...@us... |