diff options
Diffstat (limited to 'gdb/convex-xdep.c')
-rw-r--r-- | gdb/convex-xdep.c | 446 |
1 files changed, 223 insertions, 223 deletions
diff --git a/gdb/convex-xdep.c b/gdb/convex-xdep.c index 60117ce7ceb..857701dfc42 100644 --- a/gdb/convex-xdep.c +++ b/gdb/convex-xdep.c @@ -55,7 +55,7 @@ /* OBSOLETE static int n_threads; */ /* OBSOLETE */ /* OBSOLETE #define MAXTHREADS 8 */ -/* OBSOLETE */ +/* OBSOLETE */ /* OBSOLETE /* Thread state. The remaining data is valid only if this is PI_TALIVE. *x/ */ /* OBSOLETE */ /* OBSOLETE static int thread_state[MAXTHREADS]; */ @@ -64,7 +64,7 @@ /* OBSOLETE */ /* OBSOLETE static int thread_pc[MAXTHREADS]; */ /* OBSOLETE static int thread_signal[MAXTHREADS]; */ -/* OBSOLETE static int thread_sigcode[MAXTHREADS]; */ +/* OBSOLETE static int thread_sigcode[MAXTHREADS]; */ /* OBSOLETE */ /* OBSOLETE /* Thread registers. */ /* OBSOLETE If thread is selected, the regs are in registers[] instead. *x/ */ @@ -98,12 +98,12 @@ /* OBSOLETE */ /* OBSOLETE struct pmap */ /* OBSOLETE { */ -/* OBSOLETE long mem_addr; /* process start address *x/ */ -/* OBSOLETE long mem_end; /* process end+1 address *x/ */ -/* OBSOLETE long file_addr; /* file start address *x/ */ -/* OBSOLETE long thread; /* -1 shared; 0,1,... thread-local *x/ */ -/* OBSOLETE long type; /* S_TEXT S_DATA S_BSS S_TBSS etc *x/ */ -/* OBSOLETE long which; /* used to sort map for info files *x/ */ +/* OBSOLETE long mem_addr; /* process start address *x/ */ +/* OBSOLETE long mem_end; /* process end+1 address *x/ */ +/* OBSOLETE long file_addr; /* file start address *x/ */ +/* OBSOLETE long thread; /* -1 shared; 0,1,... thread-local *x/ */ +/* OBSOLETE long type; /* S_TEXT S_DATA S_BSS S_TBSS etc *x/ */ +/* OBSOLETE long which; /* used to sort map for info files *x/ */ /* OBSOLETE }; */ /* OBSOLETE */ /* OBSOLETE static int n_exec, n_core; */ @@ -391,19 +391,19 @@ /* OBSOLETE ps.pi_thread = inferior_thread; */ /* OBSOLETE ioctl (inferior_fd, PIXRDVREGS, &ps); */ /* OBSOLETE if (errno) */ -/* OBSOLETE memset (&vector_registers, '\0', sizeof vector_registers); */ +/* OBSOLETE memset (&vector_registers, '\0', sizeof vector_registers); */ /* OBSOLETE } */ /* OBSOLETE else if (corechan >= 0) */ /* OBSOLETE { */ /* OBSOLETE lseek (corechan, tcontext_offset[inferior_thread], 0); */ /* OBSOLETE if (myread (corechan, &tc, sizeof tc) < 0) */ -/* OBSOLETE perror_with_name (corefile); */ +/* OBSOLETE perror_with_name (corefile); */ /* OBSOLETE lseek (corechan, tc.core_thread_p, 0); */ /* OBSOLETE if (myread (corechan, &th, sizeof th) < 0) */ -/* OBSOLETE perror_with_name (corefile); */ +/* OBSOLETE perror_with_name (corefile); */ /* OBSOLETE lseek (corechan, tc.core_vregs_p, 0); */ /* OBSOLETE if (myread (corechan, &vector_registers, 16*128) < 0) */ -/* OBSOLETE perror_with_name (corefile); */ +/* OBSOLETE perror_with_name (corefile); */ /* OBSOLETE vector_registers.vm[0] = th.t_vect_ctx.vc_vm[0]; */ /* OBSOLETE vector_registers.vm[1] = th.t_vect_ctx.vc_vm[1]; */ /* OBSOLETE vector_registers.vls = th.t_vect_ctx.vc_vls; */ @@ -452,27 +452,27 @@ /* OBSOLETE ioctl (inferior_fd, PIXRDVREGS, &ps); */ /* OBSOLETE */ /* OBSOLETE switch (reg) */ -/* OBSOLETE { */ -/* OBSOLETE case VL_REGNUM: */ -/* OBSOLETE vector_registers.vls = */ -/* OBSOLETE (vector_registers.vls & 0xffffffff00000000LL) */ -/* OBSOLETE + (unsigned long) val; */ -/* OBSOLETE break; */ -/* OBSOLETE */ -/* OBSOLETE case VS_REGNUM: */ -/* OBSOLETE vector_registers.vls = */ -/* OBSOLETE (val << 32) + (unsigned long) vector_registers.vls; */ -/* OBSOLETE break; */ -/* OBSOLETE */ -/* OBSOLETE default: */ -/* OBSOLETE vector_registers.vr[reg].el[element] = val; */ -/* OBSOLETE break; */ -/* OBSOLETE } */ +/* OBSOLETE { */ +/* OBSOLETE case VL_REGNUM: */ +/* OBSOLETE vector_registers.vls = */ +/* OBSOLETE (vector_registers.vls & 0xffffffff00000000LL) */ +/* OBSOLETE + (unsigned long) val; */ +/* OBSOLETE break; */ +/* OBSOLETE */ +/* OBSOLETE case VS_REGNUM: */ +/* OBSOLETE vector_registers.vls = */ +/* OBSOLETE (val << 32) + (unsigned long) vector_registers.vls; */ +/* OBSOLETE break; */ +/* OBSOLETE */ +/* OBSOLETE default: */ +/* OBSOLETE vector_registers.vr[reg].el[element] = val; */ +/* OBSOLETE break; */ +/* OBSOLETE } */ /* OBSOLETE */ /* OBSOLETE ioctl (inferior_fd, PIXWRVREGS, &ps); */ /* OBSOLETE */ /* OBSOLETE if (errno) */ -/* OBSOLETE perror_with_name ("writing vector register"); */ +/* OBSOLETE perror_with_name ("writing vector register"); */ /* OBSOLETE } */ /* OBSOLETE } */ /* OBSOLETE */ @@ -574,36 +574,36 @@ /* OBSOLETE for (n = 0; n < n_threads; n++) */ /* OBSOLETE if (thread_state[n] == PI_TALIVE) */ /* OBSOLETE { */ -/* OBSOLETE select_thread (n); */ -/* OBSOLETE */ -/* OBSOLETE if ((thread < 0 || n == thread) && ! thread_is_in_kernel[n]) */ -/* OBSOLETE { */ -/* OBSOLETE /* Blam the trace bits in the stack's saved psws to match */ -/* OBSOLETE the desired step mode. This is required so that */ -/* OBSOLETE single-stepping a return doesn't restore a psw with a */ -/* OBSOLETE clear trace bit and fly away, and conversely, */ -/* OBSOLETE proceeding through a return in a routine that was */ -/* OBSOLETE stepped into doesn't cause a phantom break by restoring */ -/* OBSOLETE a psw with the trace bit set. *x/ */ -/* OBSOLETE scan_stack (PSW_T_BIT, step); */ -/* OBSOLETE scan_stack (PSW_S_BIT, sequential); */ -/* OBSOLETE } */ -/* OBSOLETE */ -/* OBSOLETE ps.pi_buffer = registers; */ -/* OBSOLETE ps.pi_nbytes = REGISTER_BYTES; */ -/* OBSOLETE ps.pi_offset = 0; */ -/* OBSOLETE ps.pi_thread = n; */ -/* OBSOLETE if (! thread_is_in_kernel[n]) */ -/* OBSOLETE if (ioctl (inferior_fd, PIXWRREGS, &ps)) */ -/* OBSOLETE perror_with_name ("PIXWRREGS"); */ -/* OBSOLETE */ -/* OBSOLETE if (thread < 0 || n == thread) */ -/* OBSOLETE { */ -/* OBSOLETE ps.pi_pc = 1; */ -/* OBSOLETE ps.pi_signo = signal; */ -/* OBSOLETE if (ioctl (inferior_fd, step ? PIXSTEP : PIXCONTINUE, &ps) < 0) */ -/* OBSOLETE perror_with_name ("PIXCONTINUE"); */ -/* OBSOLETE } */ +/* OBSOLETE select_thread (n); */ +/* OBSOLETE */ +/* OBSOLETE if ((thread < 0 || n == thread) && ! thread_is_in_kernel[n]) */ +/* OBSOLETE { */ +/* OBSOLETE /* Blam the trace bits in the stack's saved psws to match */ +/* OBSOLETE the desired step mode. This is required so that */ +/* OBSOLETE single-stepping a return doesn't restore a psw with a */ +/* OBSOLETE clear trace bit and fly away, and conversely, */ +/* OBSOLETE proceeding through a return in a routine that was */ +/* OBSOLETE stepped into doesn't cause a phantom break by restoring */ +/* OBSOLETE a psw with the trace bit set. *x/ */ +/* OBSOLETE scan_stack (PSW_T_BIT, step); */ +/* OBSOLETE scan_stack (PSW_S_BIT, sequential); */ +/* OBSOLETE } */ +/* OBSOLETE */ +/* OBSOLETE ps.pi_buffer = registers; */ +/* OBSOLETE ps.pi_nbytes = REGISTER_BYTES; */ +/* OBSOLETE ps.pi_offset = 0; */ +/* OBSOLETE ps.pi_thread = n; */ +/* OBSOLETE if (! thread_is_in_kernel[n]) */ +/* OBSOLETE if (ioctl (inferior_fd, PIXWRREGS, &ps)) */ +/* OBSOLETE perror_with_name ("PIXWRREGS"); */ +/* OBSOLETE */ +/* OBSOLETE if (thread < 0 || n == thread) */ +/* OBSOLETE { */ +/* OBSOLETE ps.pi_pc = 1; */ +/* OBSOLETE ps.pi_signo = signal; */ +/* OBSOLETE if (ioctl (inferior_fd, step ? PIXSTEP : PIXCONTINUE, &ps) < 0) */ +/* OBSOLETE perror_with_name ("PIXCONTINUE"); */ +/* OBSOLETE } */ /* OBSOLETE } */ /* OBSOLETE */ /* OBSOLETE if (ioctl (inferior_fd, PIXRUN, &ps) < 0) */ @@ -639,89 +639,89 @@ /* OBSOLETE pid = wait3 (w, 0, 0); */ /* OBSOLETE */ /* OBSOLETE if (!WIFSTOPPED (*w) || pid != inferior_pid) */ -/* OBSOLETE return pid; */ +/* OBSOLETE return pid; */ /* OBSOLETE */ /* OBSOLETE /* The inferior has done something and stopped. Read in all the */ -/* OBSOLETE threads' registers, and queue up any signals that happened. *x/ */ +/* OBSOLETE threads' registers, and queue up any signals that happened. *x/ */ /* OBSOLETE */ /* OBSOLETE if (ioctl (inferior_fd, PIXGETTHCOUNT, &ps) < 0) */ -/* OBSOLETE perror_with_name ("PIXGETTHCOUNT"); */ +/* OBSOLETE perror_with_name ("PIXGETTHCOUNT"); */ /* OBSOLETE */ /* OBSOLETE n_threads = ps.pi_othdcnt; */ /* OBSOLETE for (thread = 0; thread < n_threads; thread++) */ -/* OBSOLETE { */ -/* OBSOLETE ps.pi_thread = thread; */ -/* OBSOLETE if (ioctl (inferior_fd, PIXGETSUBCODE, &ps) < 0) */ -/* OBSOLETE perror_with_name ("PIXGETSUBCODE"); */ -/* OBSOLETE thread_state[thread] = ps.pi_otstate; */ -/* OBSOLETE */ -/* OBSOLETE if (ps.pi_otstate == PI_TALIVE) */ -/* OBSOLETE { */ -/* OBSOLETE select_thread (thread); */ -/* OBSOLETE ps.pi_buffer = registers; */ -/* OBSOLETE ps.pi_nbytes = REGISTER_BYTES; */ -/* OBSOLETE ps.pi_offset = 0; */ -/* OBSOLETE ps.pi_thread = thread; */ -/* OBSOLETE if (ioctl (inferior_fd, PIXRDREGS, &ps) < 0) */ -/* OBSOLETE perror_with_name ("PIXRDREGS"); */ -/* OBSOLETE */ -/* OBSOLETE registers_fetched (); */ -/* OBSOLETE */ -/* OBSOLETE thread_pc[thread] = read_pc (); */ -/* OBSOLETE thread_signal[thread] = ps.pi_osigno; */ -/* OBSOLETE thread_sigcode[thread] = ps.pi_osigcode; */ -/* OBSOLETE */ -/* OBSOLETE /* If the thread's stack has a context frame */ -/* OBSOLETE on top, something fucked is going on. I do not */ -/* OBSOLETE know what, but do I know this: the only thing you */ -/* OBSOLETE can do with such a thread is continue it. *x/ */ -/* OBSOLETE */ -/* OBSOLETE thread_is_in_kernel[thread] = */ -/* OBSOLETE ((read_register (PS_REGNUM) >> 25) & 3) == 0; */ -/* OBSOLETE */ -/* OBSOLETE /* Signals push an extended frame and then fault */ -/* OBSOLETE with a ridiculous pc. Pop the frame. *x/ */ -/* OBSOLETE */ -/* OBSOLETE if (thread_pc[thread] > STACK_END_ADDR) */ -/* OBSOLETE { */ -/* OBSOLETE POP_FRAME; */ -/* OBSOLETE if (is_break_pc (thread_pc[thread])) */ -/* OBSOLETE thread_pc[thread] = read_pc () - 2; */ -/* OBSOLETE else */ -/* OBSOLETE thread_pc[thread] = read_pc (); */ -/* OBSOLETE write_register (PC_REGNUM, thread_pc[thread]); */ -/* OBSOLETE } */ -/* OBSOLETE */ -/* OBSOLETE if (ps.pi_osigno || ps.pi_osigcode) */ -/* OBSOLETE { */ -/* OBSOLETE signal_stack++; */ -/* OBSOLETE signal_stack->pid = pid; */ -/* OBSOLETE signal_stack->thread = thread; */ -/* OBSOLETE signal_stack->signo = thread_signal[thread]; */ -/* OBSOLETE signal_stack->subsig = thread_sigcode[thread]; */ -/* OBSOLETE signal_stack->pc = thread_pc[thread]; */ -/* OBSOLETE } */ -/* OBSOLETE */ -/* OBSOLETE /* The following hackery is caused by a unix 7.1 feature: */ -/* OBSOLETE the inferior's fixed scheduling mode is cleared when */ -/* OBSOLETE it execs the shell (since the shell is not a parallel */ -/* OBSOLETE program). So, note the 5.4 trap we get when */ -/* OBSOLETE the shell does its exec, then catch the 5.0 trap */ -/* OBSOLETE that occurs when the debuggee starts, and set fixed */ -/* OBSOLETE scheduling mode properly. *x/ */ -/* OBSOLETE */ -/* OBSOLETE if (ps.pi_osigno == 5 && ps.pi_osigcode == 4) */ -/* OBSOLETE exec_trap_timer = 1; */ -/* OBSOLETE else */ -/* OBSOLETE exec_trap_timer--; */ -/* OBSOLETE */ -/* OBSOLETE if (ps.pi_osigno == 5 && exec_trap_timer == 0) */ -/* OBSOLETE set_fixed_scheduling (pid, parallel == 2); */ -/* OBSOLETE } */ -/* OBSOLETE } */ +/* OBSOLETE { */ +/* OBSOLETE ps.pi_thread = thread; */ +/* OBSOLETE if (ioctl (inferior_fd, PIXGETSUBCODE, &ps) < 0) */ +/* OBSOLETE perror_with_name ("PIXGETSUBCODE"); */ +/* OBSOLETE thread_state[thread] = ps.pi_otstate; */ +/* OBSOLETE */ +/* OBSOLETE if (ps.pi_otstate == PI_TALIVE) */ +/* OBSOLETE { */ +/* OBSOLETE select_thread (thread); */ +/* OBSOLETE ps.pi_buffer = registers; */ +/* OBSOLETE ps.pi_nbytes = REGISTER_BYTES; */ +/* OBSOLETE ps.pi_offset = 0; */ +/* OBSOLETE ps.pi_thread = thread; */ +/* OBSOLETE if (ioctl (inferior_fd, PIXRDREGS, &ps) < 0) */ +/* OBSOLETE perror_with_name ("PIXRDREGS"); */ +/* OBSOLETE */ +/* OBSOLETE registers_fetched (); */ +/* OBSOLETE */ +/* OBSOLETE thread_pc[thread] = read_pc (); */ +/* OBSOLETE thread_signal[thread] = ps.pi_osigno; */ +/* OBSOLETE thread_sigcode[thread] = ps.pi_osigcode; */ +/* OBSOLETE */ +/* OBSOLETE /* If the thread's stack has a context frame */ +/* OBSOLETE on top, something fucked is going on. I do not */ +/* OBSOLETE know what, but do I know this: the only thing you */ +/* OBSOLETE can do with such a thread is continue it. *x/ */ +/* OBSOLETE */ +/* OBSOLETE thread_is_in_kernel[thread] = */ +/* OBSOLETE ((read_register (PS_REGNUM) >> 25) & 3) == 0; */ +/* OBSOLETE */ +/* OBSOLETE /* Signals push an extended frame and then fault */ +/* OBSOLETE with a ridiculous pc. Pop the frame. *x/ */ +/* OBSOLETE */ +/* OBSOLETE if (thread_pc[thread] > STACK_END_ADDR) */ +/* OBSOLETE { */ +/* OBSOLETE POP_FRAME; */ +/* OBSOLETE if (is_break_pc (thread_pc[thread])) */ +/* OBSOLETE thread_pc[thread] = read_pc () - 2; */ +/* OBSOLETE else */ +/* OBSOLETE thread_pc[thread] = read_pc (); */ +/* OBSOLETE write_register (PC_REGNUM, thread_pc[thread]); */ +/* OBSOLETE } */ +/* OBSOLETE */ +/* OBSOLETE if (ps.pi_osigno || ps.pi_osigcode) */ +/* OBSOLETE { */ +/* OBSOLETE signal_stack++; */ +/* OBSOLETE signal_stack->pid = pid; */ +/* OBSOLETE signal_stack->thread = thread; */ +/* OBSOLETE signal_stack->signo = thread_signal[thread]; */ +/* OBSOLETE signal_stack->subsig = thread_sigcode[thread]; */ +/* OBSOLETE signal_stack->pc = thread_pc[thread]; */ +/* OBSOLETE } */ +/* OBSOLETE */ +/* OBSOLETE /* The following hackery is caused by a unix 7.1 feature: */ +/* OBSOLETE the inferior's fixed scheduling mode is cleared when */ +/* OBSOLETE it execs the shell (since the shell is not a parallel */ +/* OBSOLETE program). So, note the 5.4 trap we get when */ +/* OBSOLETE the shell does its exec, then catch the 5.0 trap */ +/* OBSOLETE that occurs when the debuggee starts, and set fixed */ +/* OBSOLETE scheduling mode properly. *x/ */ +/* OBSOLETE */ +/* OBSOLETE if (ps.pi_osigno == 5 && ps.pi_osigcode == 4) */ +/* OBSOLETE exec_trap_timer = 1; */ +/* OBSOLETE else */ +/* OBSOLETE exec_trap_timer--; */ +/* OBSOLETE */ +/* OBSOLETE if (ps.pi_osigno == 5 && exec_trap_timer == 0) */ +/* OBSOLETE set_fixed_scheduling (pid, parallel == 2); */ +/* OBSOLETE } */ +/* OBSOLETE } */ /* OBSOLETE */ /* OBSOLETE if (signal_stack_is_empty ()) */ -/* OBSOLETE error ("no active threads?!"); */ +/* OBSOLETE error ("no active threads?!"); */ /* OBSOLETE } */ /* OBSOLETE */ /* OBSOLETE /* Select the thread that stopped, and return *w saying why. *x/ */ @@ -772,14 +772,14 @@ /* OBSOLETE */ /* OBSOLETE fp = read_register (FP_REGNUM); */ /* OBSOLETE while (fp & 0x80000000) */ -/* OBSOLETE { */ -/* OBSOLETE ps = read_memory_integer (fp + 4, 4); */ -/* OBSOLETE if (val ? (ps & bit) : !(ps & bit)) */ -/* OBSOLETE break; */ -/* OBSOLETE ps ^= bit; */ -/* OBSOLETE write_memory (fp + 4, &ps, 4); */ -/* OBSOLETE fp = read_memory_integer (fp + 8, 4); */ -/* OBSOLETE } */ +/* OBSOLETE { */ +/* OBSOLETE ps = read_memory_integer (fp + 4, 4); */ +/* OBSOLETE if (val ? (ps & bit) : !(ps & bit)) */ +/* OBSOLETE break; */ +/* OBSOLETE ps ^= bit; */ +/* OBSOLETE write_memory (fp + 4, &ps, 4); */ +/* OBSOLETE fp = read_memory_integer (fp + 8, 4); */ +/* OBSOLETE } */ /* OBSOLETE } */ /* OBSOLETE } */ /* OBSOLETE */ @@ -827,128 +827,128 @@ /* OBSOLETE make_cleanup (free, filename); */ /* OBSOLETE */ /* OBSOLETE if (have_inferior_p ()) */ -/* OBSOLETE error ("To look at a core file, you must kill the program with \"kill\"."); */ +/* OBSOLETE error ("To look at a core file, you must kill the program with \"kill\"."); */ /* OBSOLETE corechan = open (filename, O_RDONLY, 0); */ /* OBSOLETE if (corechan < 0) */ -/* OBSOLETE perror_with_name (filename); */ +/* OBSOLETE perror_with_name (filename); */ /* OBSOLETE */ /* OBSOLETE if (myread (corechan, &filehdr, sizeof filehdr) < 0) */ -/* OBSOLETE perror_with_name (filename); */ +/* OBSOLETE perror_with_name (filename); */ /* OBSOLETE */ /* OBSOLETE if (!IS_CORE_SOFF_MAGIC (filehdr.h_magic)) */ -/* OBSOLETE error ("%s: not a core file.\n", filename); */ +/* OBSOLETE error ("%s: not a core file.\n", filename); */ /* OBSOLETE */ /* OBSOLETE if (myread (corechan, &opthdr, filehdr.h_opthdr) < 0) */ -/* OBSOLETE perror_with_name (filename); */ +/* OBSOLETE perror_with_name (filename); */ /* OBSOLETE */ /* OBSOLETE /* Read through the section headers. */ -/* OBSOLETE For text, data, etc, record an entry in the core file map. */ -/* OBSOLETE For context and tcontext, record the file address of */ -/* OBSOLETE the context blocks. *x/ */ +/* OBSOLETE For text, data, etc, record an entry in the core file map. */ +/* OBSOLETE For context and tcontext, record the file address of */ +/* OBSOLETE the context blocks. *x/ */ /* OBSOLETE */ /* OBSOLETE lseek (corechan, (long) filehdr.h_scnptr, 0); */ /* OBSOLETE */ /* OBSOLETE n_threads = 0; */ /* OBSOLETE for (n = 0; n < filehdr.h_nscns; n++) */ -/* OBSOLETE { */ -/* OBSOLETE if (myread (corechan, &scnhdr, sizeof scnhdr) < 0) */ -/* OBSOLETE perror_with_name (filename); */ -/* OBSOLETE if ((scnhdr.s_flags & S_TYPMASK) >= S_TEXT */ -/* OBSOLETE && (scnhdr.s_flags & S_TYPMASK) <= S_COMON) */ -/* OBSOLETE { */ -/* OBSOLETE core_map[n_core].mem_addr = scnhdr.s_vaddr; */ -/* OBSOLETE core_map[n_core].mem_end = scnhdr.s_vaddr + scnhdr.s_size; */ -/* OBSOLETE core_map[n_core].file_addr = scnhdr.s_scnptr; */ -/* OBSOLETE core_map[n_core].type = scnhdr.s_flags & S_TYPMASK; */ -/* OBSOLETE if (core_map[n_core].type != S_TBSS */ -/* OBSOLETE && core_map[n_core].type != S_TDATA */ -/* OBSOLETE && core_map[n_core].type != S_TTEXT) */ -/* OBSOLETE core_map[n_core].thread = -1; */ -/* OBSOLETE else if (n_core == 0 */ -/* OBSOLETE || core_map[n_core-1].mem_addr != scnhdr.s_vaddr) */ -/* OBSOLETE core_map[n_core].thread = 0; */ -/* OBSOLETE else */ -/* OBSOLETE core_map[n_core].thread = core_map[n_core-1].thread + 1; */ -/* OBSOLETE n_core++; */ -/* OBSOLETE } */ -/* OBSOLETE else if ((scnhdr.s_flags & S_TYPMASK) == S_CONTEXT) */ -/* OBSOLETE context_offset = scnhdr.s_scnptr; */ -/* OBSOLETE else if ((scnhdr.s_flags & S_TYPMASK) == S_TCONTEXT) */ -/* OBSOLETE tcontext_offset[n_threads++] = scnhdr.s_scnptr; */ -/* OBSOLETE } */ +/* OBSOLETE { */ +/* OBSOLETE if (myread (corechan, &scnhdr, sizeof scnhdr) < 0) */ +/* OBSOLETE perror_with_name (filename); */ +/* OBSOLETE if ((scnhdr.s_flags & S_TYPMASK) >= S_TEXT */ +/* OBSOLETE && (scnhdr.s_flags & S_TYPMASK) <= S_COMON) */ +/* OBSOLETE { */ +/* OBSOLETE core_map[n_core].mem_addr = scnhdr.s_vaddr; */ +/* OBSOLETE core_map[n_core].mem_end = scnhdr.s_vaddr + scnhdr.s_size; */ +/* OBSOLETE core_map[n_core].file_addr = scnhdr.s_scnptr; */ +/* OBSOLETE core_map[n_core].type = scnhdr.s_flags & S_TYPMASK; */ +/* OBSOLETE if (core_map[n_core].type != S_TBSS */ +/* OBSOLETE && core_map[n_core].type != S_TDATA */ +/* OBSOLETE && core_map[n_core].type != S_TTEXT) */ +/* OBSOLETE core_map[n_core].thread = -1; */ +/* OBSOLETE else if (n_core == 0 */ +/* OBSOLETE || core_map[n_core-1].mem_addr != scnhdr.s_vaddr) */ +/* OBSOLETE core_map[n_core].thread = 0; */ +/* OBSOLETE else */ +/* OBSOLETE core_map[n_core].thread = core_map[n_core-1].thread + 1; */ +/* OBSOLETE n_core++; */ +/* OBSOLETE } */ +/* OBSOLETE else if ((scnhdr.s_flags & S_TYPMASK) == S_CONTEXT) */ +/* OBSOLETE context_offset = scnhdr.s_scnptr; */ +/* OBSOLETE else if ((scnhdr.s_flags & S_TYPMASK) == S_TCONTEXT) */ +/* OBSOLETE tcontext_offset[n_threads++] = scnhdr.s_scnptr; */ +/* OBSOLETE } */ /* OBSOLETE */ /* OBSOLETE /* Read the context block, struct user, struct proc, */ -/* OBSOLETE and the comm regs. *x/ */ +/* OBSOLETE and the comm regs. *x/ */ /* OBSOLETE */ /* OBSOLETE lseek (corechan, context_offset, 0); */ /* OBSOLETE if (myread (corechan, &c, sizeof c) < 0) */ -/* OBSOLETE perror_with_name (filename); */ +/* OBSOLETE perror_with_name (filename); */ /* OBSOLETE lseek (corechan, c.core_user_p, 0); */ /* OBSOLETE if (myread (corechan, &u, sizeof u) < 0) */ -/* OBSOLETE perror_with_name (filename); */ +/* OBSOLETE perror_with_name (filename); */ /* OBSOLETE lseek (corechan, c.core_proc_p, 0); */ /* OBSOLETE if (myread (corechan, &pr, sizeof pr) < 0) */ -/* OBSOLETE perror_with_name (filename); */ +/* OBSOLETE perror_with_name (filename); */ /* OBSOLETE comm_registers = pr.p_creg; */ /* OBSOLETE */ /* OBSOLETE /* Core file apparently is really there. Make it really exist */ -/* OBSOLETE for xfer_core_file so we can do read_memory on it. *x/ */ +/* OBSOLETE for xfer_core_file so we can do read_memory on it. *x/ */ /* OBSOLETE */ /* OBSOLETE if (filename[0] == '/') */ -/* OBSOLETE corefile = savestring (filename, strlen (filename)); */ +/* OBSOLETE corefile = savestring (filename, strlen (filename)); */ /* OBSOLETE else */ -/* OBSOLETE corefile = concat (current_directory, "/", filename, NULL); */ +/* OBSOLETE corefile = concat (current_directory, "/", filename, NULL); */ /* OBSOLETE */ /* OBSOLETE printf_filtered ("Program %s ", u.u_comm); */ /* OBSOLETE */ /* OBSOLETE /* Read the thread registers and fill in the thread_xxx[] data. *x/ */ /* OBSOLETE */ /* OBSOLETE for (n = 0; n < n_threads; n++) */ -/* OBSOLETE { */ -/* OBSOLETE select_thread (n); */ -/* OBSOLETE */ -/* OBSOLETE lseek (corechan, tcontext_offset[n], 0); */ -/* OBSOLETE if (myread (corechan, &tc, sizeof tc) < 0) */ -/* OBSOLETE perror_with_name (corefile); */ -/* OBSOLETE lseek (corechan, tc.core_thread_p, 0); */ -/* OBSOLETE if (myread (corechan, &th, sizeof th) < 0) */ -/* OBSOLETE perror_with_name (corefile); */ -/* OBSOLETE */ -/* OBSOLETE lseek (corechan, tc.core_syscall_context_p, 0); */ -/* OBSOLETE if (myread (corechan, registers, REGISTER_BYTES) < 0) */ -/* OBSOLETE perror_with_name (corefile); */ -/* OBSOLETE */ -/* OBSOLETE thread_signal[n] = th.t_cursig; */ -/* OBSOLETE thread_sigcode[n] = th.t_code; */ -/* OBSOLETE thread_state[n] = th.t_state; */ -/* OBSOLETE thread_pc[n] = read_pc (); */ -/* OBSOLETE */ -/* OBSOLETE if (thread_pc[n] > STACK_END_ADDR) */ -/* OBSOLETE { */ -/* OBSOLETE POP_FRAME; */ -/* OBSOLETE if (is_break_pc (thread_pc[n])) */ -/* OBSOLETE thread_pc[n] = read_pc () - 2; */ -/* OBSOLETE else */ -/* OBSOLETE thread_pc[n] = read_pc (); */ -/* OBSOLETE write_register (PC_REGNUM, thread_pc[n]); */ -/* OBSOLETE } */ -/* OBSOLETE */ -/* OBSOLETE printf_filtered ("thread %d received signal %d, %s\n", */ -/* OBSOLETE n, thread_signal[n], */ -/* OBSOLETE safe_strsignal (thread_signal[n])); */ -/* OBSOLETE } */ +/* OBSOLETE { */ +/* OBSOLETE select_thread (n); */ +/* OBSOLETE */ +/* OBSOLETE lseek (corechan, tcontext_offset[n], 0); */ +/* OBSOLETE if (myread (corechan, &tc, sizeof tc) < 0) */ +/* OBSOLETE perror_with_name (corefile); */ +/* OBSOLETE lseek (corechan, tc.core_thread_p, 0); */ +/* OBSOLETE if (myread (corechan, &th, sizeof th) < 0) */ +/* OBSOLETE perror_with_name (corefile); */ +/* OBSOLETE */ +/* OBSOLETE lseek (corechan, tc.core_syscall_context_p, 0); */ +/* OBSOLETE if (myread (corechan, registers, REGISTER_BYTES) < 0) */ +/* OBSOLETE perror_with_name (corefile); */ +/* OBSOLETE */ +/* OBSOLETE thread_signal[n] = th.t_cursig; */ +/* OBSOLETE thread_sigcode[n] = th.t_code; */ +/* OBSOLETE thread_state[n] = th.t_state; */ +/* OBSOLETE thread_pc[n] = read_pc (); */ +/* OBSOLETE */ +/* OBSOLETE if (thread_pc[n] > STACK_END_ADDR) */ +/* OBSOLETE { */ +/* OBSOLETE POP_FRAME; */ +/* OBSOLETE if (is_break_pc (thread_pc[n])) */ +/* OBSOLETE thread_pc[n] = read_pc () - 2; */ +/* OBSOLETE else */ +/* OBSOLETE thread_pc[n] = read_pc (); */ +/* OBSOLETE write_register (PC_REGNUM, thread_pc[n]); */ +/* OBSOLETE } */ +/* OBSOLETE */ +/* OBSOLETE printf_filtered ("thread %d received signal %d, %s\n", */ +/* OBSOLETE n, thread_signal[n], */ +/* OBSOLETE safe_strsignal (thread_signal[n])); */ +/* OBSOLETE } */ /* OBSOLETE */ /* OBSOLETE /* Select an interesting thread -- also-rans died with SIGKILL, */ -/* OBSOLETE so find one that didn't. *x/ */ +/* OBSOLETE so find one that didn't. *x/ */ /* OBSOLETE */ /* OBSOLETE for (n = 0; n < n_threads; n++) */ -/* OBSOLETE if (thread_signal[n] != 0 && thread_signal[n] != SIGKILL) */ -/* OBSOLETE { */ -/* OBSOLETE select_thread (n); */ -/* OBSOLETE stop_signal = thread_signal[n]; */ -/* OBSOLETE stop_sigcode = thread_sigcode[n]; */ -/* OBSOLETE break; */ -/* OBSOLETE } */ +/* OBSOLETE if (thread_signal[n] != 0 && thread_signal[n] != SIGKILL) */ +/* OBSOLETE { */ +/* OBSOLETE select_thread (n); */ +/* OBSOLETE stop_signal = thread_signal[n]; */ +/* OBSOLETE stop_sigcode = thread_sigcode[n]; */ +/* OBSOLETE break; */ +/* OBSOLETE } */ /* OBSOLETE */ /* OBSOLETE core_aouthdr.a_magic = 0; */ /* OBSOLETE */ |