Re: [PATCH v3 2/2] x86_64: Correct the identifier when locating the call instruction

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2022/08/31 12:54, Tao Liu wrote:
> The previous implementation to locate the call instruction is
> to strstr "call", then check whether the previous char is ' '
> or '\t'. The implementation is problematic. For example it
> cannot resolve the following disassembly string:
> 
> "0xffffffffc0995378 <nfs41_callback_svc+344>:\tcall   0xffffffff8ecfa4c0 <schedule>\n"
> 
> strstr will locate the "_call" and char check fails,
> as a result, extract_hex fail to get the calling address.
> 
> NOTE: the issue is more likely to be reproduced when patch[1] applied.
> Because without patch[1], the disassembly string will be as follows,
> so the issue is no longer reproducible.
> 
> "0xffffffffc0995378:\tcall   0xffffffff8ecfa4c0 <schedule>\n"
> 
> Before the patch:
>      crash> bt 1472
>      PID: 1472     TASK: ffff8c121fa72f70  CPU: 18   COMMAND: "nfsv4.1-svc"
>       #0 [ffff8c16231a3db8] __schedule at ffffffff8ecf9ef3
>       #1 [ffff8c16231a3e40] schedule at ffffffff8ecfa4e9
> 
> After the patch:
>      crash> bt 1472
>      PID: 1472     TASK: ffff8c121fa72f70  CPU: 18   COMMAND: "nfsv4.1-svc"
>       #0 [ffff8c16231a3db8] __schedule at ffffffff8ecf9ef3
>       #1 [ffff8c16231a3e40] schedule at ffffffff8ecfa4e9
>       #2 [ffff8c16231a3e50] nfs41_callback_svc at ffffffffc099537d [nfsv4]
>       #3 [ffff8c16231a3ec8] kthread at ffffffff8e6b966f
>       #4 [ffff8c16231a3f50] ret_from_fork at ffffffff8ed07898
> 
> This patch fix the issue by strstr "\tcall" and " call", to
> locate the correct call instruction.
> 
> [1]: https://www.mail-archive.com/crash-utility@xxxxxxxxxx/msg09490.html

I've changed this link to the official one and applied.
https://github.com/crash-utility/crash/commit/3ed9ec5c8d09cffac9772abbf54214125ade9127

Thanks,
Kazu
--
Crash-utility mailing list
Crash-utility@xxxxxxxxxx
https://listman.redhat.com/mailman/listinfo/crash-utility
Contribution Guidelines: https://github.com/crash-utility/crash/wiki




[Index of Archives]     [Fedora Development]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [KDE Users]     [Fedora Tools]

 

Powered by Linux