#303 Error parsing debugger variables

v0.4.x
closed-fixed
Stephan Ruehl
Debugger (177)
5
2006-11-04
2006-09-18
yukinopo
No

1. When change global variable '$,' and/or '$\',
debugger can not parse passed variables.

# sample code

#!/usr/bin/perl
$,="\t"; # Display normally
$\="\n"; # Display only '$^p'
# after that , no variable displayed
print "Hello world";
exit;

--

2. Double byte character can not handled correctly.
It is same as #1330854.

In non-English OS(Japanese,Korean,Chinese,etc...),
Perl debugger( as ActivePerl) passed double byte
characters as localized error messages.

eg;
a) Load script by debugger,
The passed errors message is WSAENOTSOCK,

$^ES00000038'ソケット以外のものに対して操作を実行しようとしま
した。'
1 2 3
4 5 5

1234567890123456789012345678901234567890123456789012345
6 -- count by byte
1
2 2
12 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
3 4 5 6 7 8 9 -- count by character

b) Step in to scripts,debugger passed
ERROR_ENVVAR_NOT_FOUND into $^E.

NS00000003$^E
S00000032'入力された環境オプションが見つかりませんでした。'

--
Environment:
Windows XP SP2(JPN) ;
Eclipse 3.2 + EPIC 0.4.10
ActivePerl 5.8.8 Build 819

Discussion

  • yukinopo
    yukinopo
    2006-09-18

    2nd half's example text (ruled)

     
    Attachments
  • yukinopo
    yukinopo
    2006-09-24

    Logged In: YES
    user_id=1600524

    At last time, I misunderstood that variable strings counted
    in decimal.

    The value
    S00000032
    '入力された環境オプションが見つかりませんでした。'
    is right as 50 bytes strings.
    And, in character count is 26.

    --

    Looking at readString in VarParser , using
    constructor 'String(mChars,mPos,length)'.

    The constructor expecting character count in length,
    but passed length was byte count.
    And then , overrun mPos.

    -- in String readString(boolean fPrintError)
    temp = new String(mChars,mPos,length);
    bytelen = temp.getBytes().length;

    --
    if length equal bytelen, without change.
    If length < bytelen , it contain double-byte character(s) ,
    should be truncate temp.

     
  • Jan Ploski
    Jan Ploski
    2006-11-04

    • status: open --> closed-fixed
     
  • Jan Ploski
    Jan Ploski
    2006-11-04

    Logged In: YES
    user_id=86907

    Fixed in 0.4.18/0.5.18.