Suggested by Simon Marshall <simon.marshall@misys.com>.
(gdb-stack-position): New variable.
(gdb-starting, gdb-exited): Reset gdb-stack-position to nil.
(gdb-frames-mode): Set gdb-stack-position to nil. Add to
overlay-arrow-variable-list
(gdb-reset): Delete gdb-stack-position from above list.
(gdb-use-separate-io-buffer, menu): Avoid using `inferior' in text.
(gdb-memory-mode, gdb-locals-watch-map): Don't quote lambda
expressions.
(gdb-info-breakpoints-custom): Use gdb-breakpoint-regexp.
Only search till end of line.
Add face to function names in case of no filename.
Add face to variable names of watchpoints.
(gdb-display-separate-io-buffer, gdb-append-to-inferior-io)
(gdb-display-breakpoints-buffer, gdb-display-stack-buffer)
(gdb-display-threads-buffer, gdb-display-memory-buffer)
(gdb-display-locals-buffer): Use it.
(gud-old-arrow, gdb-frame-begin, gdb-printing): New variables.
(gdb-init-1): Initialise them.
(gdb-starting): Reset gdb-printing
(gdb-starting): Save value of gud-overlay-arrow-position.
(gdb-frame-begin): Set gdb-frame-begin, gdb-printing.
(gdb-stopped): Don't look for source if calling procedure e.g "p a ()".
Use gdb-*-gdb-buffer conditionally on gdb-same-frame.
(gdb-frame-gdb-buffer): Keep menu bar, tool bar for GUD buffer.
(gdb-stopped, gdb-info-stack-custom): If there is no source info
look up the stack and pop up GUD buffer if necessary.
(gdb-frames-select): Remove redundant call to gud-display-frame.
(gdb-info-threads-custom): Keep point at start of buffer.
(gdb-find-file-hook): Make it work for pre-GDB 6.4.
(gdb-var-evaluate-expression-handler, gdb-var-update-handler):
Use a token for pending-triggers to ensure gdb-var-update
gets called once per user input again for pre-GDB 6.4.
(gdb-var-delete): Match on more complex expressions.
(gdb-var-list-children-handler, gdb-var-create-handler):
Use a token for consistency.
call to...
(gud-watch): ...here so speedbar is raised for already watched
expressions.
(gdb-speedbar-refresh): Delete function.
(gdb-speedbar-update, gdb-speedbar-timer-fn): New functions.
Use speedbar-timer-fn instead of speedbar-refresh (reverting
earlier change).
(gdb-var-evaluate-expression-handler)
(gdb-var-list-children-handler-1, gdb-var-update-handler-1):
Use it.
(gdb-get-version): Make it work for pre "interpreter mi" (GDB 5.3?).
(gdb-setup-windows): Put something in source window if we can't find
the source file.
(gdb-frame-handler): Make it work again with just assembly.
(gdb-data-list-register-values-handler): Make it work when there is
no stack.
(gdb-var-list-children-regexp, gdb-var-update-regexp)
(gdb-var-list-children-regexp-1, gdb-var-update-regexp-1)
(gdb-data-list-register-values-regexp)
(gdb-stack-list-locals-regexp, gdb-stack-list-locals-handler):
Future proof against new fields being added to MI output.
(gdb-send): Don't treat backslashes for program input as
continuations.
(gdb-assembler-handler): Don't use window-start for this handler.
(gdb-frame-handler): Don't change to hollow arrow if overlay
arrow doesn't move to new frame.
(gdb-stopped): Check for gud-last-last-frame (case: signal).
(breakpoint-disabled): Make lighter for contrast with overlay
arrow.
(gdb-assembler-custom): Use hollow-right-triangle for assembler
buffer too.
(gdb-info-stack-custom): Rename from gdb-info-frames-custom and
change names in macro above for consistency.
(gdb-frame-handler): Use hollow-right-triangle for all selected
frames which except the innermost (where execution has stopped).
(gdb-reset): Reset buffer-local values of overlay-arrow.
(gdb-force-mode-line-update): New function.
(gdb-resync, gdb-starting, gdb-signal, gdb-exited, gdb-stopped)
(gdb-exited): Use them.
(gdb-signal): New fuction.
(gdb-annotation-rules): Provide a rule for it.
(gdb-find-watch-expression): Make it work for arrays too. Follow
change to gdb-var-list.
(gud-watch): Allow the user to enter variable name with a prexix
arg. Create keybindings.
(gdb-var-create-handler, gdb-var-evaluate-expression-handler)
(gdb-var-list-children-handler, gdb-var-update-handler)
(gdb-var-delete, gdb-edit-value, gdb-speedbar-expand-node)
(gdb-var-list-children-handler-1, gdb-var-update-handler-1):
Follow change to gdb-var-list.
(gdb-starting): Don't show the overlay arrows when program is
running.
map if value is hexadecimal (an address).
(gud-watch): Only search roots for existing watch expressions.
(gdb-speedbar-refresh): Bind speedbar-shown-directories to nil to
prevent caching problems with speedbar-update-directory-contents.
it gets called in gdb-prompt anyway.
(gdb-use-separate-io-buffer): Only restore window arrangement for
gdb-many-windows.
(gdb-enqueue-input): Make it harder to send GDB input when program
is running.
(gdb-buffer-list): New variable.
(gdb-remove-mouse-face): New function.
(gdb-starting): Use it when GDB input won't get sent.
gdb-speedbar-timer-fn. Use speedbar-refresh instead of
speedbar-timer-fn
(gdb-var-update-handler, gdb-var-update-handler-1): Use it.
(gdb-speedbar-expand-node): Use speedbar-delete-subblock
instead of gdb-speedbar-timer-fn.
(gdb-edit-value):