|
From: Nicholas N. <nj...@cs...> - 2005-09-25 16:16:03
|
On Sun, 25 Sep 2005, Julian Seward wrote: >>> But it's a start. Another odd thing is that if you use -d with both >>> inner and outer, the inner one's output isn't produced. >> >> This is due to ML_(fd_allowed) in the outer. It sees the sys_writes >> done by the inner on its own logfile descriptor and causes them to >> fail, thus making the output disappear. If you change ML_(fd_allowed) >> to always return True in the outer, then it works as one would expect. >> Problem is I can't see a clean way to fix this. > > Fixed (well, kludged, anyway). See r4758. So the real problem is that VG_(debugLog) calls write() but doesn't check the return value. Although there's not much it could do if it did check and saw a failure. I see a similar thing running Cachegrind under Cachegrind -- the innerCG writes the output file, and then the outerCG overwrites it with it's own version! A solution would be to allow you to specify the output filename. I think that's on the Bugzilla wishlist anyway. N |