[ping] [PATCH] Different outputs affected by locale

Yao Qi yao@codesourcery.com
Wed Jun 4 05:32:00 GMT 2014


On 05/27/2014 08:10 PM, Yao Qi wrote:
> We find the following fails in gdb test on mingw host.
> 
> FAIL: gdb.base/wchar.exp: print repeat
> FAIL: gdb.base/wchar.exp: print repeat_p
> FAIL: gdb.base/wchar.exp: print repeat (print null on)
> FAIL: gdb.base/wchar.exp: print repeat (print elements 3)
> FAIL: gdb.base/wchar.exp: print repeat_p (print elements 3)
> 
> print repeat^M
> $7 = L"A", '¢' <repeats 21 times>, "B", '\000' <repeats 104 times>^M
> (gdb) FAIL: gdb.base/wchar.exp: print repeat
> 
> the \242 is expected in the test but cent sign is displayed.
> 
> In valprint.c:print_wchar, wchar_printable is called to determine
> whether a wchar is printable.  wchar_printable calls iswprint but
> the iswprint's return value depends on LC_CTYPE setting of locale [1, 2].
> The output may vary with different locale settings.  I noticed that
> gdb.exp:gdb_init set LC_CTYPE to C.  If I remove that line, tests
> fail on native testing too.
> 
> IMO, either \242 or '¢' (cent sign) is a correct output, which is
> affect by locale, and it is not related to gdb at all.
> 
> [1] http://pubs.opengroup.org/onlinepubs/009604499/functions/iswprint.html
> [2] msdn.microsoft.com/en-us/library/ewx8s4kw.aspx
> 
> This patch is to add code to 'p repeat[1]' to extract the cent first,
> and then use it to match in the following tests.
> 
> gdb/testsuite:
> 
> 2014-05-27  Yao Qi  <yao@codesourcery.com>
> 
> 	* gdb.base/wchar.exp: Execute command 'p repeat[1]' and extract
> 	cent from the output.

Ping.

-- 
Yao (齐尧)



More information about the Gdb-patches mailing list