aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog7
-rw-r--r--gdb/hpux-thread.c1
-rw-r--r--gdb/m3-nat.c1
-rw-r--r--gdb/sol-thread.c220
4 files changed, 91 insertions, 138 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 2fbdea7..855ae13 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,10 @@
+1999-01-18 Fernando Nasser <fnasser@totem.to.cygnus.com>
+
+ * sol-thread.c: delete compile time initialization of target_ops
+ (_initialize_sol_thread): initialize target_ops at run time.
+ * hpux-thread.c: added target_ops entry.
+ * m3-nat.c: ditto.
+
Mon Jan 18 15:19:13 1999 David Taylor <taylor@texas.cygnus.com>
* procfs.c (procfs_ops): delete compile time initialization.
diff --git a/gdb/hpux-thread.c b/gdb/hpux-thread.c
index 15494ec..50d1cd6 100644
--- a/gdb/hpux-thread.c
+++ b/gdb/hpux-thread.c
@@ -639,6 +639,7 @@ struct target_ops hpux_thread_ops = {
hpux_thread_notice_signals, /* to_notice_signals */
hpux_thread_alive, /* to_thread_alive */
hpux_thread_stop, /* to_stop */
+ 0, /* to_query */
NULL, /* to_enable_exception_callback */
NULL, /* to_get_current_exception_event */
NULL, /* to_pid_to_exec_file */
diff --git a/gdb/m3-nat.c b/gdb/m3-nat.c
index e1f2851..43ab3ee 100644
--- a/gdb/m3-nat.c
+++ b/gdb/m3-nat.c
@@ -4586,6 +4586,7 @@ struct target_ops m3_ops = {
0, /* to_notice_signals */
0, /* to_thread_alive */
m3_stop, /* to_stop */
+ 0, /* to_query */
m3_pid_to_exec_file, /* to_pid_to_exec_file */
NULL, /* to_core_file_to_sym_file */
process_stratum, /* to_stratum */
diff --git a/gdb/sol-thread.c b/gdb/sol-thread.c
index 6585d73..e0568c2 100644
--- a/gdb/sol-thread.c
+++ b/gdb/sol-thread.c
@@ -1505,145 +1505,9 @@ ignore (addr, contents)
return 0;
}
-struct target_ops sol_thread_ops = {
- "solaris-threads", /* to_shortname */
- "Solaris threads and pthread.", /* to_longname */
- "Solaris threads and pthread support.", /* to_doc */
- sol_thread_open, /* to_open */
- 0, /* to_close */
- sol_thread_attach, /* to_attach */
- NULL, /* to_post_attach */
- NULL, /* to_require_attach */
- sol_thread_detach, /* to_detach */
- NULL, /* to_require_detach */
- sol_thread_resume, /* to_resume */
- sol_thread_wait, /* to_wait */
- NULL, /* to_post_wait */
- sol_thread_fetch_registers, /* to_fetch_registers */
- sol_thread_store_registers, /* to_store_registers */
- sol_thread_prepare_to_store, /* to_prepare_to_store */
- sol_thread_xfer_memory, /* to_xfer_memory */
- sol_thread_files_info, /* to_files_info */
- memory_insert_breakpoint, /* to_insert_breakpoint */
- memory_remove_breakpoint, /* to_remove_breakpoint */
- terminal_init_inferior, /* to_terminal_init */
- terminal_inferior, /* to_terminal_inferior */
- terminal_ours_for_output, /* to_terminal_ours_for_output */
- terminal_ours, /* to_terminal_ours */
- child_terminal_info, /* to_terminal_info */
- sol_thread_kill_inferior, /* to_kill */
- 0, /* to_load */
- 0, /* to_lookup_symbol */
- sol_thread_create_inferior, /* to_create_inferior */
- NULL, /* to_post_startup_inferior */
- NULL, /* to_acknowledge_created_inferior */
- NULL, /* to_clone_and_follow_inferior */
- NULL, /* to_post_follow_inferior_by_clone */
- NULL, /* to_insert_fork_catchpoint */
- NULL, /* to_remove_fork_catchpoint */
- NULL, /* to_insert_vfork_catchpoint */
- NULL, /* to_remove_vfork_catchpoint */
- NULL, /* to_has_forked */
- NULL, /* to_has_vforked */
- NULL, /* to_can_follow_vfork_prior_to_exec */
- NULL, /* to_post_follow_vfork */
- NULL, /* to_insert_exec_catchpoint */
- NULL, /* to_remove_exec_catchpoint */
- NULL, /* to_has_execd */
- NULL, /* to_reported_exec_events_per_exec_call */
- NULL, /* to_has_syscall_event */
- NULL, /* to_has_exited */
- sol_thread_mourn_inferior, /* to_mourn_inferior */
- sol_thread_can_run, /* to_can_run */
- sol_thread_notice_signals, /* to_notice_signals */
- sol_thread_alive, /* to_thread_alive */
- sol_thread_stop, /* to_stop */
- NULL, /* to_enable_exception_callback */
- NULL, /* to_get_current_exception_event */
- NULL, /* to_pid_to_exec_file */
- NULL, /* to_core_file_to_sym_file */
- process_stratum, /* to_stratum */
- 0, /* to_next */
- 1, /* to_has_all_memory */
- 1, /* to_has_memory */
- 1, /* to_has_stack */
- 1, /* to_has_registers */
- 1, /* to_has_execution */
- tc_none, /* to_has_thread_control */
- 0, /* sections */
- 0, /* sections_end */
- OPS_MAGIC /* to_magic */
-};
-struct target_ops sol_core_ops = {
- "solaris-core", /* to_shortname */
- "Solaris core threads and pthread.", /* to_longname */
- "Solaris threads and pthread support for core files.", /* to_doc */
- sol_core_open, /* to_open */
- sol_core_close, /* to_close */
- sol_thread_attach, /* XXX to_attach */
- NULL, /* to_post_attach */
- NULL, /* to_require_attach */
- sol_core_detach, /* to_detach */
- NULL, /* to_require_detach */
- 0, /* to_resume */
- 0, /* to_wait */
- NULL, /* to_post_wait */
- sol_thread_fetch_registers, /* to_fetch_registers */
- 0, /* to_store_registers */
- 0, /* to_prepare_to_store */
- sol_thread_xfer_memory, /* XXX to_xfer_memory */
- sol_core_files_info, /* to_files_info */
- ignore, /* to_insert_breakpoint */
- ignore, /* to_remove_breakpoint */
- 0, /* to_terminal_init */
- 0, /* to_terminal_inferior */
- 0, /* to_terminal_ours_for_output */
- 0, /* to_terminal_ours */
- 0, /* to_terminal_info */
- 0, /* to_kill */
- 0, /* to_load */
- 0, /* to_lookup_symbol */
- sol_thread_create_inferior, /* XXX to_create_inferior */
- NULL, /* to_post_startup_inferior */
- NULL, /* to_acknowledge_created_inferior */
- NULL, /* to_clone_and_follow_inferior */
- NULL, /* to_post_follow_inferior_by_clone */
- NULL, /* to_insert_fork_catchpoint */
- NULL, /* to_remove_fork_catchpoint */
- NULL, /* to_insert_vfork_catchpoint */
- NULL, /* to_remove_vfork_catchpoint */
- NULL, /* to_has_forked */
- NULL, /* to_has_vforked */
- NULL, /* to_can_follow_vfork_prior_to_exec */
- NULL, /* to_post_follow_vfork */
- NULL, /* to_insert_exec_catchpoint */
- NULL, /* to_remove_exec_catchpoint */
- NULL, /* to_has_execd */
- NULL, /* to_reported_exec_events_per_exec_call */
- NULL, /* to_has_syscall_event */
- NULL, /* to_has_exited */
- 0, /* to_mourn_inferior */
- 0, /* to_can_run */
- 0, /* to_notice_signals */
- 0, /* to_thread_alive */
- 0, /* to_stop */
- NULL, /* to_enable_exception_callback */
- NULL, /* to_get_current_exception_event */
- NULL, /* to_pid_to_exec_file */
- NULL, /* to_core_file_to_sym_file */
- core_stratum, /* to_stratum */
- 0, /* to_next */
- 0, /* to_has_all_memory */
- 1, /* to_has_memory */
- 1, /* to_has_stack */
- 1, /* to_has_registers */
- 0, /* to_has_execution */
- tc_none, /* to_has_thread_control */
- 0, /* sections */
- 0, /* sections_end */
- OPS_MAGIC /* to_magic */
-};
+struct target_ops sol_thread_ops;
+struct target_ops sol_core_ops;
/* we suppress the call to add_target of core_ops in corelow because
if there are two targets in the stratum core_stratum, find_core_target
@@ -1656,6 +1520,86 @@ _initialize_sol_thread ()
{
void *dlhandle;
+ /* Initialize sol_thread_ops */
+ sol_thread_ops.to_shortname = "solaris-threads";
+ sol_thread_ops.to_longname = "Solaris threads and pthread.";
+ sol_thread_ops.to_doc = "Solaris threads and pthread support.";
+ sol_thread_ops.to_open = sol_thread_open;
+ sol_thread_ops.to_close = 0;
+ sol_thread_ops.to_attach = sol_thread_attach;
+ sol_thread_ops.to_detach = sol_thread_detach;
+ sol_thread_ops.to_resume = sol_thread_resume;
+ sol_thread_ops.to_wait = sol_thread_wait;
+ sol_thread_ops.to_fetch_registers = sol_thread_fetch_registers;
+ sol_thread_ops.to_store_registers = sol_thread_store_registers;
+ sol_thread_ops.to_prepare_to_store = sol_thread_prepare_to_store;
+ sol_thread_ops.to_xfer_memory = sol_thread_xfer_memory;
+ sol_thread_ops.to_files_info = sol_thread_files_info;
+ sol_thread_ops.to_insert_breakpoint = memory_insert_breakpoint;
+ sol_thread_ops.to_remove_breakpoint = memory_remove_breakpoint;
+ sol_thread_ops.to_terminal_init = terminal_init_inferior;
+ sol_thread_ops.to_terminal_inferior = terminal_inferior;
+ sol_thread_ops.to_terminal_ours_for_output = terminal_ours_for_output;
+ sol_thread_ops.to_terminal_ours = terminal_ours;
+ sol_thread_ops.to_terminal_info = child_terminal_info;
+ sol_thread_ops.to_kill = sol_thread_kill_inferior;
+ sol_thread_ops.to_load = 0;
+ sol_thread_ops.to_lookup_symbol = 0;
+ sol_thread_ops.to_create_inferior = sol_thread_create_inferior;
+ sol_thread_ops.to_mourn_inferior = sol_thread_mourn_inferior;
+ sol_thread_ops.to_can_run = sol_thread_can_run;
+ sol_thread_ops.to_notice_signals = sol_thread_notice_signals;
+ sol_thread_ops.to_thread_alive = sol_thread_alive;
+ sol_thread_ops.to_stop = sol_thread_stop;
+ sol_thread_ops.to_stratum = process_stratum;
+ sol_thread_ops.to_has_all_memory = 1;
+ sol_thread_ops.to_has_memory = 1;
+ sol_thread_ops.to_has_stack = 1;
+ sol_thread_ops.to_has_registers = 1;
+ sol_thread_ops.to_has_execution = 1;
+ sol_thread_ops.to_has_thread_control = tc_none;
+ sol_thread_ops.to_sections = 0;
+ sol_thread_ops.to_sections_end = 0;
+ sol_thread_ops.to_magic = OPS_MAGIC;
+
+ /* Initialize sol_core_ops */
+ sol_core_ops.to_shortname = "solaris-core";
+ sol_core_ops.to_longname = "Solaris core threads and pthread.";
+ sol_core_ops.to_doc = "Solaris threads and pthread support for core files.";
+ sol_core_ops.to_open = sol_core_open;
+ sol_core_ops.to_close = sol_core_close;
+ sol_core_ops.to_attach = sol_thread_attach;
+ sol_core_ops.to_detach = sol_core_detach;
+ /* sol_core_ops.to_resume = 0; */
+ /* sol_core_ops.to_wait = 0; */
+ sol_core_ops.to_fetch_registers = sol_thread_fetch_registers;
+ /* sol_core_ops.to_store_registers = 0; */
+ /* sol_core_ops.to_prepare_to_store = 0; */
+ sol_core_ops.to_xfer_memory = sol_thread_xfer_memory;
+ sol_core_ops.to_files_info = sol_core_files_info;
+ sol_core_ops.to_insert_breakpoint = ignore;
+ sol_core_ops.to_remove_breakpoint = ignore;
+ /* sol_core_ops.to_terminal_init = 0; */
+ /* sol_core_ops.to_terminal_inferior = 0; */
+ /* sol_core_ops.to_terminal_ours_for_output = 0; */
+ /* sol_core_ops.to_terminal_ours = 0; */
+ /* sol_core_ops.to_terminal_info = 0; */
+ /* sol_core_ops.to_kill = 0; */
+ /* sol_core_ops.to_load = 0; */
+ /* sol_core_ops.to_lookup_symbol = 0; */
+ sol_core_ops.to_create_inferior = sol_thread_create_inferior;
+ sol_core_ops.to_stratum = core_stratum;
+ sol_core_ops.to_has_all_memory = 0;
+ sol_core_ops.to_has_memory = 1;
+ sol_core_ops.to_has_stack = 1;
+ sol_core_ops.to_has_registers = 1;
+ sol_core_ops.to_has_execution = 0;
+ sol_core_ops.to_has_thread_control = tc_none;
+ sol_core_ops.to_sections = 0;
+ sol_core_ops.to_sections_end = 0;
+ sol_core_ops.to_magic = OPS_MAGIC;
+
+
dlhandle = dlopen ("libthread_db.so.1", RTLD_NOW);
if (!dlhandle)
goto die;