Hi, Kazu
Thanks for your review.  Sorry, I forgot to send to the mailing list. So send it again.
On 12/13/23 12:58, HAGIO KAZUHITO(萩尾 一仁) wrote:
 On 2023/11/08 10:39, Ming Wang wrote:
> Changes between v1 and v2:
> - Simplified the LoongArch64 gdb's backport patch and appended it to the
gdb-10.2.patch.
> - Add building the loongarch crash binary on an X86 64 host support.
> - Fix offset_table format issues.
> - Move private definitions code to loongarch64.c.
 The following compilation warnings are observed with the patch set,
 could you fix them?
 # make target=LOONGARCH64
 ...
 cc -c -g -DLOONGARCH64  -DGDB_10_2  loongarch64.c -Wall -O2 -Wstrict-prototypes
-Wmissing-prototypes -fstack-protector -Wformat-security
 loongarch64.c: In function 'loongarch64_analyze_function':
 loongarch64.c:557:11: warning: unused variable 'reg' [-Wunused-variable]
    ulong i, reg;
             ^~~
 loongarch64.c: In function 'loongarch64_dump_exception_stack':
 loongarch64.c:683:2: warning: 'regs' is used uninitialized in this function
[-Wuninitialized]
    value_to_symstr(regs->csr_epc, buf, 16);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 loongarch64.c: In function 'loongarch64_get_stack_frame':
 loongarch64.c:813:18: warning: array subscript 32 is above array bounds of 'long
unsigned int[32]' [-Warray-bounds]
    epc = regs->regs[LOONGARCH64_EF_CSR_EPC];
          ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
 loongarch64.c: In function 'loongarch64_back_trace_cmd':
 loongarch64.c:517:28: warning: 'regs' may be used uninitialized in this function
[-Wmaybe-uninitialized]
      previous.sp = regs->regs[LOONGARCH64_EF_SP];
                    ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
 loongarch64.c: In function 'loongarch64_display_regs_from_elf_notes':
 loongarch64.c:1294:51: warning: array subscript 32 is above array bounds of 'long
unsigned int[32]' [-Warray-bounds]
    if (!regs->regs[LOONGARCH64_EF_SP] &&
!regs->regs[LOONGARCH64_EF_CSR_EPC]) {
                                           ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
 loongarch64.c:1299:2: warning: array subscript 36 is above array bounds of 'long
unsigned int[32]' [-Warray-bounds]
    fprintf(ofp,
    ^~~~~~~~~~~~
     "     R0: %016lx   R1: %016lx   R2: %016lx\n"
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     "     R3: %016lx   R4: %016lx   R5: %016lx\n"
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     "     R6: %016lx   R7: %016lx   R8: %016lx\n"
 ...
     regs->regs[LOONGARCH64_EF_CSR_ECFG],
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     regs->regs[LOONGARCH64_EF_CSR_ESTAT],
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     regs->regs[LOONGARCH64_EF_CSR_EUEN]);
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 loongarch64.c:1299:2: warning: array subscript 38 is above array bounds of 'long
unsigned int[32]' [-Warray-bounds]
 loongarch64.c:1299:2: warning: array subscript 37 is above array bounds of 'long
unsigned int[32]' [-Warray-bounds]
 loongarch64.c:1299:2: warning: array subscript 35 is above array bounds of 'long
unsigned int[32]' [-Warray-bounds]
 loongarch64.c:1299:2: warning: array subscript 34 is above array bounds of 'long
unsigned int[32]' [-Warray-bounds]
 loongarch64.c:1299:2: warning: array subscript 33 is above array bounds of 'long
unsigned int[32]' [-Warray-bounds]
 loongarch64.c:1299:2: warning: array subscript 32 is above array bounds of 'long
unsigned int[32]' [-Warray-bounds]
 otherwise, looks fine to me. 
Sorry, I will fix compilation warnings in V3.
Thanks, 
Ming
>
> This patch set are for Crash-utility tool, it make crash tool support on
> loongarch64 architecture and the common commands(bt, p, rd, mod, log, set,
> dis, and so on).
>
> The patch sets were tested on a loongArch64 Loongson-3C5000 processor. Can
> successfully enter the crash command line and support for common command.
>
> ...
>        KERNEL: vmlinux
>      DUMPFILE: /proc/kcore
>          CPUS: 16
>          DATE: Thu Jul 27 19:51:21 CST 2023
>        UPTIME: 06:35:11
> LOAD AVERAGE: 0.15, 0.03, 0.01
>         TASKS: 257
>      NODENAME: localhost.localdomain
>       RELEASE: 5.10.0-60.102.0.128.oe2203.loongarch64
>       VERSION: #1 SMP Fri Jul 14 04:17:09 UTC 2023
>       MACHINE: loongarch64  (2200 Mhz)
>        MEMORY: 64 GB
>           PID: 2964
>       COMMAND: "crash"
>          TASK: 9000000098805500  [THREAD_INFO: 9000000094d48000]
>           CPU: 6
>         STATE: TASK_RUNNING (ACTIVE)
> crash>
> crash> dis -l start_kernel
> /linux-loongarch64/init/main.c: 883
> 0x9000000001030818 <start_kernel>:      0x0141ee40
> /linux-loongarch64/init/main.c: 879
> 0x900000000103081c <start_kernel+4>:    0x90000000
> /linux-loongarch64/init/main.c: 883
> 0x9000000001030820 <start_kernel+8>:    addu16i.d       $zero, $t8,
8179(0x1ff3)
> /linux-loongarch64/init/main.c: 879
> ...
>
> About the LoongArch64 Architecture:
> 
https://www.kernel.org/doc/html/latest/loongarch/index.html
>
>
> Thanks and regards,
> Ming
>