STREAMS/UX for the HP 9000 Reference Manual
161
Debugging STREAMS/UX Modules and Drivers
STREAMS/UX Debugging Tool
b_wptr = 0x599b36
b_datap = 0x5fb740
b_band = 0
b_pad1 = 00
b_flag = 0x0
b_pad2 = 0
Again, the values in this message block appear valid. The user double
checks the data by entering the m key.
m
struct msgb 0x5fb700 Message data at 0x00599800 S:8
0x00599800 : 00000000 00000000 00000006 00000000 | ................
0x00599810 : 0000031e 0000081e 7778797a 61626364 | ........wxyzabcd
0x00599820 : 65666768 696a6b6c 6d6e6f70 71727374 | efghijklmnopqrst
0x00599830 : 75767778 797a6162 63646566 6768696a | uvwxyzabcdefghij
0x00599840 : 6b6c6d6e 6f707172 73747576 7778797a | klmnopqrstuvwxyz
0x00599850 : 61626364 65666768 696a6b6c 6d6e6f70 | abcdefghijklmnop
0x00599860 : 71727374 75767778 797a6162 63646566 | qrstuvwxyzabcdef
0x00599870 : 6768696a 6b6c6d6e 6f707172 73747576 | ghijklmnopqrstuv
0x00599880 : 7778797a 61626364 65666768 696a6b6c | wxyzabcdefghijkl
0x00599890 : 6d6e6f70 71727374 75767778 797a6162 | mnopqrstuvwxyzab
0x005998a0 : 63646566 6768696a 6b6c6d6e 6f707172 | cdefghijklmnopqr
0x005998b0 : 73747576 7778797a 61626364 65666768 | stuvwxyzabcdefgh
0x005998c0 : 696a6b6c 6d6e6f70 71727374 75767778 | ijklmnopqrstuvwx
0x005998d0 : 797a6162 63646566 6768696a 6b6c6d6e | yzabcdefghijklmn
0x005998e0 : 6f707172 73747576 7778797a 61626364 | opqrstuvwxyzabcd
Type c for more data
Any other key will quit this display
The user continues to look at the message blocks in the list. The list seems
to go on indefinitely. It seems as if private->last_mp is being updated
correctly, but that private->first_mp is not. Looking at sp_put, the user sees
that first_mp is not updated unless last_mp is 0 when the list is empty. It
seems as if private->last_mp was not set to 0 correctly. The user looks at
sp_timeout() where messages are removed from the list. Indeed,
sp_timeout() updates only first_mp. last_mp is not set to zero when the list
is empty.