aboutsummaryrefslogtreecommitdiff
path: root/gdb/tui/tui.c
AgeCommit message (Collapse)AuthorFilesLines
2015-05-13Avoid race condition when handling a SIGWINCH signalPatrick Palka1-1/+1
The control variable win_resized must be cleared before responding to it. Otherwise there is a small window where another SIGWINCH might occur in between the handling of an earlier SIGWINCH and the clearing of win_resized, at which point win_resized would be set (again) by the signal handler. Shortly thereafter we would clear win_resized even though we only handled the earlier SIGWINCH but not the latest one. This chain of events is all avoided if we clear win_resized first. gdb/ChangeLog: * tui/tui-win.c (tui_async_resize_screen): Clear win_resized first before resizing the window. * tui.c (tui_enable): Likewise.
2015-03-07Split TRY_CATCH into TRY + CATCHPedro Alves1-3/+3
This patch splits the TRY_CATCH macro into three, so that we go from this: ~~~ volatile gdb_exception ex; TRY_CATCH (ex, RETURN_MASK_ERROR) { } if (ex.reason < 0) { } ~~~ to this: ~~~ TRY { } CATCH (ex, RETURN_MASK_ERROR) { } END_CATCH ~~~ Thus, we'll be getting rid of the local volatile exception object, and declaring the caught exception in the catch block. This allows reimplementing TRY/CATCH in terms of C++ exceptions when building in C++ mode, while still allowing to build GDB in C mode (using setjmp/longjmp), as a transition step. TBC, after this patch, is it _not_ valid to have code between the TRY and the CATCH blocks, like: TRY { } // some code here. CATCH (ex, RETURN_MASK_ERROR) { } END_CATCH Just like it isn't valid to do that with C++'s native try/catch. By switching to creating the exception object inside the CATCH block scope, we can get rid of all the explicitly allocated volatile exception objects all over the tree, and map the CATCH block more directly to C++'s catch blocks. The majority of the TRY_CATCH -> TRY+CATCH+END_CATCH conversion was done with a script, rerun from scratch at every rebase, no manual editing involved. After the mechanical conversion, a few places needed manual intervention, to fix preexisting cases where we were using the exception object outside of the TRY_CATCH block, and cases where we were using "else" after a 'if (ex.reason) < 0)' [a CATCH after this patch]. The result was folded into this patch so that GDB still builds at each incremental step. END_CATCH is necessary for two reasons: First, because we name the exception object in the CATCH block, which requires creating a scope, which in turn must be closed somewhere. Declaring the exception variable in the initializer field of a for block, like: #define CATCH(EXCEPTION, mask) \ for (struct gdb_exception EXCEPTION; \ exceptions_state_mc_catch (&EXCEPTION, MASK); \ EXCEPTION = exception_none) would avoid needing END_CATCH, but alas, in C mode, we build with C90, which doesn't allow mixed declarations and code. Second, because when TRY/CATCH are wired to real C++ try/catch, as long as we need to handle cleanup chains, even if there's no CATCH block that wants to catch the exception, we need for stop at every frame in the unwind chain and run cleanups, then rethrow. That will be done in END_CATCH. After we require C++, we'll still need TRY/CATCH/END_CATCH until cleanups are completely phased out -- TRY/CATCH in C++ mode will save/restore the current cleanup chain, like in C mode, and END_CATCH catches otherwise uncaugh exceptions, runs cleanups and rethrows, so that C++ cleanups and exceptions can coexist. IMO, this still makes the TRY/CATCH code look a bit more like a newcomer would expect, so IMO worth it even if we weren't considering C++. gdb/ChangeLog. 2015-03-07 Pedro Alves <palves@redhat.com> * common/common-exceptions.c (struct catcher) <exception>: No longer a pointer to volatile exception. Now an exception value. <mask>: Delete field. (exceptions_state_mc_init): Remove all parameters. Adjust. (exceptions_state_mc): No longer pop the catcher here. (exceptions_state_mc_catch): New function. (throw_exception): Adjust. * common/common-exceptions.h (exceptions_state_mc_init): Remove all parameters. (exceptions_state_mc_catch): Declare. (TRY_CATCH): Rename to ... (TRY): ... this. Remove EXCEPTION and MASK parameters. (CATCH, END_CATCH): New. All callers adjusted. gdb/gdbserver/ChangeLog: 2015-03-07 Pedro Alves <palves@redhat.com> Adjust all callers of TRY_CATCH to use TRY/CATCH/END_CATCH instead.
2015-02-17TUI: resize windows to new terminal size before displaying themPedro Alves1-6/+10
If the user: #1 - disables the TUI #2 - resizes the terminal #3 - and then re-enables the TUI the next wgetch() returns KEY_RESIZE. This indicates to the ncurses client that ncurses detected that the terminal has been resized. We don't handle KEY_RESIZE anywhere, so it gets passed on to readline which interprets it as a multibyte character, and then the end result is that the first key press after enabling the TUI is misinterpreted. We shouldn't really need to handle KEY_RESIZE (and not all ncurses implementations have that). We have our own SIGWINCH handler, and, when we re-enable the TUI, we explicitly detect terminal resizes and resize all windows. The reason ncurses currently does detects a resize is that something within tui_enable forces a refresh/display of some window before we get to do the actual resizing. Setting a break on ncurses' 'resizeterm' function helps find the culprit(s): (top-gdb) bt #0 resizeterm (ToLines=28, ToCols=114) at ../../ncurses/base/resizeterm.c:462 #1 0x0000003b42812f3f in _nc_update_screensize (sp=0x2674730) at ../../ncurses/tinfo/lib_setup.c:443 #2 0x0000003b0821cbe0 in doupdate () at ../../ncurses/tty/tty_update.c:726 #3 0x0000003b08215539 in wrefresh (win=0x2a7bc00) at ../../ncurses/base/lib_refresh.c:65 #4 0x00000000005257cb in tui_refresh_win (win_info=0xd73d60 <_locator>) at /home/pedro/gdb/mygit/src/gdb/tui/tui-wingeneral.c:60 #5 0x000000000052265b in tui_show_locator_content () at /home/pedro/gdb/mygit/src/gdb/tui/tui-stack.c:269 #6 0x00000000005273a6 in tui_set_key_mode (mode=TUI_COMMAND_MODE) at /home/pedro/gdb/mygit/src/gdb/tui/tui.c:321 #7 0x00000000005278c7 in tui_enable () at /home/pedro/gdb/mygit/src/gdb/tui/tui.c:494 #8 0x0000000000527011 in tui_rl_switch_mode (notused1=1, notused2=1) at /home/pedro/gdb/mygit/src/gdb/tui/tui.c:108 That is, tui_enable calls tui_set_key_mode before we've resized all windows, and that refreshes a window as side effect. And if we're already debugging something (there's a frame), then we'll instead show a window from within tui_show_frame_info: (top-gdb) bt #0 resizeterm (ToLines=28, ToCols=114) at ../../ncurses/base/resizeterm.c:462 #1 0x0000003b42812f3f in _nc_update_screensize (sp=0x202e6c0) at ../../ncurses/tinfo/lib_setup.c:443 #2 0x0000003b0821cbe0 in doupdate () at ../../ncurses/tty/tty_update.c:726 #3 0x0000003b08215539 in wrefresh (win=0x2042890) at ../../ncurses/base/lib_refresh.c:65 #4 0x00000000005257cb in tui_refresh_win (win_info=0xd73d60 <_locator>) at /home/pedro/gdb/mygit/src/gdb/tui/tui-wingeneral.c:60 #5 0x000000000052265b in tui_show_locator_content () at /home/pedro/gdb/mygit/src/gdb/tui/tui-stack.c:269 #6 0x0000000000522931 in tui_show_frame_info (fi=0x16b9cc0) at /home/pedro/gdb/mygit/src/gdb/tui/tui-stack.c:364 #7 0x00000000005278ba in tui_enable () at /home/pedro/gdb/mygit/src/gdb/tui/tui.c:491 #8 0x0000000000527011 in tui_rl_switch_mode (notused1=1, notused2=1) at /home/pedro/gdb/mygit/src/gdb/tui/tui.c:108 The fix is to resize windows earlier. gdb/ChangeLog: 2015-02-17 Pedro Alves <palves@redhat.com> * tui/tui.c (tui_enable): Resize windows before anything might show a window.
2015-02-10Fix a pair of screen-resizing issues in TUIPatrick Palka1-0/+7
This patch fixes a pair of TUI issues related to screen resizing: 1. In tui_handle_resize_during_io(), when the TUI screen gets resized, we fail to update GDB's idea about the height of the output window. You can see this bug by doing: a. Enter TUI mode. b. "show height" c. Resize the terminal. d. "show height" And observe that despite resizing the terminal, the reported height remains unchanged. Note that a similar issue exists in the CLI. The fix for this is simple: call tui_update_gdb_sizes() after performing a resize, so that the "height" variable remains consistent with the height of TUI's output window. 2. In tui_enable(), the call to tui_update_gdb_sizes() may clobber readline's idea of the actual screen dimensions, and a subsequent pending resize will use bogus terminal dimensions. You can see this bug by doing: a. Enter TUI mode. b. Exit TUI mode. c. Resize the terminal. d. Enter TUI mode. e. Press a key to resize the screen. And observe that the terminal gets incorrectly resized to the wrong dimensions. To fix this issue, we should oppurtunistically resize the screen in tui_enable(). That way we eliminate the possibility of a pending resize triggering right after we call tui_update_gdb_sizes(). gdb/ChangeLog: * tui/tui-io.c (tui_handle_resize_during_io): Call tui_update_gdb_sizes() after resizing the screen. * tui/tui.c (tui_enable): Resize the terminal before calling tui_update_gdb_sizes().
2015-01-22Fix MinGW TUI buildEli Zaretskii1-1/+10
gdb/ 2015-01-22 Eli Zaretskii <eliz@gnu.org> * gdb/tui/tui.c (tui_enable) [__MINGW32__]: If the call to 'newterm' fails with the 1st arg NULL, try again with "unknown". Don't test the "cup" capability: it isn't supported by the Windows port of ncurses, but the Windows console driver is still capable of supporting TUI.
2015-01-01Update year range in copyright notice of all files owned by the GDB project.Joel Brobecker1-1/+1
gdb/ChangeLog: Update year range in copyright notice of all files.
2014-11-04tui: Fix newterm call for older ncursesSimon Marchi1-1/+1
Older versions of ncurses' newterm can't take NULL for their ofp and ifp parameters. Newer versions can, and they fall back on stdout/stdin if that is the case. This patch explicitly passes stdout/stdin to the call to newterm to avoid segfaulting with older ncurses. gdb/Changelog: 2014-11-04 Simon Marchi <simon.marchi@ericsson.com> * tui/tui.c (tui_enable): Pass stdout and stdin to newterm.
2014-10-29TUI: don't let exceptions escape while handling readline key bindingsPedro Alves1-6/+21
I noticed that with: $ TERM=dumb ./gdb -q -nx <c-x,a> Cannot enable the TUI: terminal doesn't support cursor addressing [TERM=dumb] (gdb) The next key the user types is silently eaten. The problem is that we're throwing an exception while in a readline callback that isn't prepared for that: (top-gdb) bt #0 tui_enable () at /home/pedro/gdb/mygit/build/../src/gdb/tui/tui.c:388 #1 0x000000000051f47b in tui_rl_switch_mode (notused1=1, notused2=1) at /home/pedro/gdb/mygit/build/../src/gdb/tui/tui.c:101 #2 0x0000000000768d6f in _rl_dispatch_subseq (key=1, map=0xd069c0 <emacs_ctlx_keymap>, got_subseq=0) at /home/pedro/gdb/mygit/build/../src/readline/readline.c:774 #3 0x0000000000768acb in _rl_dispatch_callback (cxt=0x1ce6190) at /home/pedro/gdb/mygit/build/../src/readline/readline.c:686 #4 0x000000000078120b in rl_callback_read_char () at /home/pedro/gdb/mygit/build/../src/readline/callback.c:170 #5 0x0000000000619445 in rl_callback_read_char_wrapper (client_data=0x0) at /home/pedro/gdb/mygit/build/../src/gdb/event-top.c:166 #6 0x000000000061981b in stdin_event_handler (error=0, client_data=0x0) at /home/pedro/gdb/mygit/build/../src/gdb/event-top.c:372 #7 0x000000000061840e in handle_file_event (data=...) at /home/pedro/gdb/mygit/build/../src/gdb/event-loop.c:762 #8 0x00000000006178f5 in process_event () at /home/pedro/gdb/mygit/build/../src/gdb/event-loop.c:339 #9 0x00000000006179bc in gdb_do_one_event () at /home/pedro/gdb/mygit/build/../src/gdb/event-loop.c:403 #10 0x0000000000617a0c in start_event_loop () at /home/pedro/gdb/mygit/build/../src/gdb/event-loop.c:428 Here, in _rl_dispatch_subseq: 769 770 rl_executing_keymap = map; 771 772 rl_dispatching = 1; 773 RL_SETSTATE(RL_STATE_DISPATCHING); 774 (*map[key].function)(rl_numeric_arg * rl_arg_sign, key); 775 RL_UNSETSTATE(RL_STATE_DISPATCHING); 776 rl_dispatching = 0; 777 778 /* If we have input pending, then the last command was a prefix 779 command. Don't change the state of rl_last_func. Otherwise, GDB is called from line 774, but longjmp'ing at that point leaves rl_dispatching and RL_STATE_DISPATCHING set. Fix this by wrapping tui_rl_switch_mode in a TRY_CATCH. gdb/ 2014-10-29 Pedro Alves <palves@redhat.com> * tui/tui.c (tui_rl_switch_mode): Wrap tui_enable/tui_disable in TRY_CATCH.
2014-10-29PR tui/16138, PR tui/17519, and misc failures to initialize the terminalPedro Alves1-4/+49
PR tui/16138 is about failure to initialize curses resulting in GDB exiting instead of throwing an error. E.g.: $ TERM=foo gdb (gdb) layout asm Error opening terminal: foo. $ The problem is that we're calling initscr to initialize the screen. As mentioned in http://pubs.opengroup.org/onlinepubs/7908799/xcurses/initscr.html: If errors occur, initscr() writes an appropriate error message to standard error and exits. ^^^^^ Instead, we should use newterm: "A program that needs an indication of error conditions, so it can continue to run in a line-oriented mode if the terminal cannot support a screen-oriented program, would also use this function." After the patch: $ TERM=foo gdb -q -nx (gdb) layout asm Cannot enable the TUI: error opening terminal [TERM=foo] (gdb) And then PR tui/17519 is about GDB not validating whether the terminal has the necessary capabilities when enabling the TUI. If one tries to enable the TUI with TERM=dumb (and e.g., from a shell within emacs), GDB ends up with a clear screen, the cursor is placed at the bottom/right corner of the screen, there's no prompt, typing shows no echo, and there's no indication of what's going on. c-x,a gets you out of the TUI, but it's completely non-obvious. After the patch, we get: $ TERM=dumb gdb -q -nx (gdb) layout asm Cannot enable the TUI: terminal doesn't support cursor addressing [TERM=dumb] (gdb) While at it, I've moved all the tui_allowed_p validation to tui_enable, and expanded the error messages. Previously we'd get: $ gdb -q -nx -i=mi (gdb) layout asm &"layout asm\n" &"TUI mode not allowed\n" ^error,msg="TUI mode not allowed" and: $ gdb -q -nx -ex "layout asm" > foo TUI mode not allowed While now we get: $ gdb -q -nx -i=mi (gdb) layout asm &"layout asm\n" &"Cannot enable the TUI when the interpreter is 'mi'\n" ^error,msg="Cannot enable the TUI when the interpreter is 'mi'" (gdb) and: $ gdb -q -nx -ex "layout asm" > foo Cannot enable the TUI when output is not a terminal Tested on x86_64 Fedora 20. gdb/ 2014-10-29 Pedro Alves <palves@redhat.com> PR tui/16138 PR tui/17519 * tui/tui-interp.c (tui_is_toplevel): Delete global. (tui_allowed_p): Delete function. * tui/tui.c: Include "interps.h". (tui_enable): Don't use tui_allowed_p. Error out here with detailed error messages if the TUI is the top level interpreter, or if output is not a terminal. Use newterm instead of initscr, and error out if initializing the terminal fails. Also error out if the terminal doesn't support cursor addressing. * tui/tui.h (tui_allowed_p): Delete declaration.
2014-08-27Fix terminal state corruption when starting a program from within TUIPatrick Palka1-2/+3
The TUI terminal state becomes corrupted (e.g. key sequences such as Alt_F and Alt_B no longer work) when one attaches to an inferior process (via "run" or "attach") from within TUI. This terminal corruption remains until you switch out of TUI mode. This happens because the terminal state is not properly saved when switching to and out from TUI mode. Although the functions tui_enable() and tui_disable() both call the function target_terminal_save_ours() to save the terminal state, this function is a no-op unless GDB has already attached to an inferior process. This is because only the "native" target has a useful implementation of target_terminal_save_ours() (namely child_terminal_save_ours()) and we only have the "native" target in our target vector if GDB has already attached to an inferior process. So without an inferior process, switching to and from TUI mode does not actually save the terminal state. Therefore when you attach to an inferior process from within TUI mode, the proper terminal state is not restored (after swapping from the inferior's terminal back to the GDB terminal). To fix this we just have to ensure that the terminal state is always being properly saved when switching from and to TUI mode. To achieve this, this patch removes the polymorphic function target_terminal_save_ours() and replaces it with a regular function gdb_save_tty_state() that always saves the terminal state. Tested on x86_64-unknown-linux-gnu by running "make check", no new regressions. gdb/ChangeLog: * target.h (struct target_ops::to_terminal_save_ours): Remove declaration. (target_terminal_save_ours): Remove macro. * target-delegates.c: Regenerate. * inf-child.c (inf_child_target): Don't set the nonexistent field to_terminal_save_ours. * inferior.h (child_terminal_save_ours): Remove declaration. * terminal.h (gdb_save_tty_state): New declaration. * inflow.c (child_terminal_save_ours): Rename to ... (gdb_save_tty_state): ... this. * tui/tui.c: Include terminal.h. (tui_enable): Use gdb_save_tty_state instead of target_terminal_save_ours. (tui_disable): Likewise.
2014-08-07Move stdlib.h to common-defs.hGary Benson1-1/+0
This commit moves the inclusion of stdlib.h to common-defs.h and removes all other inclusions. gdb/ 2014-08-07 Gary Benson <gbenson@redhat.com> * common/common-defs.h: Include stdlib.h. * defs.h: Do not include stdlib.h. * addrmap.c: Likewise. * bcache.c: Likewise. * common/buffer.c: Likewise. * common/common-utils.c: Likewise. * cp-name-parser.y: Likewise. * go32-nat.c: Likewise. * mn10300-linux-tdep.c: Likewise. * nat/linux-osdata.c: Likewise. * tui/tui.c: Likewise. * windows-nat.c: Likewise. gdb/gdbserver/ 2014-08-07 Gary Benson <gbenson@redhat.com> * server.h: Do not include stdlib.h. * inferiors.c: Likewise. * linux-low.c: Likewise. * regcache.c: Likewise. * spu-low.c: Likewise. * tracepoint.c: Likewise. * utils.c: Likewise.
2014-08-07Move stdio.h to common-defs.hGary Benson1-1/+0
This commit moves the inclusion of stdio.h to common-defs.h and removes all other inclusions. gdb/ 2014-08-07 Gary Benson <gbenson@redhat.com> * common/common-defs.h: Include stdio.h. * defs.h: Do not include stdio.h. * ada-lang.c: Likewise. * common/buffer.c: Likewise. * common/common-utils.c: Likewise. * cp-name-parser.y: Likewise. * gnu-nat.c: Likewise. * go32-nat.c: Likewise. * i386gnu-nat.c: Likewise. * proc-api.c: Likewise. * proc-events.c: Likewise. * proc-flags.c: Likewise. * proc-why.c: Likewise. * python/python-internal.h: Likewise. * target-memory.c: Likewise. * tui/tui-io.c: Likewise. * tui/tui.c: Likewise. gdb/gdbserver/ 2014-08-07 Gary Benson <gbenson@redhat.com> * server.h: Do not include stdio.h. * linux-low.c: Likewise. * remote-utils.c: Likewise. * spu-low.c: Likewise. * utils.c: Likewise. * wincecompat.c: Likewise.
2014-01-01Update Copyright year range in all files maintained by GDB.Joel Brobecker1-1/+1
2013-02-03gdb/Jan Kratochvil1-2/+2
* source.c (print_source_lines_base): Print for TUI also "fullname". * tui/tui-data.c (init_content_element): Change tui_locator_element field to full_name. * tui/tui-data.h (struct tui_locator_element): Likewise. * tui/tui-disasm.c (tui_show_disassem_and_update_source): Rename tui_update_locator_filename calls to tui_update_locator_fullname. Replace symtab->filename refererence by symtab_to_fullname call. * tui/tui-out.c (tui_field_string): Check for "fullname" now. * tui/tui-source.c (tui_set_source_content): Change tui_locator_element field to full_name. Replace symtab->filename refererence by symtab_to_fullname call. (tui_show_symtab_source): Rename parameter to fullname. Change tui_locator_element field to full_name. * tui/tui-stack.c: Include source.h. (tui_set_locator_filename): Rename the declaration to ... (tui_set_locator_fullname): ... here. Rename its parameter to fullname, updates its comment. (tui_set_locator_info): Rename its parameter to fullname. (tui_set_locator_filename): Rename the definition to ... (tui_set_locator_fullname): ... here. Rename its parameter to fullname, updates its comment. Change tui_locator_element field to full_name. (tui_set_locator_info): Rename its parameter to fullname. (tui_set_locator_info): Rename callee to tui_set_locator_fullname. (tui_update_locator_filename): Rename to ... (tui_update_locator_fullname): ... here. Rename callee to tui_set_locator_fullname. (tui_show_frame_info): Replace symtab->filename refererence by symtab_to_fullname call. * tui/tui-stack.h (tui_update_locator_filename): Rename to ... (tui_update_locator_fullname): ... here. * tui/tui-winsource.c (tui_display_main): Rename the callee to tui_update_locator_fullname. Replace symtab->filename refererence by symtab_to_fullname call. * tui/tui.c (tui_show_source): Rename its parameter to fullname. Rename the callee to tui_update_locator_fullname. * tui/tui.h (tui_show_source): Rename its parameter to fullname.
2013-01-01Update years in copyright notice for the GDB files.Joel Brobecker1-1/+1
Two modifications: 1. The addition of 2013 to the copyright year range for every file; 2. The use of a single year range, instead of potentially multiple year ranges, as approved by the FSF.
2012-11-10* tui/tui.c (tui_rl_command_key): Switch to TUI_ONE_COMMAND_MODEStephane Carrez1-1/+5
while executing the gdb command. (tui_rl_startup_hook): Do not switch back to TUI_SINGLE_KEY_MODE if we are called from prompt_for_continue. * tui/tui-io.c (tui_redisplay_readline): Likewise.
2012-11-10PR tui/9584Stephane Carrez1-6/+7
* tui/tui.c (tui_rl_command_key): Do not call execute_command but insert the command to execute in readline's buffer.
2012-01-04Copyright year update in most files of the GDB Project.Joel Brobecker1-2/+1
gdb/ChangeLog: Copyright year update in most files of the GDB Project.
2011-01-01run copyright.sh for 2011.Joel Brobecker1-1/+1
2010-05-172010-05-17 Michael Snyder <msnyder@vmware.com>Michael Snyder1-0/+2
* tui/tui.c: White space. * tui/tui-data.c: White space. * tui/tui-disasm.c: White space. * tui/tui-file.c: White space. * tui/tui-interp.c: White space. * tui/tui-main.c: White space. * tui/tui-out.c: White space. * tui/tui-regs.c: White space. * tui/tui-source.c: White space. * tui/tui-stack.c: White space. * tui/tui-win.c: White space. * tui/tui-winsource.c: White space.
2010-03-30 * tui/tui-interp.c (tui_is_toplevel): New.Pedro Alves1-0/+3
(tui_init): Set it. (tui_allowed_p): New. * tui/tui.c (tui_enable): Check if the TUI is allowed before enabling it. * tui/tui.h (tui_allowed_p): Declare.
2010-01-01Update copyright year in most headers.Joel Brobecker1-2/+2
Automatic update by copyright.sh.
2009-07-02 * disasm.h (gdb_disassembly): Add GDBARCH parameter.Ulrich Weigand1-2/+2
(gdb_print_insn): Likewise. * disasm.c (dump_insns): Add GDBARCH parameter. Use it instead of current_gdbarch. (do_mixed_source_and_assembly): Add GDBARCH parameter. Pass to dump_insns. (do_assembly_only): Likewise. (gdb_disassembly): Add GDBARCH parameter. Use it instead of current_gdbarch. Pass to subroutines. (gdb_print_insn): Add GDBARCH parameter. Use it instead of current_gdbarch. * stack.c (struct gdb_disassembly_stub_args): Add GDBARCH member. (gdb_disassembly_stub): Pass architecture to gdb_disassembly. (do_gdb_disassembly): Add GDBARCH argument. Store into args. (print_frame_info): Pass architecture to do_gdb_disassembly. * printcmd.c (print_formatted): Pass architecture to gdb_print_insn. * mi/mi-cmd-disas.c: Include "arch-utils.h" (mi_cmd_disassemble): Pass architecture to gdb_disassembly. * cli/cli-cmds.c: Include "arch-utils.h". (print_disassembly): Add GDBARCH parameter. Pass to gdb_disassembly and tui_show_assembly. (disassemble_current_function): Pass architecture to tui_get_low_disassembly_address and print_disassembly. (disassemble_command): Pass architecture to tui_get_low_disassembly_address and print_disassembly. * tui/tui.c (tui_show_assembly): Add GDBARCH parameter. Pass to tui_update_source_windows_with_addr. * tui/tui-data.h (struct tui_locator_element): Add GDBARCH member. (struct tui_source_info): Likewise. * tui/tui-data.c (tui_clear_win_detail): Clear source_info.gdbarch. * tui/tui-disasm.c (tui_disassemble): Add GDBARCH parameter. Pass to gdb_print_insn. (tui_find_disassembly_address): Add GDBARCH parameter. Pass to tui_disassemble. (tui_set_disassem_content): Add GDBARCH parameter. Install into source_info.gdbarch. Pass to tui_disassemble. (tui_show_disassem): Add GDBARCH parameter. Pass to tui_update_source_window. (tui_show_disassem_and_update_source): Add GDBARCH parameter. Pass to tui_show_disassem and tui_update_source_window. (tui_get_begin_asm_address): Return locator architecture in addition to locator PC value. (tui_get_low_disassembly_address): Add GDBARCH parameter. Pass to tui_get_low_disassembly_address. (tui_vertical_disassem_scroll): Pass architecture to subroutines. * tui/tui-disasm.h (tui_set_disassem_content): Add GDBARCH parameter. (tui_show_disassem): Likewise. (tui_show_disassem_and_update_source): Likewise. (tui_get_begin_asm_address): Return architecture and PC value. * tui/tui.h (tui_get_low_disassembly_address): Add GDBARCH parameter. (tui_show_assembly): Add GDBARCH parameter. * tui/tui-layout.c (extract_display_start_addr): Return current window architecture in addition to current PC value. (tui_set_layout): Update calls to tui_get_low_disassembly_address and extract_display_start_addr. Pass architecture to tui_update_source_windows_with_addr. * tui/tui-source.c: Include "objfiles.h". (tui_set_source_content): Initialize window architecture. (tui_show_symtab_source): Add GDBARCH parameter. Pass to tui_update_source_window_as_is * tui/tui-source.h (tui_show_symtab_source): Add GDBARCH parameter. * tui/tui-stack.c (tui_set_locator_info): Add GDBARCH parameter. Install locator architecture. (tui_set_locator_filename): Update call. (tui_show_frame_info): Pass architecture to tui_set_locator_info and subroutines. * tui/tui-win.c (make_visible_with_new_height): Pass architecture to tui_update_source_window. * tui/tui-winsource.c: Include "objfiles.h". (tui_display_main): Update call to tui_get_begin_asm_address. Pass architecture to tui_update_source_windows_with_addr. (tui_update_source_window): Add GDBARCH parameter. Pass to tui_update_source_window_as_is. (tui_update_source_window_as_is): Add GDBARCH parameter. Pass to tui_set_disassem_content. (tui_update_source_windows_with_addr): Add GDBARCH parameter. Pass to subroutines. (tui_update_source_windows_with_line): Pass objfile architecture to subroutines. (tui_horizontal_source_scroll): Pass architecture to tui_update_source_window_as_is. * tui/tui-winsource.h (tui_update_source_window): Add GDBARCH parameter. (tui_update_source_window_as_is): Likewise. (tui_update_source_windows_with_addr): Likewise.
2009-01-03 Updated copyright notices for most files.Joel Brobecker1-1/+1
2008-01-01 Updated copyright notices for most files.Daniel Jacobowitz1-1/+1
2007-08-23 Switch the license of all .c files to GPLv3.Joel Brobecker1-4/+2
Switch the license of all .h files to GPLv3. Switch the license of all .cc files to GPLv3.
2007-08-142007-08-14 Michael Snyder <msnyder@access-company.com>Michael Snyder1-2/+4
* tui-data.c, tui-data.h, tui-disasm.c, tui-disasm.h, tui-hooks.c, tui-io.c, tui-layout.c, tui-layout.h, tui-out.c, tui-regs.c, tui-source.c, tui-source.h, tui-stack.c, tui-win.c, tui-win.h, tui-windata.c, tui-windata.h, tui-wingeneral.c, tui-winsource.c, tui-winsource.h, tui.c, tui.h: Function declarations and definitions, wrap long lines.
2007-08-142007-08-14 Michael Snyder <msnyder@access-company.com>Michael Snyder1-4/+2
* tui-command.c, tui-data.c, tui-disasm.c, tui-layout.c, tui-regs.c, tui-win.c, tui-windata.c, tui-winsource.c, tui.c: Reformat block comments to GNU standard.
2007-08-142007-08-14 Michael Snyder <msnyder@access-company.com>Michael Snyder1-22/+27
* tui-command.c, tui-data.c, tui-data.h, tui-disasm.c, tui-file.c, tui-hooks.c, tui-interp.c, tui-io.c, tui-layout.c, tui-out.c, tui-regs.c, tui-regs.h, tui-source.c, tui-stack.c, tui-win.c, tui-windata.c, tui-wingeneral.c, tui-winsource.c, tui-winsource.h, tui.c, tui.h: Comment reformatting to coding standard (capitals, spaces after periods, etc).
2007-08-142007-08-14 Michael Snyder <msnyder@access-company.com>Michael Snyder1-3/+3
* tui-data.c, tui-data.h, tui-disasm.c, tui-hooks.c, tui-layout.c, tui-regs.c, tui-source.c, tui-stack.c, tui-win.c, tui-windata.c, tui-wingeneral.c, tui-wingeneral.h, tui-winsource.c, tui.c, tui-winsource.h: Whitespace changes, fix pointer declarations to be consistant.
2007-02-27 * frame.c (deprecated_selected_frame): Rename to...Daniel Jacobowitz1-2/+2
(selected_frame): ...this. Make static. (get_selected_frame, select_frame): Update. * frame.h (deprected_select_frame): Delete. (deprecated_safe_get_selected_frame): Update comments. * breakpoint.c, cli/cli-cmds.c, f-valprint.c, infcmd.c, inflow.c, infrun.c, stack.c, tui/tui-disasm.c, tui/tui-source.c, tui/tui-winsource.c, valops.c, varobj.c, findvar.c, macroscope.c, parse.c, regcache.h, sh64-tdep.c, tui/tui-hooks.c, tui/tui-win.c, tui/tui.c: Replace references to deprecated_selected_frame.
2007-01-09Copyright updates for 2007.Daniel Jacobowitz1-2/+2
2005-12-23 * tui/tui-file.c:Eli Zaretskii1-3/+3
* tui/tui-disasm.c: * tui/tui-data.h: * tui/tui-data.c: * tui/tui-command.h: * tui/tui-command.c: * tui/tui-win.h: * tui/tui-win.h: * tui/tui-win.c: * tui/tui-stack.h: * tui/tui-stack.c: * tui/tui-source.h: * tui/tui-source.c: * tui/tui-regs.h: * tui/tui-regs.c: * tui/tui-out.c: * tui/tui-main.c: * tui/tui-layout.h: * tui/tui-layout.c: * tui/tui-io.h: * tui/tui-io.c: * tui/tui-interp.c: * tui/tui-hooks.h: * tui/tui-hooks.c: * tui/tui-file.h: * tui/tui.h: * tui/tui.c: * tui/tui-winsource.h: * tui/tui-winsource.c: * tui/tui-wingeneral.h: * tui/tui-wingeneral.c: * tui/tui-windata.h: * tui/tui-windata.c: Add (C) after Copyright. Update the FSF address.
2005-05-272005-05-27 Andrew Cagney <cagney@gnu.org>Andrew Cagney1-1/+1
* jv-lang.c (get_java_utf8_name): Add cast. (evaluate_subexp_java): Use gdb_byte for buffers. * jv-valprint.c (java_value_print, java_value_print): Use gdb_byte for buffers. * scm-lang.c (scm_get_field, scm_unpack) (scm_evaluate_string): Use gdb_byte for buffers. (scm_lookup_name): Add cast. * scm-valprint.c (scm_scmval_print, scm_scmval_print): Use gdb_byte for buffers. * tui/tui.h (tui_get_command_dimension): Make parameters unsigned. * tui/tui.c (tui_get_command_dimension): Make parameters unsigned. * value.h (check_field): Change "name" to a string. * valops.c (check_field): Change "name" to a string. * scm-lang.h (scm_parse): Use gdb_byte for buffers. * source.c (get_current_source_symtab_and_line) (set_current_source_symtab_and_line): Initialize all fields of sal structures. * cli/cli-cmds.c (list_command): Use gdb_byte for buffers.
2004-11-09 * configure.in: Check for ncurses/term.h.Dave Anglin1-3/+0
* gdb_curses.h: Include term.h here, prefering ncurses/term.h. * utils.c: Include gdb_curses.h instead of curses.h and term.h. * tui/tui.c: Don't include term.h. * configure, config.in: Rebuilt.
2004-09-072004-09-07 Andrew Cagney <cagney@gnu.org>Andrew Cagney1-24/+2
* vx-share/wait.h: Delete #ifdef USG. * utils.c (request_quit): Ditto. * tui/tui.c (tui_reset): Ditto. * remote.c: Ditto. * remote-sds.c: Ditto. * remote-rdi.c: Ditto. * mdebugread.c: Ditto. * m68klinux-nat.c: Ditto. * infttrace.c: Ditto. * infptrace.c: Ditto. * i386v-nat.c: Ditto. * exec.c: Ditto. * dbxread.c: Ditto. * core-aout.c: Ditto.
2004-04-09* tui/tui.c: Fix typo in comment.Mark Kettenis1-1/+1
2004-02-282004-02-28 Andrew Cagney <cagney@redhat.com>Andrew Cagney1-1/+1
* utils.c: Use "", instead of <>, to include readline. tui/tui-win.c, tui/tui.c, tui/tui-hooks.c: Ditto. * tracepoint.c, top.c, symmisc.c, symfile.c: Ditto. * source.c, solib.c, exec.c, event-top.c: Ditto. * corelow.c, completer.c, cli/cli-setshow.c: Ditto. * cli/cli-dump.c, cli/cli-cmds.c: Ditto. * Makefile.in: Update all dependencies. (readline_tilde_h, readline_history_h): Define. (readline_headers): Delete.
2004-02-28* tui/tui.c: Include <readline/readline.h> instead ofMark Kettenis1-1/+5
"readline/readline.h". Include it after <term.h> and "gdb_curses.h".
2004-02-26 * tui/tui.c: Move system header includes after local includes.Joel Brobecker1-12/+13
Fixes a build failure on solaris systems.
2004-02-18* tui/tui.c: Don't include <malloc.h>.Mark Kettenis1-1/+0
2004-02-102004-02-10 Andrew Cagney <cagney@redhat.com>Andrew Cagney1-7/+2
* defs.h: Do not include "tui.h". * gdb_curses.h: New file. * tui/tui-hooks.h: New file. * tui/tui.h (tui_update_all_exec_infos): Delete declaration. (tui_install_hooks, tui_remove_hooks): Delete declarations. (tui_initialize_io): Delete declaration. (tui_initialize_readline: Delete redundant declaration. (struct tui_point): Delete definition. * tui/tui-data.h (struct tui_point): Define. * cli/cli-decode.c [TUI]: Include "tui/tui.h". * utils.c: Include "tui/tui.h". * tui/tui-data.h: Include "tui/tui.h" and "gdb_curses.h". * printcmd.c [TUI]: Include "tui/tui.h". * cli/cli-cmds.c [TUI]: Include "tui/tui.h". * tui/tui-command.c: Include "gdb_curses.h". * tui/tui.c, tui/tui-winsource.c, tui/tui-wingeneral.c: Ditto. * tui/tui-windata.c, tui/tui-win.c, tui/tui-stack.c: Ditto. * tui/tui-source.c, tui/tui-regs.c, tui/tui-layout.c: Ditto. * tui/tui-io.c, tui/tui-disasm.c, tui/tui-data.c: : Ditto. * tui/tui-hooks.c: Include "tui-hooks.h" and "gdb_curses.h". * Makefile.in: Update all dependencies. (tui_hooks_h, gdb_curses_h): Define. (SUBDIR_TUI_CFLAGS): Remove -I${srcdir}/tui.
2004-02-082004-02-07 Andrew Cagney <cagney@redhat.com>Andrew Cagney1-2/+2
* tui/tui-command.c: Include "gdb_string.h", delete register attribute, use ISO-C function signatures. * tui/tui-disasm.c, tui/tui-file.c, tui/tui-io.c: Ditto. * tui/tui-layout.c, tui/tui-regs.c, tui/tui-source.c: Ditto. * tui/tui-stack.c, tui/tui-win.c, tui/tui-winsource.c: Ditto. * tui/tui.c: Ditto.
2004-02-082004-02-07 Andrew Cagney <cagney@redhat.com>Andrew Cagney1-12/+12
* tui/tui-command.c: Change variable and function names to lower case. * tui/tui-data.c, tui/tui-disasm.c: Ditto. * tui/tui-hooks.c, tui/tui-io.c, tui/tui-layout.c: Ditto. * tui/tui-regs.c, tui/tui-source.c, tui/tui-stack.c: Ditto. * tui/tui-win.c, tui/tui-windata.c, tui/tui-wingeneral.c: Ditto. * tui/tui-winsource.c, tui/tui.c: Ditto.
2004-02-072004-02-07 Andrew Cagney <cagney@redhat.com>Andrew Cagney1-17/+17
* tui/tui.h: Do not include <stdarg.h>, <string.h>, and "ansidecl.h". Do not undef "reg" and "chtype". Fix case of fields and variables. * tui/tui-wingeneral.h (m_beVisible): Delete macro. (m_beInvisible): Delete macro. * tui/tui-data.h: Fix case case fields and variables. (m_genWinPtrIsNull): Delete macro. (tui_win_list): Rename winList. (TUI_SRC_WIN): Rename srcWin. (TUI_DISASM_WIN): Rename disassemWin. (TUI_DATA_WIN): Rename dataWin. (TUI_CMD_WIN): Rename cmdWin. (m_genWinPtrNotNull): Delete macro. (m_winPtrIsNull): Delete macro. (m_winPtrNotNull): Delete macro. (tui_win_is_source_type): Replace m_winIsSourceType (tui_win_is_auxillary): Replace m_winIsAuzillary. (tui_win_has_locator): Replace m_hasLocator. (tui_set_win_highlight): Replace m_setWinHighlightOn and m_setWinHighlightOff. * tui/tui-data.c: Update references. (tui_win_is_source_type, tui_set_win_highlight): New functions. (tui_win_has_locator, tui_win_is_auxillary): New functions. * tui/tui-command.c, tui/tui-disasm.c: Update references. * tui/tui-io.c, tui/tui-layout.c, tui/tui-regs.c: Ditto. * tui/tui-regs.h, tui/tui-source.c, tui/tui-stack.c: Ditto. * tui/tui-win.c, tui/tui-windata.c, tui/tui-wingeneral.c: Ditto. * tui/tui-winsource.c, tui/tui.c: Ditto.
2004-02-072004-02-07 Andrew Cagney <cagney@redhat.com>Andrew Cagney1-12/+1
* tui/tui.h (Opaque, OpaquePtr OpaqueList): Delete definition. (TuiPoint, TuiPointPtr): Ditto. (TuiStatus, TuiStatusPtr): Ditto. (TuiWinType, TuiWinTypePtr): Ditto. (struct tui_point): Rename _TuiPoint. (tui_get_low_disassembly_address): Rename tuiGetLowDisassemblyAddress. (tui_update_all_exec_infos): Rename tuiUpdateAllExecInfos. (tuiFree): Delete declaration. (OpaqueFuncPtr, TuiOpaqueFuncPtr): Delete definitions. (TuiVoidFuncPtr, TuiIntFuncPtr): Delete definitions. * tui/tui.c (tuiFree): Delete function. * cli/cli-cmds.c (disassemble_command): Update references. * tui/tui-data.c, tui/tui-data.h, tui/tui-disasm.c: Ditto. * tui/tui-layout.c, tui/tui-regs.c, tui/tui-source.c: Ditto. * tui/tui-stack.c, tui/tui-win.c, tui/tui-wingeneral.c: Ditto. * tui/tui-winsource.c: Ditto.
2004-02-072004-02-07 Andrew Cagney <cagney@redhat.com>Andrew Cagney1-5/+5
* tui/tui-data.h (tui_win_element): Rename TuiWinElement. (tui_exec_info_content): Rename TuiExecInfoContent. (TuiGenWinInfo, TuiGenWinInfoPtr): Delete definitions. (TuiWinInfo, TuiWinInfoPtr): Ditto. (TuiScrollDirection, TuiScrollDirectionPtr): Ditto. (TuiList, TuiListPtr): Ditto. (TuiLayoutType, TuiLayoutTypePtr): Ditto. (TuiDataType, TuiDataTypePtr): Ditto. (TuiRegisterDisplayType, TuiRegisterDisplayTypePtr): Ditto. (TuiLineOrAddress, TuiLineOrAddressPtr): Ditto. (TuiLayoutDef, TuiLayoutDefPtr): Ditto. (TuiSourceElement, TuiSourceElementPtr): Ditto. (TuiDataElement, TuiDataElementPtr): Ditto. (TuiWinElement, TuiWinElementPtr): Ditto. (TuiDataInfo, TuiDataInfoPtr): Ditto. (TuiCommandElement, TuiCommandElementPtr): Ditto. (TuiLocatorElement, TuiLocatorElementPtr): Ditto. (TuiWhichElement, TuiWhichElementPtr): Ditto. (TuiSourceInfo, TuiSourceInfoPtr): Ditto. (TuiCommandInfo, TuiCommandInfoPtr): Ditto. * tui/tui-command.c, tui/tui-data.c: Update references. * tui/tui-data.h, tui/tui-disasm.c, tui/tui-layout.c: Ditto. * tui/tui-regs.c, tui/tui-source.c, tui/tui-stack.c: Ditto. * tui/tui-win.c, tui/tui-windata.c, tui/tui-wingeneral.c: Ditto. * tui/tui-winsource.c, tui/tui.c: Ditto.
2004-02-072004-02-06 Andrew Cagney <cagney@redhat.com>Andrew Cagney1-5/+5
* tui/tui-data.h (struct tui_list): Rename _TuiList. (enum tui_data_type): Rename _TuiDataType. (struct tui_layout_def): Rename _TuiLayoutDef. (struct tui_source_element): Rename _TuiSourceElement. (struct tui_data_element): Rename _TuiDataElement. (struct tui_command_element): Rename _TuiCommandElement. (struct tui_locator_element): Rename _TuiLocatorElement. (union tui_which_element): Define. (struct tui_win_element): Rename _TuiWinElement. (struct tui_data_info): Rename _TuiDataInfo. (struct tui_source_info): Rename _TuiSourceInfo. (struct tui_command_info): Rename _TuiCommandInfo. (tui_initialize_static_data): Rename initializeStaticData. (tui_alloc_generic_win_info): Rename allocGenericWinInfo. (tui_alloc_win_info): Rename allocWinInfo. (tui_init_generic_part): Rename initGenericPart. (tui_init_win_info): Rename initWinInfo. (tui_alloc_content): Rename allocContent. (tui_add_content_elements): Rename addContentElements. (tui_init_content_element): Rename initContentElement. (tui_free_window): Rename freeWindow. (tui_free_win_content): Rename freeWinContent. (tui_free_data_content): Rename freeDataContent. (tui_free_all_source_wins_content): Rename freeAllSourceWinsContent. (tui_del_window): Rename tuiDelWindow. (tui_del_data_windows): Rename tuiDelDataWindows. (tui_partial_win_by_name): Rename partialWinByName. (tui_win_name): Rename winName. (tui_current_layout): Rename currentLayout. (tui_set_current_layout_to): Rename setCurrentLayoutTo. (tui_term_height): Rename termHeight. (tui_set_term_height_to): Rename setTermHeightTo. (tui_term_width): Rename termWidth. (tui_set_term_width_to): Rename setTermWidthTo. (tui_set_gen_win_origin): Rename setGenWinOrigin. (tui_locator_win_info_ptr): Rename locatorWinInfoPtr. (tui_source_exec_info_win_ptr): Rename tui_gen_win_info. (tui_disassem_exec_info_win_ptr): Rename disassemExecInfoWinPtr. (tui_source_windows): Rename sourceWindows. (tui_clear_source_windows): Rename clearSourceWindows. (tui_clear_source_windows_detail): Rename clearSourceWindowsDetail. (tui_clear_win_detail): Rename clearWinDetail. (tui_add_to_source_windows): Rename tuiAddToSourceWindows. (tui_default_tab_len): Rename tuiDefaultTabLen. (tui_set_default_tab_len): Rename tuiSetDefaultTabLen. (tui_win_with_focus): Rename tuiWinWithFocus. (tui_set_win_with_focus): Rename tuiSetWinWithFocus. (tui_layout_def): Rename tuiLayoutDef. (tui_win_resized): Rename tuiWinResized. (tui_set_win_resized_to): Rename tuiSetWinResizedTo. (tui_next_win): Rename tuiNextWin. (tui_prev_win): Rename tuiPrevWin. (tui_add_to_source_windows): Rename addToSourceWindows. * tui/tui-winsource.c, tui/tui-win.c: Update references. * tui/tui-layout.c, tui/tui-source.c: Ditto. * tui/tui-stack.c, tui/tui-io.c: Ditto. * tui/tui.c, tui/tui-data.c: Ditto. * tui/tui-interp.c, tui/tui-data.c: Ditto. * tui/tui-disasm.c, tui/tui-command.c: Ditto.
2004-02-072004-02-06 Andrew Cagney <cagney@redhat.com>Andrew Cagney1-3/+3
* tui/tui-win.h: Update copyright. Include "tui-data.h". (struct tui_win_info): Declare. (tui_scroll_forward): Rename tuiScrollForward. (tui_scroll_backward): Rename tuiScrollBackward. (tui_scroll_left): Rename tuiScrollLeft. (tui_scroll_right): Rename tuiScrollRight. (tui_set_win_focus_to): Rename tuiSetWinFocusTo. (tui_resize_all): Rename tuiResizeAll. (tui_refresh_all_win): Rename tuiRefreshAll. (tui_sigwinch_handler): Rename tuiSigwinchHandler. * tui/tui-layout.c, * tui/tui-io.c: Update references. * tui/tui-wingeneral.h, * tui/tui.c: Update references. * tui/tui-disasm.c, * tui/tui-command.c: Update references.
2004-02-072004-02-06 Andrew Cagney <cagney@redhat.com>Andrew Cagney1-1/+1
* tui/tui-windata.h: Update copyright. Include "tui-data.h". (tui_erase_data_content): Rename tuiEraseDataContent. (tui_display_all_data): Rename tuiDisplayAllData. (tui_check_data_values): Rename tuiCheckDataValues. (tui_display_data_from_line): Rename tuiDisplayDataFromLine. (tui_first_data_item_displayed): Rename tuiFirstDataItemDisplayed. (tui_first_data_element_no_in_line): Rename tuiFirstDataElementNoInLine. (tui_delete_data_content_windows): Rename tuiDeleteDataContentWindows. (tui_refresh_data_win): Rename tuiRefreshDataWin. (tui_display_data_from): Rename tuiDisplayDataFrom. (tui_vertical_data_scroll): Rename tuiVerticalDataScroll. * tui/tui-windata.c, tui/tui-hooks.c: Update references. * tui/tui-win.c, tui/tui-regs.c: Update references. * tui/tui-layout.c, tui/tui.c: Update references.