* win32-nat.c (display_selector): New function. Displays information
about the information returned by GetThreadSelectorEntry API function.
(display_selectors): New function. Displays the infomation of
the selector given as argument, or of CS, DS ans FS selectors
if no argument is given.
( _initialize_inftarg): Add "w32" as info prefix command.
Add "info w32 selector" as command calling display_selectors.
(handle_load_dll): Use get_image_name function.
(get_child_debug_event): Avoid registering debug events until possibly execed
process is started.
(child_create_inferior): Allow invocation via shell so that command line
redirection, etc. works ok.
(_initialize_inftarg): Add new command: "set shell" to control whether a shell
is used to start a process.
win32-nat.c (last_sig): Changed type of variable to target_signal,
to allow easier handling of pass state.
(DEBUG_EXCEPTION_SIMPLE): New macro, used in handle_exception,
that gives exception name and address.
(handle_exception): Use DEBUG_EXCEPTION_SIMPLE macro
and set last_sig value to ourstatus->value.sig. Some missing
exceptions added.
(child_continue): Correctly report continue_status.
(get_child_debug_event,do_initial_child_stuff): Set last_sig to
TARGET_SIGNAL_0 (new default value).
(child_resume): consider sig argument passed to decide if
the exception should be passed to debuggee or not.
Add support for hardware watchpoints on win32 native.
* win32-nat.c (CONTEXT_DEBUG_DR macro): Add use of
CONTEXT_DEBUG_REGISTERS.
(dr variable): New variable. Static array containing a local copy
of debug registers.
(debug_registers_changed): New variable. Reflects when debug registers
are changed and need to be written to inferior.
(debug_registers_used): New variable. Reflects when any debug register
was set, used when new threads are created.
(cygwin_set_dr, cygwin_set_dr7, cygwin_get_dr6): New functions used by
i386-nat code.
(thread_rec): Set dr array if id is the thread of current_event .
(child_continue, child_resume): Change the debug registers for all
threads if debug_registers_changed.
(child_add_thread): Change the debug registers if debug_registers_used.
* config/i386/cygwin.mh: Add use of i386-nat.o file.
Link nm.h to new nm-cygwin.h file.
+ config/i386/nm-cygwin.h: New file. Contains the macros used for use
of hardware registers.
HAVE_CONTEXT_EXTENDED_REGISTERS is defined.
* win32-nat.c: Define CONTEXT_DEBUGGER_DR that will also include extended
registers if HAVE_SSE_REGS is defined.
(mappings array): Add offset of extended registers.
(thread_rec): Use new CONTEXT_DEBUGGER_DR macro.
to remove the DLL when unloaded. Remove unused last field.
(handle_unload_dll): New function to handle unloading of DLL.
(solib_symbols_add): Change return type to struct objfile *.
(get_child_debug_event): Call handle_unload_dll function.
loaded DLL matches the on-disk case since the debugging API does not seem to
ensure this. Calculate max name length here.
(handle_load_dll): Move max name length calculation to register_loaded_dll.
* somsolib.c (som_solib_add): A megabyte is 1024*1024 bytes.
* pa64solib.c (add_to_solist): Ditto.
* win32-nat.c (_initialize_inftarg): Remove unnecessary
initialization of auto_solib_add, it defaults to 1.
pointer to Windows' DebugSetProcessKillOnExit() function.
(DebugActiveProcessStop): Ditto for DebugActiveProcessStop().
(has_detach_ability): New function.
(child_attach): If system has detach ability, enable it.
(child_detach): If system has detach ability, actually
detach from process.
Change tty output to Linux format.
already loaded DLL.
(register_loaded_dll): Convert loaded DLL name to "posix" format or it will
confuse subsequent opening of the filename due to dos paths.
(dll_symbol_command): Pass from_tty parameter to safe_symbol_file_add.
errors in "long long" handling for 'finish' and 'return' commands.
* win32-nat.c (safe_symbol_file_add_stub): Avoid adding a shared library if it
has already been loaded.
(safe_symbol_file_add_cleanup): Don't mess with stderr or we won't see any
error messages.
(safe_symbol_file_add): Ditto.
(solib_symbols_add): Make static. Accept 'from_tty' parameter. Pass it to
safe_symbol_file_add.
(core_dll_symbols_add): Accomodate extra solib_symbols_add parameter.
(child_solib_add): Ditto.
* win32-nat.c (handle_exception): Don't print "first chance" exceptions.
(get_child_debug_event): Continue from exceptions if !handle_exception.
(_initialize_demangler): Fill demangling_style_names with the
names of known demangling styles from libiberty_demanglers[]. Use
add_set_enum_cmd instead of add_set_cmd, to get completion on
demangling style names.
* proc-api.c (_initialize_proc_api): Make `procfs-file' use
file-name completion.
* remote-rdi.c (_initialize_remote_rdi): Ditto for `rdilogfile'.
* solib.c (_initialize_solib): Ditto for `solib-search-path' and
`solib-absolute-prefix'.
* tracepoint.c (_initialize_tracepoint): Ditto for
`save-tracepoints'.
* win32-nat.c (_initialize_inftarg): Ditto for `dll-symbols'.
* cli/cli-cmds.c (init_cli_cmds): Make `shell' and `make' use
file-name completion.
* infcmd.c (_initialize_infcmd): Make the following commands use
the file-name completer: `tty', `args', `path', `paths', and
`run'.
argument if it is missing an extension.
* corelow.c: Define O_BINARY if it isn't defined.
(core_open): Open core file in binary mode.
* config/i386/tm-cygwin.h (child_clear_solibs): Rename from child_clear_solib.
* config/i386/cygwin.mh: Add dependency from corelow.o.
* win32-nat.c (register_loaded_dll): New function. Add dll to the list of
currently loaded dlls.
(handle_load_dll): Use register_loaded_dll.
(child_solib_add): Distinguish between active process and core targets.
(solib_symbols_add): Load symbols from loaded dll.
(core_dll_symbols_add): New function. Load symbols from dll referenced in
core.
(core_section_load_dll_symbols): New function.
(dll_code_sections_add): New function.
(map_single_dll_code_section): New function.
(fetch_elf_core_registers): New function.
(_initialize_core_win32): New function.
(safe_symbol_file_add_cleanup): Reset stdout to saved stdout, not stderr.
(dll_symbol_command): Pass OBJF_USERLOADED to safe_symbol_file_add.
(get_child_debug_event): Always reset last_sig. Always reset inferior pid
appropriately.
(do_initial_child_stuff): New function. Called when attaching or starting a
new inferior process.
(child_attach): Use do_initial_child_stuff.
(child_create_inferior): Ditto.
* config/i386/cygwin.mh (NAT_FILE): Set to modern location.
* config/i386/tm-cygwin.h: Define ATTACH_NO_WAIT.
here.
(safe_symbol_file_add_stub): Redirect gdb_stdout as well as stderr.
(safe_symbol_file_add_cleanup): Restore gdb_stdout.
(info_dll_command): Use the pager for displaying DLLs since there are often
quite a few.
before deleting and restoring it.
(safe_symbol_file_add): Ensure that gdb_stderr is flushed before reassigning
it.
(handle_load_dll): Split into two functions so that WFI can handle shared
library events.
(child_solib_loaded_library_pathname): New function.
(child_clear_solibs): New function. Clears shared library list.
(child_solib_add): New function. Adds shared library symbols.
(dll_symbol_command): New function. Handles "dll-symbol" command.
(info_dll_command): New function. Handles info "sharedlibrary" command.
(handle_exceptions): Eliminate 'ignore_trap' argument.
(get_child_debug_event): Eliminate two arguments. Return "pid" when
appropriate. Break out on most events to allow WFI to handle stuff.
(child_wait): Accomodate get_child_debug_event changes.
(child_attach): Clear thread list and list of loaded dlls.
(child_create_inferior): Clear list of loaded dlls. Use wait_for_inferior in a
loop to look for first "trap".
(child_resume): Avoid accessing a possibly-freed thread pointer.
(_initialize_inftarg): Add "dll-symbols", "sharedlibrary", and "info
dll", and "info sharedlibrary" commands.
* config/i386/tm-cygwin.h: Add some shared library (aka DLL) hooks.
(handle_load_dll): Change DLL name to lower case.
(handle_exception): Add a second argument indicating whether a breakpoint
should be ignored. Return a 0 if the breakpoint was ignored.
(get_child_debug_event): Pass argument to handle_exception to control whether a
breakpoint should be ignored.
(child_create_inferior): Use modern cygwin API. Explicitly clear last_sig.
Pass FIRST_EXCEPTION to get_child_debug_event for detection of first
breakpoint.
* configure.in: Eliminate unneeded WINDRES/DLLTOOL tests left over after last change.
* configure: Regenerate.