From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on ip-172-31-65-14.ec2.internal X-Spam-Level: X-Spam-Status: No, score=-3.2 required=3.0 tests=BAYES_00,NICE_REPLY_A, T_SCC_BODY_TEXT_LINE,WEIRD_QUOTING autolearn=ham autolearn_force=no version=3.4.6 Date: Wed, 11 Jan 2023 17:52:54 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.6.1 Subject: Re: Is this my failure or of the compiler's debugger Newsgroups: comp.lang.ada References: Content-Language: en-GB From: ldries46 In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Message-ID: Organization: KPN B.V. Path: eternal-september.org!reader01.eternal-september.org!news.uzoreto.com!feeder.usenetexpress.com!tr3.eu1.usenetexpress.com!94.232.112.244.MISMATCH!feed.abavia.com!abe004.abavia.com!abp001.abavia.com!news.kpn.nl!not-for-mail Injection-Date: Wed, 11 Jan 2023 17:52:54 +0100 Injection-Info: news.kpn.nl; mail-complaints-to="abuse@kpn.com" Xref: reader01.eternal-september.org comp.lang.ada:64796 List-Id: 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.