[Crash-utility] [ANNOUNCE] gcore extension module update

HATAYAMA Daisuke d.hatayama at jp.fujitsu.com
Wed Apr 6 02:13:38 UTC 2011


This update introduces a support of 32-bit user-space tasks on X86_64
, and fixes a number of bugs.

This time RHEL5.6 has newly been tested. Support range for 32-bit
tasks on X86_64 is just the same as for ordinary 64-bit tasks. In
summary, the current support range is as follows:

  Architecture: X86_64 including 32-bit tasks and X86
  Versions: RHEL4.8, RHEL5.5, RHEL5.6, RHEL6.0 and vanilla 2.6.36.

Note: there is the issue that register restoration for callee-saved
registers doesn't work well on RHEL6.0 and recent kernels that are
built with recent tools. I'm going to address this issue but it's
still under investigation. I'd stress here that the register values
restored is enough for back tracing.

Also any comment, suggestion and report is welcome.

ChangeLog:

- Support 32-bit user-space tasks on X86_64. Created are 32-bit ELF
  core files containing the same kinds of note information as on X86.
  (d.hatayama at jp.fujitsu.com)

- Fix a bug in calculation of detecting whether NT_IOPERM is available
  or not. Without this fix, NT_IOPERM is never included in a core
  file.
  (d.hatayama at jp.fujitsu.com)

- Fix a bug in a processing of writing note information. Without this
  patch, a length of ELF note section recorded in PT_NOTE program
  header entry could be different from an actual size of written data,
  and tools such as gdb and binutils recognize it as an invalid ELF
  file.
  (d.hatayama at jp.fujitsu.com)

- Fix a bug in resuming an original task context. Without this patch,
  gcore fails to let crash's state resume back to the original context
  when specifying a different task context as a target from a current
  one.
  (d.hatayama at jp.fujitsu.com)

- Fix a bug in getting register values from
  NT_PRSTATUS. DISKDUMP/NETDUMP saves register values for a panic task
  only, while KDUMP saves NT_PRSTATUS for all active tasks. Without
  this patch, dumping processing fails if a non-panic active task is
  specified and analyzed kernel dumpfile contains NT_PRSTATUS for
  panic task only. Although best way is to check the number of
  NT_PRSTATUS contained in a given kernel dumpfile, this fix
  temporarilly only checks in what formats the analying kernel dump
  is.
  (d.hatayama at jp.fujitsu.com)

- Fix a bug in restoring segment register DS. Without this patch, the
  value of DS segment register in NT_PRSTATUS is always 0 if a dump
  target task is a sleep task.
  (d.hatayama at jp.fujitsu.com)

- Fix a bug in restoring segment registers. Field size for segment
  registers in kernel is 2 bytes, while field size in note information
  is 8 bytes. Without this patch, high 6-bytes has an arbitrary value
  in note information. Low 2-bytes remains the same.
  (d.hatayama at jp.fujitsu.com)

Thanks.
HATAYAMA Daisuke
-------------- next part --------------
A non-text attachment was scrubbed...
Name: gcore.tar.bz2
Type: application/octet-stream
Size: 33991 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/crash-utility/attachments/20110406/371eb0c8/attachment.obj>


More information about the Crash-utility mailing list