<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Apr 22, 2022 at 7:30 PM Chan Kim <<a href="mailto:ckim@etri.re.kr">ckim@etri.re.kr</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hello all,<br>
<br>
Really strange thing happening here.. I can't see the full stack trace with<br>
'bt' command in gdb.<br>
So I tried with fresh linux-5.10.122 source and qemu-6.2.0 source and it's<br>
happening too!<br>
(it's happening when I do combinations with linux 5.10.0 and qemu-5.1.0. But<br>
it's not happening with linux-5.4.21)<br>
<br>
I would be grateful if somebody could check if this happens to other people<br>
or just me.<br>
<br>
1. download linux-5.1.122 tarball from <a href="https://www.kernel.org/" rel="noreferrer" target="_blank">https://www.kernel.org/</a> <br>
2. uncompress it and set env variable ARCH=arm64,<br>
CROSS_COMPILE=aarch64-none-elf- , do "make defconfig" and "make -j`nproc`<br>
Image"<br>
3. download qemu-6.2.0 from <a href="https://www.qemu.org/" rel="noreferrer" target="_blank">https://www.qemu.org/</a><br>
4. uncompress it and do "mkdir build" "cd build" "../configure<br>
--target-list=aarch64-softmmu --enable-debug"<br>
5. run qemu and wait for debugger to attach.<br>
qemu-6.2.0/build/aarch64-softmmu/qemu-system-aarch64 -machine<br>
virt,gic-version=max,secure=off,virtualization=true -cpu max -kernel<br>
linux-5.10.112/arch/arm64/boot/Image -m 2G -nographic -netdev<br>
user,id=vnet,hostfwd=:127.0.0.1:0-:22,tftp=/srv/tftp -device<br>
virtio-net-pci,netdev=vnet -machine iommu=smmuv3 --append "root=/dev/ram<br>
init=/init nokaslr earlycon ip=dhcp hugepages=16" -s -S<br>
6. run debugger, do "aarch64-none-elf-gdb linux-6.10.112/vmlinux -x\<br></blockquote><div><br></div><div>It has been long time since I compiled linux kernel but I guess, either you need to compile kernel with enabled frame pointer, and/or you need to enable debug symbol embedded into final kernel image. cmiiw<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
gdb_script"<br>
(gdb_script content : <br>
target remote :1234<br>
layout src<br>
b start_kernel<br>
b __driver_attach<br>
)<br>
<br>
Now, in gdb, when you press 'c' twice, it'll stop at the first<br>
__driver_attach. (first one stops at start_kernel).<br>
When you are at __attach_driver, type 'bt'. See if you see the full function<br>
stack trace.<br>
This is what I see. <br>
(gdb) bt<br>
#0  __driver_attach (dev=0xffff000002582810, data=0xffff800011dc2358<br>
<dummy_regulator_driver+40>)<br>
    at drivers/base/dd.c:1060<br>
#1  0xffff8000107a3ed0 in bus_for_each_dev (bus=<optimized out>,<br>
start=<optimized out>,<br>
    data=0xffff800011dc2358 <dummy_regulator_driver+40>,<br>
fn=0xffff8000107a6f60 <__driver_attach>)<br>
    at drivers/base/bus.c:305<br>
#2  0xd6d78000107a5c58 in ?? ()<br>
Backtrace stopped: previous frame identical to this frame (corrupt stack?)<br>
<br>
I used to see more thatn 20 stacks trace but strangely I see only two. <br>
I can still see many stacks for linux-5.4.21 that I was working with in the<br>
past. <br>
Could anyone check if this happens to anyone?<br>
I think if I add BLK_DEV_RAM and set initramfs.cpio.gz in the linux build,<br>
the kernel will boot ok to the shell prompt.<br>
Only the gdb can't show the stack levels.<br>
<br>
My OS : ubuntu-20.04  5.13.0-35-generic<br>
<br>
$ aarch64-none-elf-gdb --version<br>
GNU gdb (GNU Toolchain for the A-profile Architecture 10.2-2020.11<br>
(arm-10.16)) 10.1.90.20201028-git<br>
Copyright (C) 2020 Free Software Foundation, Inc.<br>
License GPLv3+: GNU GPL version 3 or later<br>
<<a href="http://gnu.org/licenses/gpl.html" rel="noreferrer" target="_blank">http://gnu.org/licenses/gpl.html</a>><br>
This is free software: you are free to change and redistribute it.<br>
There is NO WARRANTY, to the extent permitted by law.<br>
<br>
Thank you.<br>
Chan Kim<br>
<br>
<br>
<br>
<br>
<br>
_______________________________________________<br>
Kernelnewbies mailing list<br>
<a href="mailto:Kernelnewbies@kernelnewbies.org" target="_blank">Kernelnewbies@kernelnewbies.org</a><br>
<a href="https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies" rel="noreferrer" target="_blank">https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies</a><br>
</blockquote></div><br clear="all"><br>-- <br><div dir="ltr" class="gmail_signature">regards,<br><br>Mulyadi Santosa<br>Freelance Linux trainer and consultant<br><br>blog: <a href="http://the-hydra.blogspot.com" target="_blank">the-hydra.blogspot.com</a><br>training: <a href="http://mulyaditraining.blogspot.com" target="_blank">mulyaditraining.blogspot.com</a></div></div>