* Problem on cygwin with new wchar_t printing support via iconv()
@ 2009-03-24 10:04 Roland Schwingel
2009-03-24 16:44 ` Tom Tromey
0 siblings, 1 reply; 7+ messages in thread
From: Roland Schwingel @ 2009-03-24 10:04 UTC (permalink / raw)
To: gdb
Hi...
With the new wchar_t printing support using iconv() I got some trouble
on cygwin 1.5.25.
I simply freezes when I try to step into a function having a wchar_t *
as parameter.
I have buildt gdb both using the cygwin supplied libiconv and an own
libiconv intree
with gdb sources.
From what I have diagnosed it runs into an endless loop in
wchar_to_loop_convert()
in libiconv's loop_wchar.h.
The default charsets of gdb after starting it:
target-charset = US_ASCII
targe-wide-charset = UCS-4
When I disable iconv() usage everything is fine again, beside of the
fact that I can't use
the new feature. BTW: I am using the most recent CVS sources.
Roland
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Problem on cygwin with new wchar_t printing support via iconv()
2009-03-24 10:04 Problem on cygwin with new wchar_t printing support via iconv() Roland Schwingel
@ 2009-03-24 16:44 ` Tom Tromey
0 siblings, 0 replies; 7+ messages in thread
From: Tom Tromey @ 2009-03-24 16:44 UTC (permalink / raw)
To: Roland Schwingel; +Cc: gdb
>>>>> "Roland" == Roland Schwingel <roland.schwingel@onevision.de> writes:
Roland> I simply freezes when I try to step into a function having a
Roland> wchar_t * as parameter. I have buildt gdb both using the
Roland> cygwin supplied libiconv and an own libiconv intree with gdb
Roland> sources.
What version of libiconv are you using?
If you have a small test case, I will try to reproduce it with a
libiconv-based build here. I suspect, though, that it is
Windows-specific.
If you have dejagnu installed, you could try:
cd build/gdb
make check RUNTESTFLAGS=charset.exp
This works for me with a libiconv-based build (on x86 Fedora 9).
Tom
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Problem on cygwin with new wchar_t printing support via iconv()
@ 2009-03-25 8:56 Roland Schwingel
2009-03-25 15:13 ` Pedro Alves
2009-03-25 19:14 ` Tom Tromey
0 siblings, 2 replies; 7+ messages in thread
From: Roland Schwingel @ 2009-03-25 8:56 UTC (permalink / raw)
To: tromey; +Cc: gdb
Hi Tom,
Thanks for your reply...
Tom Tromey <tromey@redhat.com> wrote on 24.03.2009 17:44:20:
> >>>>> "Roland" == Roland Schwingel <roland.schwingel@onevision.de>
writes:
>
> Roland> I simply freezes when I try to step into a function having a
> Roland> wchar_t * as parameter. I have buildt gdb both using the
> Roland> cygwin supplied libiconv and an own libiconv intree with gdb
> Roland> sources.
>
> What version of libiconv are you using?
My cygwin 1.5.25 installation comes with libiconv 1.11. For my gdb
intree tests I used libiconv 1.12.
> If you have a small test case, I will try to reproduce it with a
> libiconv-based build here. I suspect, though, that it is
> Windows-specific.
>
> If you have dejagnu installed, you could try:
>
> cd build/gdb
> make check RUNTESTFLAGS=charset.exp
>
> This works for me with a libiconv-based build (on x86 Fedora 9).
This test was done with the intree libiconv 1.12:
make[1]: Entering directory
`/vol/d/compile/gdb-6.8.50-cvs-ov_obj/gdb/testsuite'
Nothing to be done for all...
Making a new config file...
rootme=`pwd`; export rootme; \
srcdir=../../../gdb-6.8.50-cvs-ov/gdb/testsuite ; export srcdir ; \
EXPECT=`if [ -f ${rootme}/../../expect/expect ] ; then echo
${rootme}/../../expect/expect ; else echo expect ; fi` ; export EXPECT ; \
EXEEXT=.exe ; export EXEEXT ; \
LD_LIBRARY_PATH=$rootme/../../expect:$rootme/../../libstdc++:$rootme/../../tk/unix:$rootme/../../tcl/unix:$rootme/../../bfd:$rootme/../../opcodes:$LD_LIBRARY_PATH;
\
export LD_LIBRARY_PATH; \
if [ -f ${rootme}/../../expect/expect ] ; then \
TCL_LIBRARY=${srcdir}/../../tcl/library ; \
export TCL_LIBRARY ; fi ; \
runtest charset.exp
WARNING: Couldn't find the global config file.
Test Run By roland on Wed Mar 25 09:36:08 2009
Native configuration is i686-pc-cygwin
=== gdb tests ===
Schedule of variations:
unix
Running target unix
Using /usr/share/dejagnu/baseboards/unix.exp as board description file
for target.
Using /usr/share/dejagnu/config/unix.exp as generic interface file for
target.
Using ../../../gdb-6.8.50-cvs-ov/gdb/testsuite/config/unix.exp as
tool-and-target-specific interface file.
Running ../../../gdb-6.8.50-cvs-ov/gdb/testsuite/gdb.base/charset.exp ...
FAIL: gdb.base/charset.exp: print string in ISO-8859-1
FAIL: gdb.base/charset.exp: print string in EBCDIC-US
FAIL: gdb.base/charset.exp: check value of parsed character literal in
EBCDIC-US
FAIL: gdb.base/charset.exp: check value of parsed string literal in
EBCDIC-US
FAIL: gdb.base/charset.exp: try printing '\a' in EBCDIC-US
FAIL: gdb.base/charset.exp: check value of '\a' in EBCDIC-US
FAIL: gdb.base/charset.exp: check value of "\a" in EBCDIC-US
FAIL: gdb.base/charset.exp: try printing '\b' in EBCDIC-US
FAIL: gdb.base/charset.exp: check value of '\b' in EBCDIC-US
FAIL: gdb.base/charset.exp: check value of "\b" in EBCDIC-US
FAIL: gdb.base/charset.exp: try printing '\n' in EBCDIC-US
FAIL: gdb.base/charset.exp: check value of '\n' in EBCDIC-US
FAIL: gdb.base/charset.exp: check value of "\n" in EBCDIC-US
FAIL: gdb.base/charset.exp: try printing '\t' in EBCDIC-US
FAIL: gdb.base/charset.exp: check value of '\t' in EBCDIC-US
FAIL: gdb.base/charset.exp: check value of "\t" in EBCDIC-US
FAIL: gdb.base/charset.exp: check value of escape that doesn't exist in
EBCDIC-US
FAIL: gdb.base/charset.exp: print string in IBM1047
FAIL: gdb.base/charset.exp: check value of parsed character literal in
IBM1047
FAIL: gdb.base/charset.exp: check value of parsed string literal in IBM1047
FAIL: gdb.base/charset.exp: try printing '\a' in IBM1047
FAIL: gdb.base/charset.exp: check value of '\a' in IBM1047
FAIL: gdb.base/charset.exp: check value of "\a" in IBM1047
FAIL: gdb.base/charset.exp: try printing '\b' in IBM1047
FAIL: gdb.base/charset.exp: check value of '\b' in IBM1047
FAIL: gdb.base/charset.exp: check value of "\b" in IBM1047
FAIL: gdb.base/charset.exp: try printing '\n' in IBM1047
FAIL: gdb.base/charset.exp: check value of '\n' in IBM1047
FAIL: gdb.base/charset.exp: check value of "\n" in IBM1047
FAIL: gdb.base/charset.exp: try printing '\t' in IBM1047
FAIL: gdb.base/charset.exp: check value of '\t' in IBM1047
FAIL: gdb.base/charset.exp: check value of "\t" in IBM1047
FAIL: gdb.base/charset.exp: check value of escape that doesn't exist in
IBM1047
FAIL: gdb.base/charset.exp: print string in UCS-4
FAIL: gdb.base/charset.exp: parse character literal in UCS-4
FAIL: gdb.base/charset.exp: check value of parsed character literal in UCS-4
FAIL: gdb.base/charset.exp: check value of parsed string literal in UCS-4
FAIL: gdb.base/charset.exp: try printing '\a' in UCS-4
FAIL: gdb.base/charset.exp: check value of '\a' in UCS-4
FAIL: gdb.base/charset.exp: check value of "\a" in UCS-4
FAIL: gdb.base/charset.exp: try printing '\b' in UCS-4
FAIL: gdb.base/charset.exp: check value of '\b' in UCS-4
FAIL: gdb.base/charset.exp: check value of "\b" in UCS-4
FAIL: gdb.base/charset.exp: try printing '\f' in UCS-4
FAIL: gdb.base/charset.exp: check value of '\f' in UCS-4
FAIL: gdb.base/charset.exp: check value of "\f" in UCS-4
FAIL: gdb.base/charset.exp: try printing '\n' in UCS-4
FAIL: gdb.base/charset.exp: check value of '\n' in UCS-4
FAIL: gdb.base/charset.exp: check value of "\n" in UCS-4
FAIL: gdb.base/charset.exp: try printing '\r' in UCS-4
FAIL: gdb.base/charset.exp: check value of '\r' in UCS-4
FAIL: gdb.base/charset.exp: check value of "\r" in UCS-4
FAIL: gdb.base/charset.exp: try printing '\t' in UCS-4
FAIL: gdb.base/charset.exp: check value of '\t' in UCS-4
FAIL: gdb.base/charset.exp: check value of "\t" in UCS-4
FAIL: gdb.base/charset.exp: try printing '\v' in UCS-4
FAIL: gdb.base/charset.exp: check value of '\v' in UCS-4
FAIL: gdb.base/charset.exp: check value of "\v" in UCS-4
FAIL: gdb.base/charset.exp: print escape that doesn't exist in UCS-4
FAIL: gdb.base/charset.exp: check value of escape that doesn't exist in
UCS-4
FAIL: gdb.base/charset.exp: non-representable target character
FAIL: gdb.base/charset.exp: print '\9'
FAIL: gdb.base/charset.exp: basic wide character
=== gdb Summary ===
# of expected passes 129
# of unexpected failures 63
/vol/d/compile/gdb-6.8.50-cvs-ov_obj/gdb/testsuite/../../gdb/gdb
version 6.8.50.20090324-cvs -nw -nx
make[1]: *** [check] Error 1
make[1]: Leaving directory
`/vol/d/compile/gdb-6.8.50-cvs-ov_obj/gdb/testsuite'
make: *** [check] Error 2
As you can see it fails (but does not hang)...
Roland
^ permalink raw reply [flat|nested] 7+ messages in thread* Re: Problem on cygwin with new wchar_t printing support via iconv()
2009-03-25 8:56 Roland Schwingel
@ 2009-03-25 15:13 ` Pedro Alves
2009-03-25 15:19 ` Pedro Alves
2009-03-25 19:17 ` Tom Tromey
2009-03-25 19:14 ` Tom Tromey
1 sibling, 2 replies; 7+ messages in thread
From: Pedro Alves @ 2009-03-25 15:13 UTC (permalink / raw)
To: gdb; +Cc: Roland Schwingel, tromey
On Wednesday 25 March 2009 08:57:18, Roland Schwingel wrote:
> > If you have a small test case, I will try to reproduce it with a
> > libiconv-based build here. I suspect, though, that it is
> > Windows-specific.
Nope, it's iconv specific.
> FAIL: gdb.base/charset.exp: print string in IBM1047
set target-charset IBM1047
Undefined item: "IBM1047".
(gdb) PASS: gdb.base/charset.exp: try `set target-charset IBM1047'
These should be detected and marked "unsupported", so the next test:
show charset
The host character set is "ASCII".
The target character set is "ISO-8859-1".
The target wide character set is "UCS-4".
(gdb) PASS: gdb.base/charset.exp: parse `show charset' after `set target-charset IBM1047'
FAIL: gdb.base/charset.exp: check effect of `set target-charset IBM1047'
... is skipped ?
--
Pedro Alves
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Problem on cygwin with new wchar_t printing support via iconv()
2009-03-25 15:13 ` Pedro Alves
@ 2009-03-25 15:19 ` Pedro Alves
2009-03-25 19:17 ` Tom Tromey
1 sibling, 0 replies; 7+ messages in thread
From: Pedro Alves @ 2009-03-25 15:19 UTC (permalink / raw)
To: gdb; +Cc: Roland Schwingel, tromey
On Wednesday 25 March 2009 15:13:57, Pedro Alves wrote:
> On Wednesday 25 March 2009 08:57:18, Roland Schwingel wrote:
>
> > > If you have a small test case, I will try to reproduce it with a
> > > libiconv-based build here. I suspect, though, that it is
> > > Windows-specific.
>
> Nope, it's iconv specific.
>
> > FAIL: gdb.base/charset.exp: print string in IBM1047
>
> set target-charset IBM1047
> Undefined item: "IBM1047".
> (gdb) PASS: gdb.base/charset.exp: try `set target-charset IBM1047'
>
> These should be detected and marked "unsupported", so the next test:
>
> show charset
> The host character set is "ASCII".
> The target character set is "ISO-8859-1".
> The target wide character set is "UCS-4".
> (gdb) PASS: gdb.base/charset.exp: parse `show charset' after `set target-charset IBM1047'
> FAIL: gdb.base/charset.exp: check effect of `set target-charset IBM1047'
>
> ... is skipped ?
>
I see in charset.exp:
# We don't want to test all the charset names here, since that would
# be too many combinations. We we pick a subset.
set charset_subset {ASCII ISO-8859-1 EBCDIC-US IBM1047}
The "unsupported" detection addition still holds, but, in case another subset
is in order, here's the output of "set target-wide-charset <tab><tab>"
437 ISO-8859-4
850 ISO-8859-5
852 ISO-8859-6
855 ISO-8859-7
857 ISO-8859-8
860 ISO-8859-9
861 ISO-CELTIC
862 ISO-IR-100
863 ISO-IR-101
865 ISO-IR-109
866 ISO-IR-110
869 ISO-IR-126
ANSI_X3.4-1968 ISO-IR-127
ANSI_X3.4-1986 ISO-IR-138
ARABIC ISO-IR-14
ARMSCII-8 ISO-IR-144
ASCII ISO-IR-148
ASMO-708 ISO-IR-149
ATARI ISO-IR-157
ATARIST ISO-IR-159
BIG-5 ISO-IR-165
BIG-FIVE ISO-IR-166
BIG5 ISO-IR-179
BIG5-2003 ISO-IR-199
BIG5-HKSCS ISO-IR-203
BIG5-HKSCS:1999 ISO-IR-226
BIG5-HKSCS:2001 ISO-IR-230
BIG5-HKSCS:2004 ISO-IR-57
BIG5HKSCS ISO-IR-58
BIGFIVE ISO-IR-6
C99 ISO-IR-87
CHINESE ISO646-CN
CN ISO646-JP
CN-BIG5 ISO646-US
CN-GB ISO8859-1
CN-GB-ISOIR165 ISO8859-10
CP-GR ISO8859-11
CP-IS ISO8859-13
CP1046 ISO8859-14
CP1124 ISO8859-15
CP1125 ISO8859-16
CP1129 ISO8859-2
CP1133 ISO8859-3
CP1161 ISO8859-4
CP1162 ISO8859-5
CP1163 ISO8859-6
CP1250 ISO8859-7
CP1251 ISO8859-8
CP1252 ISO8859-9
CP1253 ISO_646.IRV:1991
CP1254 ISO_8859-1
CP1255 ISO_8859-10
CP1256 ISO_8859-10:1992
CP1257 ISO_8859-11
CP1258 ISO_8859-13
CP1361 ISO_8859-14
CP154 ISO_8859-14:1998
CP367 ISO_8859-15
CP437 ISO_8859-15:1998
CP737 ISO_8859-16
CP775 ISO_8859-16:2001
CP819 ISO_8859-1:1987
CP850 ISO_8859-2
CP852 ISO_8859-2:1987
CP853 ISO_8859-3
CP855 ISO_8859-3:1988
CP856 ISO_8859-4
CP857 ISO_8859-4:1988
CP858 ISO_8859-5
CP860 ISO_8859-5:1988
CP861 ISO_8859-6
CP862 ISO_8859-6:1987
CP863 ISO_8859-7
CP864 ISO_8859-7:1987
CP865 ISO_8859-7:2003
CP866 ISO_8859-8
CP869 ISO_8859-8:1988
CP874 ISO_8859-9
CP922 ISO_8859-9:1989
CP932 JAVA
CP936 JIS0208
CP943 JISX0201-1976
CP949 JIS_C6220-1969-RO
CP950 JIS_C6226-1983
CSASCII JIS_X0201
CSBIG5 JIS_X0208
CSEUCKR JIS_X0208-1983
CSEUCPKDFMTJAPANESE JIS_X0208-1990
CSEUCTW JIS_X0212
CSGB2312 JIS_X0212-1990
CSHALFWIDTHKATAKANA JIS_X0212.1990-0
CSHPROMAN8 JOHAB
CSIBM1161 JP
CSIBM1162 KOI8-R
CSIBM1163 KOI8-RU
CSIBM855 KOI8-T
CSIBM857 KOI8-U
CSIBM860 KOREAN
CSIBM861 KSC_5601
CSIBM863 KS_C_5601-1987
CSIBM864 KS_C_5601-1989
CSIBM865 KZ-1048
CSIBM866 L1
CSIBM869 L10
CSISO14JISC6220RO L2
CSISO159JISX02121990 L3
CSISO2022CN L4
CSISO2022JP L5
CSISO2022JP2 L6
CSISO2022KR L7
CSISO57GB1988 L8
CSISO58GB231280 LATIN-9
CSISO87JISX0208 LATIN1
CSISOLATIN1 LATIN10
CSISOLATIN2 LATIN2
CSISOLATIN3 LATIN3
CSISOLATIN4 LATIN4
CSISOLATIN5 LATIN5
CSISOLATIN6 LATIN6
CSISOLATINARABIC LATIN7
CSISOLATINCYRILLIC LATIN8
CSISOLATINGREEK MAC
CSISOLATINHEBREW MACARABIC
CSKOI8R MACCENTRALEUROPE
CSKSC56011987 MACCROATIAN
CSKZ1048 MACCYRILLIC
CSMACINTOSH MACGREEK
CSPC775BALTIC MACHEBREW
CSPC850MULTILINGUAL MACICELAND
CSPC862LATINHEBREW MACINTOSH
CSPC8CODEPAGE437 MACROMAN
CSPCP852 MACROMANIA
CSPTCP154 MACTHAI
CSSHIFTJIS MACTURKISH
CSUCS4 MACUKRAINE
CSUNICODE MS-ANSI
CSUNICODE11 MS-ARAB
CSUNICODE11UTF7 MS-CYRL
CSVISCII MS-EE
CYRILLIC MS-GREEK
CYRILLIC-ASIAN MS-HEBR
DEC-HANYU MS-TURK
DEC-KANJI MS936
ECMA-114 MS_KANJI
ECMA-118 MULELAO-1
ELOT_928 NEXTSTEP
EUC-CN PT154
EUC-JISX0213 PTCP154
EUC-JP R8
EUC-KR RISCOS-LATIN1
EUC-TW RK1048
EUCCN ROMAN8
EUCJP SHIFT-JIS
EUCKR SHIFT_JIS
EUCTW SHIFT_JISX0213
EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE SJIS
GB18030 STRK1048-2002
GB2312 TCVN
GBK TCVN-5712
GB_1988-80 TCVN5712-1
GB_2312-80 TCVN5712-1:1993
GEORGIAN-ACADEMY TDS565
GEORGIAN-PS TIS-620
GREEK TIS620
GREEK8 TIS620-0
HEBREW TIS620.2529-1
HP-ROMAN8 TIS620.2533-0
HZ TIS620.2533-1
HZ-GB-2312 UCS-2
IBM-1161 UCS-2-INTERNAL
IBM-1162 UCS-2-SWAPPED
IBM-1163 UCS-2BE
IBM-CP1133 UCS-2LE
IBM1161 UCS-4
IBM1162 UCS-4-INTERNAL
IBM1163 UCS-4-SWAPPED
IBM367 UCS-4BE
IBM437 UCS-4LE
IBM775 UHC
IBM819 UNICODE-1-1
IBM850 UNICODE-1-1-UTF-7
IBM852 UNICODEBIG
IBM855 UNICODELITTLE
IBM857 US
IBM860 US-ASCII
IBM861 UTF-16
IBM862 UTF-16BE
IBM863 UTF-16LE
IBM864 UTF-32
IBM865 UTF-32BE
IBM866 UTF-32LE
IBM869 UTF-7
ISO-10646-UCS-2 UTF-8
ISO-10646-UCS-4 VISCII
ISO-2022-CN VISCII1.1-1
ISO-2022-CN-EXT WINBALTRIM
ISO-2022-JP WINDOWS-1250
ISO-2022-JP-1 WINDOWS-1251
ISO-2022-JP-2 WINDOWS-1252
ISO-2022-JP-3 WINDOWS-1253
ISO-2022-KR WINDOWS-1254
ISO-8859-1 WINDOWS-1255
ISO-8859-10 WINDOWS-1256
ISO-8859-11 WINDOWS-1257
ISO-8859-13 WINDOWS-1258
ISO-8859-14 WINDOWS-874
ISO-8859-15 WINDOWS-936
ISO-8859-16 X0201
ISO-8859-2 X0208
ISO-8859-3 X0212
--
Pedro Alves
^ permalink raw reply [flat|nested] 7+ messages in thread* Re: Problem on cygwin with new wchar_t printing support via iconv()
2009-03-25 15:13 ` Pedro Alves
2009-03-25 15:19 ` Pedro Alves
@ 2009-03-25 19:17 ` Tom Tromey
1 sibling, 0 replies; 7+ messages in thread
From: Tom Tromey @ 2009-03-25 19:17 UTC (permalink / raw)
To: Pedro Alves; +Cc: gdb, Roland Schwingel
>>>>> "Pedro" == Pedro Alves <pedro@codesourcery.com> writes:
Pedro> set target-charset IBM1047
Pedro> Undefined item: "IBM1047".
Pedro> (gdb) PASS: gdb.base/charset.exp: try `set target-charset IBM1047'
Pedro> These should be detected and marked "unsupported", so the next test:
I have a fix for this which I will send in shortly.
Tom
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Problem on cygwin with new wchar_t printing support via iconv()
2009-03-25 8:56 Roland Schwingel
2009-03-25 15:13 ` Pedro Alves
@ 2009-03-25 19:14 ` Tom Tromey
1 sibling, 0 replies; 7+ messages in thread
From: Tom Tromey @ 2009-03-25 19:14 UTC (permalink / raw)
To: Roland Schwingel; +Cc: gdb
>>>>> "Roland" == Roland Schwingel <roland.schwingel@onevision.de> writes:
Roland> My cygwin 1.5.25 installation comes with libiconv 1.11. For my gdb
Roland> intree tests I used libiconv 1.12.
Actually, it occurred to me today that the in-tree libiconv is only
used if there is no iconv already available. So, I think even in this
case gdb is picking up the cygwin libiconv.
Could you try a simple test? Run gdb on your program, evaluate
'set target-wide-charset UCS-2', and then 'print L"abcd"'.
Does that work? Or hang?
If it works, can you make it hang with some other string?
Or do you know the contents of the wchar_t* in the backtrace that
makes it hang?
Also, I can tell you how to hack gdb's configure to really try
libiconv 1.12. That would determine whether we are seeing a libiconv
bug. Would you mind trying this?
Tom
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2009-03-25 19:17 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-03-24 10:04 Problem on cygwin with new wchar_t printing support via iconv() Roland Schwingel
2009-03-24 16:44 ` Tom Tromey
2009-03-25 8:56 Roland Schwingel
2009-03-25 15:13 ` Pedro Alves
2009-03-25 15:19 ` Pedro Alves
2009-03-25 19:17 ` Tom Tromey
2009-03-25 19:14 ` Tom Tromey
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox