This is the mail archive of the
gdb-prs@sources.redhat.com
mailing list for the GDB project.
gdb/94: The TUI doesn't build
- To: gdb-gnats at sources dot redhat dot com
- Subject: gdb/94: The TUI doesn't build
- From: ac131313 at cygnus dot com
- Date: 7 Jul 2001 02:17:01 -0000
- Reply-To: ac131313 at cygnus dot com
>Number: 94
>Category: gdb
>Synopsis: The TUI doesn't build
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: unassigned
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Fri Jul 06 19:18:00 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator: ac131313@cygnus.com
>Release: unknown-1.0
>Organization:
>Environment:
>Description:
Fix TUI
o readline/*.h bitrot
The TUI isn't up-to-date with
respect to the readline currently
bundled with GDB. Importing a
new readline is on the 5.1 wish
list so this can only get worse.
Grep for things like term_cursor_move.
(To be honest, I don't see anyone
importing a new readline before 5.1 is
out)
o tui.c:va_catch_errors() bitrot
This nasty piece of work used knowledge
of the internals of GDBs error functions :-(
Ever since those internals were cleaned
up this code has been broken. :-(
o tuiWin.c:c_makeVisibleWithNewHeight() broken
tuiLayout.c:_extractDisplayStartAddr() broken
Both these function call find_line_pc()
incorrectly (wrong args, wrong return value).
I suspect this bug has always been there!
It had been hidden because those files
didn't include the necessary header files
from gdb proper :-(
o tuiRegs() host dependant
Not suprisingly, this isn't a very portable
section of code. However, I'm sure people
could live with no regs in the short to
medium term.
o defs.h: #include "tui.h" et.al.
I'm not sure where this came from.
It was a really bad idea.
To get things to compile I did a nasty
hack (Just declare what was needed and
replace any expressions like xx->y.z()
in GDB proper with function calls). I
could commit it slightly cleaned up if
you like.
Medium Term. the #ifdef TUI and TuiDo()
should be changed to hooks (like GDBTK).
The gdb-events.[hc] is there for that
purpose (1)
o tui.c:_tuiReset() host dependant
tui.c contains a lump of termio[s]
I suspect an equivalent block of
code can be lifted from readline.
An equivalent readline function may
even be available.
o curses.h vs ncurses.h.
Simple portability problem.
o subsetCompare()
This function is a mystery - where is it?
o tui-file.[hc] cleanup
This can be significantly simplified.
o The code should be pacified. (-Werror -W...)
There are plenty of #includes,
duplicate #includes, missing function decls
and the like.
Some of the problems I found were through
fixing a few of the warnings.
o The code should be GNUtified.
It would be very nice to have this code
look like the rest of GDB. That way people
would be more accepting of it as a true
gdb component.
Until it is GNUtified it is going to stick
out like a sore thumb to the programmer.
o The code should be clearly copyrighted
(FSF, with due credit to HP)
>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted: