die:  fprintf_unfiltered (gdb_stderr, "[GDB will not be able to debug user-mode threads: %s]\n", dlerror ());
die: fprintf_unfiltered (gdb_stderr, "\ [GDB will not be able to debug user-mode threads: %s]\n", dlerror ());
_initialize_sol_thread (void){  void *dlhandle;  init_sol_thread_ops ();  init_sol_core_ops ();  dlhandle = dlopen ("libthread_db.so.1", RTLD_NOW);  if (!dlhandle)    goto die;#define resolve(X) \  if (!(p_##X = dlsym (dlhandle, #X))) \    goto die;  resolve (td_log);  resolve (td_ta_new);  resolve (td_ta_delete);  resolve (td_init);  resolve (td_ta_get_ph);  resolve (td_ta_get_nthreads);  resolve (td_ta_tsd_iter);  resolve (td_ta_thr_iter);  resolve (td_thr_validate);  resolve (td_thr_tsd);  resolve (td_thr_get_info);  resolve (td_thr_getfpregs);  resolve (td_thr_getxregsize);  resolve (td_thr_getxregs);  resolve (td_thr_sigsetmask);  resolve (td_thr_setprio);  resolve (td_thr_setsigpending);  resolve (td_thr_setfpregs);  resolve (td_thr_setxregs);  resolve (td_ta_map_id2thr);  resolve (td_ta_map_lwp2thr);  resolve (td_thr_getgregs);  resolve (td_thr_setgregs);  add_target (&sol_thread_ops);  procfs_suppress_run = 1;  add_cmd ("sol-threads", class_maintenance, info_solthreads,	   "Show info on Solaris user threads.\n", &maintenanceinfolist);  memcpy (&orig_core_ops, &core_ops, sizeof (struct target_ops));  memcpy (&core_ops, &sol_core_ops, sizeof (struct target_ops));  add_target (&core_ops);  /* Hook into new_objfile notification. */  target_new_objfile_chain = target_new_objfile_hook;  target_new_objfile_hook  = sol_thread_new_objfile;  return;die:  fprintf_unfiltered (gdb_stderr, "[GDB will not be able to debug user-mode threads: %s]\n", dlerror ());  if (dlhandle)    dlclose (dlhandle);  /* allow the user to debug non-threaded core files */  add_target (&core_ops);  return;}