comp.lang.ada
 help / color / mirror / Atom feed
* Re: Is this my failure or of the compiler's debugger
       [not found] <nnd$70b29fcd$4811e339@5bc1ef990a7003a8>
@ 2023-01-10 18:12 ` Niklas Holsti
  2023-01-10 22:17   ` ldries46
  0 siblings, 1 reply; 5+ messages in thread
From: Niklas Holsti @ 2023-01-10 18:12 UTC (permalink / raw)


On 2023-01-10 15:16, ldries46 wrote:
> I try to create a program that read Unbounded strings from a file in the 
> loop:
>        Open(C_File, In_File, To_String(Inp_File));
>        while not End_of_File(C_File) loop
>           str_line_n := To_Unbounded_String(Get_Line(C_File));
>           Buffer_GL.Set_Buffer(str_line_n); -- breakpoint on this line
>           glade_lines := glade_lines + 1;
>        end loop;
>        Close(C_File);
> where str_line_n is of the type Unbounded_String.
> I used a test file with the below presented three text lines:
> Line 1 abcdef9876543210
> Line 2 " abcdef"9876543210
> Line 3 "abc"de"f"9876543210
> 
> In the debugger the results were:
> "Line 1 abcdef 9876543210"
> "Line 2 "" abcdef"" 98765432"
> "Line 3 ""abc""de ""f""987654"


It seems that the debugger displays the strings in the form of Ada 
string literals, which are enclosed in quotes (") and within which each 
quote character has to be duplicated (to show that it is not the 
terminating quote). So the duplication of the quotes is nothing to worry 
about. If you were to print out the strings (with Ada.Text_IO) they 
should appear just as in the input, with only the original quote characters.

However, your example also shows some extra blank spaces in the debugger 
output, for example:

Input   : Line 1 abcdef9876543210
Debugger: "Line 1 abcdef 9876543210"

There seems to be a new blank space between 'f' and '9'. Are you sure 
that you presented the input and output correctly?

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Is this my failure or of the compiler's debugger
  2023-01-10 18:12 ` Is this my failure or of the compiler's debugger Niklas Holsti
@ 2023-01-10 22:17   ` ldries46
  2023-01-11  7:40     ` ldries46
  2023-01-11 13:43     ` Niklas Holsti
  0 siblings, 2 replies; 5+ messages in thread
From: ldries46 @ 2023-01-10 22:17 UTC (permalink / raw)


Op 10-1-2023 om 19:12 schreef Niklas Holsti:
> On 2023-01-10 15:16, ldries46 wrote:
>> I try to create a program that read Unbounded strings from a file in 
>> the loop:
>>        Open(C_File, In_File, To_String(Inp_File));
>>        while not End_of_File(C_File) loop
>>           str_line_n := To_Unbounded_String(Get_Line(C_File));
>>           Buffer_GL.Set_Buffer(str_line_n); -- breakpoint on this line
>>           glade_lines := glade_lines + 1;
>>        end loop;
>>        Close(C_File);
>> where str_line_n is of the type Unbounded_String.
>> I used a test file with the below presented three text lines:
>> Line 1 abcdef9876543210
>> Line 2 " abcdef"9876543210
>> Line 3 "abc"de"f"9876543210
>>
>> In the debugger the results were:
>> "Line 1 abcdef 9876543210"
>> "Line 2 "" abcdef"" 98765432"
>> "Line 3 ""abc""de ""f""987654"
>
>
> It seems that the debugger displays the strings in the form of Ada 
> string literals, which are enclosed in quotes (") and within which 
> each quote character has to be duplicated (to show that it is not the 
> terminating quote). So the duplication of the quotes is nothing to 
> worry about. If you were to print out the strings (with Ada.Text_IO) 
> they should appear just as in the input, with only the original quote 
> characters.
>
> However, your example also shows some extra blank spaces in the 
> debugger output, for example:
>
> Input   : Line 1 abcdef9876543210
> Debugger: "Line 1 abcdef 9876543210"
>
>
>
Not only that but also some of the  last characters disappear in line 2 
the 10 and in line 3 3210

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Is this my failure or of the compiler's debugger
  2023-01-10 22:17   ` ldries46
@ 2023-01-11  7:40     ` ldries46
  2023-01-11 13:43     ` Niklas Holsti
  1 sibling, 0 replies; 5+ messages in thread
From: ldries46 @ 2023-01-11  7:40 UTC (permalink / raw)


Op 10-1-2023 om 23:17 schreef ldries46:
> Op 10-1-2023 om 19:12 schreef Niklas Holsti:
>> On 2023-01-10 15:16, ldries46 wrote:
>>> I try to create a program that read Unbounded strings from a file in 
>>> the loop:
>>>        Open(C_File, In_File, To_String(Inp_File));
>>>        while not End_of_File(C_File) loop
>>>           str_line_n := To_Unbounded_String(Get_Line(C_File));
>>>           Buffer_GL.Set_Buffer(str_line_n); -- breakpoint on this line
>>>           glade_lines := glade_lines + 1;
>>>        end loop;
>>>        Close(C_File);
>>> where str_line_n is of the type Unbounded_String.
>>> I used a test file with the below presented three text lines:
>>> Line 1 abcdef9876543210
>>> Line 2 " abcdef"9876543210
>>> Line 3 "abc"de"f"9876543210
>>>
>>> In the debugger the results were:
>>> "Line 1 abcdef 9876543210"
>>> "Line 2 "" abcdef"" 98765432"
>>> "Line 3 ""abc""de ""f""987654"
>>
>>
>> It seems that the debugger displays the strings in the form of Ada 
>> string literals, which are enclosed in quotes (") and within which 
>> each quote character has to be duplicated (to show that it is not the 
>> terminating quote). So the duplication of the quotes is nothing to 
>> worry about. If you were to print out the strings (with Ada.Text_IO) 
>> they should appear just as in the input, with only the original quote 
>> characters.
>>
>> However, your example also shows some extra blank spaces in the 
>> debugger output, for example:
>>
>> Input   : Line 1 abcdef9876543210
>> Debugger: "Line 1 abcdef 9876543210"
>>
>>
>>
> Not only that but also some of the  last characters disappear in line 
> 2 the 10 and in line 3 3210
In the mean time by inserting a write command to a Gtk window I found 
that the problem is really a problem of the debugger. The values in the 
Gtk window are correct. this means that in a next version of the 
debugger that must be corrected

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Is this my failure or of the compiler's debugger
  2023-01-10 22:17   ` ldries46
  2023-01-11  7:40     ` ldries46
@ 2023-01-11 13:43     ` Niklas Holsti
  2023-01-11 16:52       ` ldries46
  1 sibling, 1 reply; 5+ messages in thread
From: Niklas Holsti @ 2023-01-11 13:43 UTC (permalink / raw)


On 2023-01-11 0:17, ldries46 wrote:
> Op 10-1-2023 om 19:12 schreef Niklas Holsti:
>> On 2023-01-10 15:16, ldries46 wrote:
>>> I try to create a program that read Unbounded strings from a file in 
>>> the loop:
>>>        Open(C_File, In_File, To_String(Inp_File));
>>>        while not End_of_File(C_File) loop
>>>           str_line_n := To_Unbounded_String(Get_Line(C_File));
>>>           Buffer_GL.Set_Buffer(str_line_n); -- breakpoint on this line
>>>           glade_lines := glade_lines + 1;
>>>        end loop;
>>>        Close(C_File);
>>> where str_line_n is of the type Unbounded_String.
>>> I used a test file with the below presented three text lines:
>>> Line 1 abcdef9876543210
>>> Line 2 " abcdef"9876543210
>>> Line 3 "abc"de"f"9876543210
>>>
>>> In the debugger the results were:
>>> "Line 1 abcdef 9876543210"
>>> "Line 2 "" abcdef"" 98765432"
>>> "Line 3 ""abc""de ""f""987654"
>>
>>
>> It seems that the debugger displays the strings in the form of Ada 
>> string literals, which are enclosed in quotes (") and within which 
>> each quote character has to be duplicated (to show that it is not the 
>> terminating quote). So the duplication of the quotes is nothing to 
>> worry about. If you were to print out the strings (with Ada.Text_IO) 
>> they should appear just as in the input, with only the original quote 
>> characters.
>>
>> However, your example also shows some extra blank spaces in the 
>> debugger output, for example:
>>
>> Input   : Line 1 abcdef9876543210
>> Debugger: "Line 1 abcdef 9876543210"
>>
>>
>>
> Not only that but also some of the  last characters disappear in line 2 
> the 10 and in line 3 3210


My guess is that these differences are bugs in the debugger's display of 
strings with embedded quote characters. For Line 1, which has no 
embedded quotes, the full string is displayed (though with an inserted 
blank). For Line 2, with two embedded quotes, two of the last characters 
are not displayed. For Line 3, with four embedded quotes, four of the 
last characters are not displayed. It seems that the debugger does not 
realize that doubling the quote characters makes the displayed string 
longer...

Try to print the strings with Ada.Text_IO instead, that should give the 
right result. In other words, your code reading the strings works, but 
the debugger is probably buggy. (One reason why I avoid debuggers 
whenever I can.)

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Is this my failure or of the compiler's debugger
  2023-01-11 13:43     ` Niklas Holsti
@ 2023-01-11 16:52       ` ldries46
  0 siblings, 0 replies; 5+ messages in thread
From: ldries46 @ 2023-01-11 16:52 UTC (permalink / raw)


Op 11-1-2023 om 14:43 schreef Niklas Holsti:
> On 2023-01-11 0:17, ldries46 wrote:
>> Op 10-1-2023 om 19:12 schreef Niklas Holsti:
>>> On 2023-01-10 15:16, ldries46 wrote:
>>>> I try to create a program that read Unbounded strings from a file 
>>>> in the loop:
>>>>        Open(C_File, In_File, To_String(Inp_File));
>>>>        while not End_of_File(C_File) loop
>>>>           str_line_n := To_Unbounded_String(Get_Line(C_File));
>>>>           Buffer_GL.Set_Buffer(str_line_n); -- breakpoint on this line
>>>>           glade_lines := glade_lines + 1;
>>>>        end loop;
>>>>        Close(C_File);
>>>> where str_line_n is of the type Unbounded_String.
>>>> I used a test file with the below presented three text lines:
>>>> Line 1 abcdef9876543210
>>>> Line 2 " abcdef"9876543210
>>>> Line 3 "abc"de"f"9876543210
>>>>
>>>> In the debugger the results were:
>>>> "Line 1 abcdef 9876543210"
>>>> "Line 2 "" abcdef"" 98765432"
>>>> "Line 3 ""abc""de ""f""987654"
>>>
>>>
>>> It seems that the debugger displays the strings in the form of Ada 
>>> string literals, which are enclosed in quotes (") and within which 
>>> each quote character has to be duplicated (to show that it is not 
>>> the terminating quote). So the duplication of the quotes is nothing 
>>> to worry about. If you were to print out the strings (with 
>>> Ada.Text_IO) they should appear just as in the input, with only the 
>>> original quote characters.
>>>
>>> However, your example also shows some extra blank spaces in the 
>>> debugger output, for example:
>>>
>>> Input   : Line 1 abcdef9876543210
>>> Debugger: "Line 1 abcdef 9876543210"
>>>
>>>
>>>
>> Not only that but also some of the  last characters disappear in line 
>> 2 the 10 and in line 3 3210
>
>
> My guess is that these differences are bugs in the debugger's display 
> of strings with embedded quote characters. For Line 1, which has no 
> embedded quotes, the full string is displayed (though with an inserted 
> blank). For Line 2, with two embedded quotes, two of the last 
> characters are not displayed. For Line 3, with four embedded quotes, 
> four of the last characters are not displayed. It seems that the 
> debugger does not realize that doubling the quote characters makes the 
> displayed string longer...
>
> Try to print the strings with Ada.Text_IO instead, that should give 
> the right result. In other words, your code reading the strings works, 
> but the debugger is probably buggy. (One reason why I avoid debuggers 
> whenever I can.)
>
That is also my guess but I like to use the debugger because You stop 
running the program anywhere you want and check all parameters you think 
are nice to know. Now you have to add a lot of code and still see that 
you need tyo know another parameter and run the program over and over 
again each time with other code added.

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2023-01-11 16:52 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <nnd$70b29fcd$4811e339@5bc1ef990a7003a8>
2023-01-10 18:12 ` Is this my failure or of the compiler's debugger Niklas Holsti
2023-01-10 22:17   ` ldries46
2023-01-11  7:40     ` ldries46
2023-01-11 13:43     ` Niklas Holsti
2023-01-11 16:52       ` ldries46

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox