Re: How to get stack from every thread when doing crash dump?

From: Marcel Moolenaar (marcel_at_xcllnt.net)
Date: 06/24/05

  • Next message: Peter Wemm: "Re: Kernel Dump"
    Date: Thu, 23 Jun 2005 17:45:14 -0700
    To: Howard <howardsue@gmail.com>
    
    

    On Jun 23, 2005, at 5:39 PM, Howard wrote:

    > 2005/6/24, Marcel Moolenaar <marcel@xcllnt.net>: On Jun 23, 2005, at
    > 3:20 AM, Xin LI wrote:
    >>
    >> > One problem with the mini-dump is that, since the mini-dump
    >> utilizes:
    >> >       dump_write((char *)curthread->td_kstack,
    >> curthread->td_kstack_pages *
    >> > PAGE_SIZE);
    >> >
    >> > To write out the stack, and at the point before exception.S,
    >> curthread
    >> > has
    >> > been changed, we can only obtain the stack from the current thread,
    >> > which
    >> > may not be enough for analyzing the backtrace.  What can we do to
    >> > improve
    >> > this situation?
    >>
    >> You can iterate over all the threads. Take a look at
    >>        src/sys/kern/subr_kdb.c
    >> or
    >>        src/gnu/usr.bin/gdb/kgdb/kthr.c
    >>
    >> In particular:
    >> Use the list of all processes (allproc) to iterate over the
    >> processeses and for each process walk the list of threads
    >> and for each thread dump the stack, registers and other data. 
    > However is dumping the td_kstack_pages enough to get one thread's
    > stack? We found the stack is not completed.

    What do you mean with "not completed"?

    -- 
      Marcel Moolenaar         USPA: A-39004          marcel@xcllnt.net
    _______________________________________________
    freebsd-arch@freebsd.org mailing list
    http://lists.freebsd.org/mailman/listinfo/freebsd-arch
    To unsubscribe, send any mail to "freebsd-arch-unsubscribe@freebsd.org"
    

  • Next message: Peter Wemm: "Re: Kernel Dump"

    Relevant Pages