This patchset is a rebase/merged version of the following 3 patchsets: 1): [PATCH v10 0/5] Improve stack unwind on ppc64 [1] 2): [PATCH 0/5] x86_64 gdb stack unwinding support [2] 3): Clean up on top of one-thread-v2 [3] A complete description of gdb stack unwinding support for crash can be found in [1]. This patchset can be divided into the following 3 parts: 1) part1: preparations before stack unwinding support, some bugs/regressions found when drafting this patchset. 2) part2: common part for all CPU archs, mainly dealing with crash_target.c/gdb_interface.c files, in order to support different archs. 3) part3: arch specific, for each ppc64/x86_64/arm64/vmware stack unwinding support. === part 3 arm64: Add gdb stack unwinding support vmware_guestdump: Various format versions support x86_64: Add gdb stack unwinding support ppc64: correct gdb passthroughs by implementing machdep->get_current_task_reg === part 2 Conditionally output gdb stack unwinding stop reasons Stop stack unwinding at non-kernel address Print task pid/command instead of CPU index Rename get_cpu_reg to get_current_task_reg Let crash change gdb context Leave only one gdb thread for crash Remove 'frame' from prohibited commands list === part 1 Fix gdb_interface: restore gdb's output streams at end of gdb_interface x86_64: Fix invalid input "=>" for bt command Fix cpumask_t recursive dependence issue Fix the regression of cpumask_t for xen hyper === v7 -> v6: 1) Reorganise the patchset, re-divided them into 3 part against the previous 2 parts. 2) Re-dealed with the cpumask_t part, which solved the comment No.4 pointed out by lianbo in [4]. 3) Add conditional output for the failing message of gdb stack unwinding. see [PATCH 11/15] Conditionally output gdb stack unwinding stop reasons 4) Redraft the commit messages, updated some outdated info. 5) Merged "Let crash change gdb context" and "set_context(): check if context is already current" into one. [4]: https://www.mail-archive.com/devel@xxxxxxxxxxxxxxxxxxxxxxxxxxx/msg01067.html v6 -> v5: 1) Refactor patch 4 & 9, which changed the function signature of struct get_cpu_reg/get_current_task_reg, and let each patch compile with no error when added on. 2) Rebased the patchset on top of latest upstream: ("79b93ecb2e72ec Fix a "Bus error" issue caused by 'crash --osrelease' or crash loading") v5 -> v4: 1) Plenty of code refactoring based on Lianbo's comments on v4. 2) Removed the magic number when dealing with regs bitmap, see [6]. 3) Rebased the patchset on top of latest upstream: ("1c6da3eaff8207 arm64: Fix bt command show wrong stacktrace on ramdump source") v4 -> v3: Fixed the author issue in [PATCH v3 06/16] Fix gdb_interface: restore gdb's output streams at end of gdb_interface. v3 -> v2: 1) Updated CC list as pointed out in [4] 2) Compiling issues as in [5] v2 -> v1: 1) Added the patch: x86_64: Fix invalid input "=>" for bt command, thanks for Kazu's testing. 2) Modify the patch: x86_64: Add gdb stack unwinding support, added the pcp_save, spp_save and sp, for restoring the value in match of the original code logic. [1]: https://www.mail-archive.com/devel@xxxxxxxxxxxxxxxxxxxxxxxxxxx/msg00469.html [2]: https://www.mail-archive.com/devel@xxxxxxxxxxxxxxxxxxxxxxxxxxx/msg00488.html [3]: https://www.mail-archive.com/devel@xxxxxxxxxxxxxxxxxxxxxxxxxxx/msg00554.html [4]: https://www.mail-archive.com/devel@xxxxxxxxxxxxxxxxxxxxxxxxxxx/msg00681.html [5]: https://www.mail-archive.com/devel@xxxxxxxxxxxxxxxxxxxxxxxxxxx/msg00715.html [6]: https://www.mail-archive.com/devel@xxxxxxxxxxxxxxxxxxxxxxxxxxx/msg00819.html Aditya Gupta (3): Fix gdb_interface: restore gdb's output streams at end of gdb_interface Remove 'frame' from prohibited commands list ppc64: correct gdb passthroughs by implementing machdep->get_current_task_reg Alexey Makhalov (1): vmware_guestdump: Various format versions support Tao Liu (11): Fix the regression of cpumask_t for xen hyper Fix cpumask_t recursive dependence issue x86_64: Fix invalid input "=>" for bt command Leave only one gdb thread for crash Let crash change gdb context Rename get_cpu_reg to get_current_task_reg Print task pid/command instead of CPU index Stop stack unwinding at non-kernel address Conditionally output gdb stack unwinding stop reasons x86_64: Add gdb stack unwinding support arm64: Add gdb stack unwinding support arm64.c | 120 +++++++++++++++-- crash_target.c | 71 ++++++---- defs.h | 194 ++++++++++++++++++++++++++- gdb-10.2.patch | 96 ++++++++++++++ gdb_interface.c | 39 ++---- kernel.c | 63 +++++++-- ppc64.c | 174 +++++++++++++++++++++++- symbols.c | 15 +++ task.c | 34 +++-- tools.c | 16 ++- unwind_x86_64.h | 4 - vmware_guestdump.c | 321 +++++++++++++++++++++++++++++++------------- x86_64.c | 323 ++++++++++++++++++++++++++++++++++++++++----- 13 files changed, 1247 insertions(+), 223 deletions(-) -- 2.40.1 -- Crash-utility mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxxxxxx To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxxxxxx https://${domain_name}/admin/lists/devel.lists.crash-utility.osci.io/ Contribution Guidelines: https://github.com/crash-utility/crash/wiki