Date: Tue, 6 Mar 2001 13:01:32 +1000 (EST) From: User Raymond <raymond@one.com.au> To: freebsd-alpha@FreeBSD.org Subject: Strange results from compiled alpha code Message-ID: <200103060301.NAA24010@gw.one.com.au>
next in thread | raw e-mail | index | archive | help
Subj: Strange results from compiled alpha code To: freebsd-alpha@FreeBSD.org From: raymond@one.com.au This refers to FreeBSD 4.2-RELEASE alpha running on an AS200. Sorry for the size of this post - I have attempted to create a small demonstration program but can't seem to. ...anyway, consider the following piece of c source code: typedef struct CSTRING // our string type { short len; // length of it u_char buf[32768]; // and the content } cstring; // end counted string extern u_char *mumpspc; // mumps prog pointer mumpspc = mumpspc + ((cstring *)mumpspc)->len + sizeof(short) + 1; // point past the string and the following gdb output: 975 mumpspc = mumpspc + (gdb) p mumpspc $1 = (u_char *) 0x120096c7f "\002" (gdb) p mumpspc + ((cstring *)mumpspc)->len + sizeof(short) + 1 $2 = (u_char *) 0x120096c84 "<\001" (gdb) set mumpspc = mumpspc + ((cstring *)mumpspc)->len + sizeof(short) + 1 (gdb) p mumpspc $3 = (u_char *) 0x120096c84 "<\001" (gdb) set mumpspc = 0x120096c7f (gdb) p mumpspc $4 = (u_char *) 0x120096c7f "\002" (gdb) s 978 break; (gdb) p mumpspc $5 = (u_char *) 0x12009a982 "" (gdb) set mumpspc = 0x120096c7f (gdb) p mumpspc[0] $6 = 2 '\002' (gdb) p mumpspc[1] $7 = 0 '\000' (gdb) p mumpspc[2] $8 = 52 '4' (gdb) p mumpspc[3] $9 = 50 '2' (gdb) p mumpspc[4] $10 = 0 '\000' (gdb) p mumpspc[5] $11 = 60 '<' It appears that the "set" is ok when interpreted by gdb but the compiled code gives the wrong answer - it seems to ignore the '\000' at mumpspc[1]. This code works OK on the x86 architecture (FreeBSD and linux); doesn't work with linux alpha either and (yes) I know it's horrible code. but - any ideas? Ray Newman To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-alpha" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200103060301.NAA24010>