From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Berlin To: Eli Zaretskii Cc: Daniel Berlin , Andrew Cagney , GDB Discussion Subject: Re: 5.1 NEWS Date: Mon, 09 Jul 2001 00:53:00 -0000 Message-id: <877kxir11l.fsf@cgsoftware.com> References: X-SW-Source: 2001-07/msg00075.html Eli Zaretskii writes: > On Mon, 9 Jul 2001, Daniel Berlin wrote: > >> If I read in a news file that a debugger now had "Fortran Support", >> I'd expect it to be at the same level as all the other languages, >> whether it's new or not. > > Clear and concise bug reports might help solve whatever problems you > see. Thanks for the hint. Again. I'll be filing them, as soon as I can get gpc to compile again to produce test cases (obviously, the case sensitivity one i'll file in the morning before i work on making gpc compile again.) However, you speak of it as if these were a few isolated problems. They weren't. You get hit with them attempting to debug any pascal program, right from the get go (this is a pascal program i had compiled last time i tried this): (%:/buildspace/gpc-20010623/p/test)- gdb ./index GNU gdb 2001-07-05-cvs (MI_OUT) Copyright 2001 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "powerpc-unknown-linux-gnu"... (gdb) l 36 : No such file or directory. in >>>>what? (gdb) l main 40 in >>>>What? (gdb) info func File index.pas: procedure Foo; procedure fini_pascal_main_program; procedure init_pascal_main_program; function main(Integer, ^Cstring, ^Cstring) : Integer; procedure pascal_main_program; static procedure Bar; Non-debugging symbols: $00000618 Letext (gdb) ptype kinds No symbol "KINDS" in current context. >>Lies (gdb) ptype scanres No symbol "SCANRES" in current context. >>Lies (gdb) info types All defined types: File index.pas: type complex float = complex float; type complex int = complex int; type complex long double = complex long double; type Bindingtype = Bindingtype; type Boolean = Boolean; type Bytebool = Bytebool; type Bytecard = Bytecard; type Byteint = Byteint; type Cardinal = Cardinal; type Char = Char; type Complex = Complex; type Cstring = Cstring; type Integer = Integer; type Kinds = = (Ident, Number, Op, Endfile); type Longestbool = Longestbool; type Longestcard = Longestcard; type Longestint = Longestint; type Longestreal = Longestreal; type Medbool = Medbool; type Medcard = Medcard; type Medint = Medint; type Pointer = Pointer; type Ptrcard = Ptrcard; type Ptrint = Ptrint; type Real = Real; type Scanres = record Symbol : Symb; Kind : Kinds; end; type Shortbool = Shortbool; type Shortcard = Shortcard; type Shortreal = Shortreal; type Smallint = Smallint; type String = String; type Text = ; type Timestamp = Timestamp; type Void = Void; type Wordbool = Wordbool; (gdb) ptype String type = record Capacity : Cardinal; length : Cardinal; _p_schema_ : ; end (gdb) ptype Scanres type = record Symbol : Sym; Kind : Kinds; end; >>> Oh, i had to magically force readin of all the types through info >>> types before i can use any. Whee. And string is broken. Whee. Don't even try to think about actually *running* the program or printing out variables. Or casting. For starters, we should list what the parser does, as known problems: (from p-exp.y, at the top) - pascal string operations are not supported at all. - there are some problems with boolean types. - Pascal type hexadecimal constants are not supported because they conflict with the internal variables format. Probably also lots of other problems, less well defined PM */ These are *serious* limitations. Not namby pamby little problems. Not that I think that it shouldn't be in gdb yet, or that Pierre isn't doing a good job so far. But it's pretty clear it's still experimental. And as evidenced, Pierre knows about at least some of these problems, too, if not all of them. And "Probably also lots of other problems, less well defined" doesn't give me a good feeling about it being in good shape yet either. So once again, I urge you to simply not put "Pascal support" in the news. It's a work in progress, and not up to the level of support we have for other languages. I'm also curious as to why I have to go to great lengths to prove this. It's pretty clear to anyone who looks at the tops of the source files, or tries to debug a simple pascal program. Heck, i'm sure Pierre would happily tell you all of these bugs are there too, if someone asked him. It doesn't seem he's completely unaware their are problems. I'm sure Pierre will get it into good shape sometime, but unless he has a bunch of patches he hasn't submitted, i'd have to assume this won't be 5.1. --Dan -- "Doing a little work around the house. I put fake brick wallpaper over a real brick wall, just so I'd be the only one who knew. People come over and I'm gonna say, "Go ahead, touch it... It feels real." "-Steven Wright