Here is some stacktrace.

--->8-------->8----
(gdb) frame
#0  _hurd_fd_write (fd=fd@entry=0x1012dde10,
buf=buf@entry=0x200000000dd0, nbytes=nbytes@entry=0x10103da78,
offset=offset@entry=-1)
    at ./hurd/fd-write.c:39
39          *nbytes = wrote;
(gdb) bt
#0  _hurd_fd_write (fd=fd@entry=0x1012dde10,
buf=buf@entry=0x200000000dd0, nbytes=nbytes@entry=0x10103da78,
offset=offset@entry=-1)
    at ./hurd/fd-write.c:39
#1  0x000000010119cdaa in __GI___write_nocancel (fd=fd@entry=3,
buf=buf@entry=0x200000000dd0, nbytes=<optimized out>, nbytes@entry=13)
    at ../sysdeps/mach/hurd/write_nocancel.c:26
#2  0x0000000101197015 in __GI___libc_write (fd=3, buf=0x200000000dd0,
nbytes=13) at ../sysdeps/mach/hurd/write.c:26
#3  0x00000001010ffae5 in _IO_new_file_write (f=0x200000000bf0,
data=0x200000000dd0, n=13) at ./libio/fileops.c:1181
#4  0x00000001010fdc6f in new_do_write (fp=0x200000000bf0,
data=0x200000000dd0 "Hello World!\n", to_do=to_do@entry=13) at
./libio/libioP.h:1030
#5  0x00000001010feac1 in _IO_new_do_write
(fp=fp@entry=0x200000000bf0, data=<optimized out>, to_do=13) at
./libio/fileops.c:426
#6  0x00000001010fe320 in _IO_new_file_close_it
(fp=fp@entry=0x200000000bf0) at ./libio/fileops.c:135
#7  0x00000001010f09a0 in _IO_new_fclose (fp=0x200000000bf0) at
./libio/iofclose.c:53
#8  0x000000010000087a in main (argc=2, argv=0x10103dcf8) at fclose.c:17
(gdb) l
34          }
35
36        err = HURD_FD_PORT_USE_CANCEL (fd, _hurd_ctty_output (port,
ctty, writefd));
37
38        if (! err)
39          *nbytes = wrote;
40
41        return err;
42      }
(gdb) p *nbytes
$23 = 13
(gdb) p wrote
$24 = 15
(gdb) p err
$25 = ESUCCESS
(gdb)
--->8-------->8----

It's odd that the written bytes are greater than the requested to
write bytes. Although I still don't know if that's the culprit.

Reply via email to