[issue1528] ktrace does not show proper return values for pipe(2)

Simon 'corecode' Schubert corecode at fs.ei.tum.de
Fri Oct 30 11:37:57 PDT 2009


Stathis Kamperis (via DragonFly issue tracker) wrote:
Stathis Kamperis <ekamperi at gmail.com> added the comment:

I've added a kprintf in ktrsysret() and here is what printed:

1126 a.out   CALL pipe
1126 a.out   RET  ret=3 error=0 code=42 pipe 3
Question is why `ret' contains the first file descriptor of the pair at all.
(and not zero as ought to)
This is because sys_pipe returns both fds as return value, namely 
sysmsg_fds[0] and sysmsg_fds[1].  However ktrsysret is only called with 
sysmsg_result, which covers only the first fd.

I guess the pipe libc glue code copies this result into the array.

cheers
  simon
--
  <3 the future  +++  RENT this banner advert  +++   ASCII Ribbon   /"\
  rock the past  +++  space for low CHF NOW!1  +++     Campaign     \ /
Party Enjoy Relax   |   http://dragonflybsd.org      Against  HTML   \
Dude 2c 2 the max   !   http://golden-apple.biz       Mail + News   / \




More information about the Bugs mailing list