[RFA] gcore/linux-proc fix

Elena Zannoni ezannoni@redhat.com
Thu Sep 25 19:45:00 GMT 2003


Daniel Jacobowitz writes:
 > On Wed, Sep 24, 2003 at 12:52:20PM -0400, Elena Zannoni wrote:
 > > 
 > > This patch fixes some problems with the gcore command on single
 > > threaded programs.  Before the patch, the core file did not report
 > > anywhere the PID of the process:
 > > 
 > > 
 > >   CORE                 144  PRSTATUS
 > >     SIGINFO:  signo: 0, code = 0, errno = 0
 > >     signal: 0, pending: 00000000, holding: 00000000
 > >     pid: 0, ppid = 0, pgrp = 0, sid = 0
 > >   ^^^^^^^^^
 > > 
 > > 
 > >      utime:      0.000000s,  stime:      0.000000s
 > >     cutime:      0.000000s, cstime:      0.000000s
 > >     eax: fffffffc  ebx: bfffc4a4  ecx: bfffc4a4  edx: b75d79f8
 > >     esi: bfffc5bc  edi: bfffc53c  ebp: bfffc648  esp: bfffc484
 > >     eip: b75ebc02  eflags: 00000246, original eax: 000000a2
 > >     cs: 0023  ds: 002b  es: 002b  fs: 0000  gs: 0033  ss: 002b
 > > 
 > > 
 > > 
 > > 
 > > after the patch:
 > > 
 > > 
 > >   CORE                 144  PRSTATUS
 > >     SIGINFO:  signo: 0, code = 0, errno = 0
 > >     signal: 0, pending: 00000000, holding: 00000000
 > >     pid: 5846, ppid = 0, pgrp = 0, sid = 0
 > >   ^^^^^^^^^^^^
 > > 
 > >      utime:      0.000000s,  stime:      0.000000s
 > >     cutime:      0.000000s, cstime:      0.000000s
 > >     eax: fffffffc  ebx: bffff674  ecx: bffff674  edx: b75d79f8
 > >     esi: bffff78c  edi: bffff70c  ebp: bffff818  esp: bffff654
 > >     eip: b75ebc02  eflags: 00000246, original eax: 000000a2
 > >     cs: 0023  ds: 002b  es: 002b  fs: 0000  gs: 0033  ss: 002b
 > > 
 > >   CORE                 108  FPREGSET
 > >   LINUX                512  <unknown>: 1189489535
 > > 
 > > 
 > > 
 > > Note also that if the function to write the note section is called via
 > > the iterator for multi-threaded programs
 > > (i.e. linux_corefile_thread_callback),
 > > registers_changed()/target_fetch_registers() are called, but if
 > > invoked directly for the single-threaded case,
 > > registers_changed()/target_fetch_registers() are not called.
 > > So I added a wrapper to do that.
 > > 
 > > It all works fine with multi-threaded apps.
 > 
 > Looks good to me.  I've been using a similar hack to call
 > target_fetch_registers, too.

Cool, I'll wait to see if Michael has any comments.

elena


 > 
 > -- 
 > Daniel Jacobowitz
 > MontaVista Software                         Debian GNU/Linux Developer



More information about the Gdb-patches mailing list