Re: [PATCH] Fix cygwin build error with i386-linux-tdep.c

Mark Kettenis
2009-08-30T13:56:41Z

> From: Hui Zhu <teawater@gmail.com>
> Date: Sun, 30 Aug 2009 21:15:22 +0800
>
> 2009-08-29 Hui Zhu <teawater@gmail.com>
>
> * i386-linux-tdep.c (i386_linux_intx80_sysenter_record): Add
> (unsigned) before tmpu32.

Ugh! Casts like that are ugly.

This made me look at the code again and realize that what you're doing
in that function is wrong. You should be using
regcache_{raw|cooked}_read_unsigned() instead of regcache_raw_read().
Then the whole issue of printing an uint32_t goes away. When you do
change the code like that please use a more meaningful variable name
instead of 'tmpu32'. My suggestion would be 'syscall'.

Cheers,

Mark

> Index: gdb/i386-linux-tdep.c
> ===================================================================
> --- gdb.orig/i386-linux-tdep.c 2009-08-23 21:17:37.000000000 +0800
> +++ gdb/i386-linux-tdep.c 2009-08-30 20:19:53.828125000 +0800
> @@ -374,7 +374,7 @@
> if (tmpu32 > 499)
> {
> printf_unfiltered (_("Process record and replay target doesn't "
> - "support syscall number %u\n"), tmpu32);
> + "support syscall number %u\n"), (unsigned) tmpu32);
> return -1;
> }
>