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