On Thu, Aug 04, 2022 at 03:27:39PM +0800, Chen Zhongjin wrote: > I believe disassemble show_stack in vmlinux and if we have: > > push %rbp > > mov %rsp,%rbp > > ... (no regs pushed to stack) > > callq <show_trace_log_lvl> > > This can be reproduced. Weird, that's what I have. This is GCC 12.1. ffffffff81056de0 <show_stack>: ffffffff81056de0: e8 0b 43 05 00 call ffffffff810ab0f0 <__fentry__> ffffffff81056de5: 55 push %rbp ffffffff81056de6: 48 83 05 b2 0f c9 02 01 addq $0x1,0x2c90fb2(%rip) # ffffffff83ce7da0 <__gcov0.show_stack> ffffffff81056dee: 48 89 e5 mov %rsp,%rbp ffffffff81056df1: 48 85 ff test %rdi,%rdi ffffffff81056df4: 74 41 je ffffffff81056e37 <show_stack+0x57> ffffffff81056df6: 48 85 f6 test %rsi,%rsi ffffffff81056df9: 0f 85 c2 24 15 01 jne ffffffff821a92c1 <show_stack.cold+0xd> ffffffff81056dff: 65 48 8b 04 25 c0 bd 01 00 mov %gs:0x1bdc0,%rax ffffffff81056e08: 48 39 c7 cmp %rax,%rdi ffffffff81056e0b: 0f 85 a3 24 15 01 jne ffffffff821a92b4 <show_stack.cold> ffffffff81056e11: 48 83 05 af 0f c9 02 01 addq $0x1,0x2c90faf(%rip) # ffffffff83ce7dc8 <__gcov0.show_stack+0x28> ffffffff81056e19: 48 89 ee mov %rbp,%rsi ffffffff81056e1c: 48 89 d1 mov %rdx,%rcx ffffffff81056e1f: 48 89 f2 mov %rsi,%rdx ffffffff81056e22: 31 f6 xor %esi,%esi ffffffff81056e24: e8 8e 20 15 01 call ffffffff821a8eb7 <show_trace_log_lvl> ffffffff81056e29: 48 83 05 9f 0f c9 02 01 addq $0x1,0x2c90f9f(%rip) # ffffffff83ce7dd0 <__gcov0.show_stack+0x30> ffffffff81056e31: 5d pop %rbp ffffffff81056e32: e9 49 b2 5a 01 jmp ffffffff82602080 <__x86_return_thunk> ffffffff81056e37: 48 83 05 69 0f c9 02 01 addq $0x1,0x2c90f69(%rip) # ffffffff83ce7da8 <__gcov0.show_stack+0x8> ffffffff81056e3f: 65 48 8b 3c 25 c0 bd 01 00 mov %gs:0x1bdc0,%rdi ffffffff81056e48: eb ac jmp ffffffff81056df6 <show_stack+0x16> ffffffff81056e4a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) -- Josh