From patchwork Tue Aug 8 08:30:12 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?b?S3Vhbi1ZaW5nIExlZSAo5p2O5Yag56mOKQ==?= X-Patchwork-Id: 13345816 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 11017C001DB for ; Tue, 8 Aug 2023 08:30:49 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 63DF68D0002; Tue, 8 Aug 2023 04:30:46 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 577FD6B0075; Tue, 8 Aug 2023 04:30:46 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3A3238D0002; Tue, 8 Aug 2023 04:30:46 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 22C5A6B0074 for ; Tue, 8 Aug 2023 04:30:46 -0400 (EDT) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id BF818120C00 for ; Tue, 8 Aug 2023 08:30:45 +0000 (UTC) X-FDA: 81100266450.28.D97C9CB Received: from mailgw02.mediatek.com (mailgw02.mediatek.com [216.200.240.185]) by imf25.hostedemail.com (Postfix) with ESMTP id 7403AA0024 for ; Tue, 8 Aug 2023 08:30:43 +0000 (UTC) Authentication-Results: imf25.hostedemail.com; dkim=pass header.d=mediatek.com header.s=dk header.b=Y9Tr3jyM; dmarc=pass (policy=quarantine) header.from=mediatek.com; spf=pass (imf25.hostedemail.com: domain of kuan-ying.lee@mediatek.com designates 216.200.240.185 as permitted sender) smtp.mailfrom=kuan-ying.lee@mediatek.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1691483443; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=YAbalPSkEKWf6qATM+/2up2V7102RaSYQU2gp24pvGE=; b=WIle4E7ZbJu65R470w1FtaeQ8gzr5QllFBElHnAr5EDzAliyY39IP8avks5leMphab3ECF +TyVYYLuChMcy5V+ApW7F2+dCzwgFxKbqAxUdJZ3mcQl4Y5RP195W6cduV8v7Rm+w8LcrN jK7/Tg5Qh/eRkFi1xIkv+ZYsCqaUBK4= ARC-Authentication-Results: i=1; imf25.hostedemail.com; dkim=pass header.d=mediatek.com header.s=dk header.b=Y9Tr3jyM; dmarc=pass (policy=quarantine) header.from=mediatek.com; spf=pass (imf25.hostedemail.com: domain of kuan-ying.lee@mediatek.com designates 216.200.240.185 as permitted sender) smtp.mailfrom=kuan-ying.lee@mediatek.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1691483443; a=rsa-sha256; cv=none; b=Hp0W0Wbig7pglU3KQpIkTQUUxW6uTxtstsghHvI5Dg7DQCEH03Tvju7Vb9iAPTvTD8YjtN TN9v9860BX20mnALSOgHt2LpyrQwx1kzOfXj4Kj86RJe5zUHPl8T4VUdbQCml20s9NT2Sr DgLSkrKibJQxXuWb+ri4oL6wATAQ5bU= X-UUID: d658a9dc35c511ee83ed1395ce914268-20230808 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:CC:To:From; bh=YAbalPSkEKWf6qATM+/2up2V7102RaSYQU2gp24pvGE=; b=Y9Tr3jyMnBdD4FjjZj5r7r92qYZxj9h9z2NDRhjdRY4g58Qn3e+i+E2E/p3MiZPmaTYB0BxVy9aFsORUw8kBzfWFpSJrIOYyYZYMjaUz44DTFQhCKiZBzQ/VutYvb7VXKr/WE4h5r+DsQg6oYKnB0uTUsR2YDOC3dGw0xuN5U+A=; X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.1.31,REQID:ec54872a-49b0-4798-95b2-ffd1f424cdd5,IP:0,U RL:0,TC:0,Content:0,EDM:0,RT:1,SF:0,FILE:0,BULK:0,RULE:Release_Ham,ACTION: release,TS:1 X-CID-META: VersionHash:0ad78a4,CLOUDID:00e7cfd2-cd77-4e67-bbfd-aa4eaace762f,B ulkID:nil,BulkQuantity:0,Recheck:0,SF:102,TC:nil,Content:0,EDM:-3,IP:nil,U RL:11|1,File:nil,Bulk:nil,QS:nil,BEC:nil,COL:0,OSI:0,OSA:0,AV:0,LES:1,SPR: NO,DKR:0,DKP:0,BRR:0,BRE:0 X-CID-BVR: 0 X-CID-BAS: 0,_,0,_ X-CID-FACTOR: TF_CID_SPAM_ULN,TF_CID_SPAM_SNR X-UUID: d658a9dc35c511ee83ed1395ce914268-20230808 Received: from mtkmbs13n2.mediatek.inc [(172.21.101.108)] by mailgw02.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 256/256) with ESMTP id 1926024209; Tue, 08 Aug 2023 01:30:31 -0700 Received: from mtkmbs13n2.mediatek.inc (172.21.101.108) by mtkmbs10n1.mediatek.inc (172.21.101.34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.26; Tue, 8 Aug 2023 16:30:30 +0800 Received: from mtksdccf07.mediatek.inc (172.21.84.99) by mtkmbs13n2.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.2.1118.26 via Frontend Transport; Tue, 8 Aug 2023 16:30:30 +0800 From: Kuan-Ying Lee To: Jan Kiszka , Kieran Bingham , Matthias Brugger , AngeloGioacchino Del Regno CC: , , , , , , , Kuan-Ying Lee , , Subject: [PATCH v2 2/8] scripts/gdb/modules: add get module text support Date: Tue, 8 Aug 2023 16:30:12 +0800 Message-ID: <20230808083020.22254-3-Kuan-Ying.Lee@mediatek.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20230808083020.22254-1-Kuan-Ying.Lee@mediatek.com> References: <20230808083020.22254-1-Kuan-Ying.Lee@mediatek.com> MIME-Version: 1.0 X-MTK: N X-Rspamd-Queue-Id: 7403AA0024 X-Rspam-User: X-Rspamd-Server: rspam02 X-Stat-Signature: nipopoweandjpu5ahpmn19aitsfnjg7z X-HE-Tag: 1691483443-223849 X-HE-Meta: U2FsdGVkX19y3OlpDsQ1XsXqvajjJG7rhOLRuz5GWAbS62zwy3s3s7YRhHc7MFCFwb9A1ppFek2bwbf8LNsQZIHVN42mwd0deEwpDdWOcDMnw1REbyBUaLmjlUHJHHdttDWjQ0rabPB6GRjGSF/pErC9NOHA7ePuQOvHLyD+klC8qECcwACJkl5Xuazs+C4DHnhnUDw6j474DRNwlbVzkLZyGiHOsoHc/SknAuORulANH5AjHManD1xmFqmmPy4LW457xLjM5jp75WVve3IuQ81c+EY8tc72URljYr//+TFTJERWMkrtdHlmtQ+Q0ay+DHS5bo5nwv0cl8dJFAXwbBHRKXuuUnhJlbY4Cbp5PDhli1eKb/lnRkSN/OCxrMEvhUgatLIxnD/hVCmtQJ5NlBJCtCyK3x+I9gC5lfa7R45ALwRwpFVrcD+t7MkF0LZz7UKehQec01cQgCjouyDDaozlR4PWntNMSi3BL5GwR1KARPY2uepqfG9WZoshzZJWrNn4TDGnF3Lah3NZBZI7gpo1lzRXAGrnF/Q1wp3Uvt0ZufoZ5yJpX5QfahTi48dd6QIZFnNlBCWOIxsr0X6pIlonfuZd0pP3p1Vm/JX66cY2dXIcTOIBTmwNhgNqDOuXcZUi0CyRYbNm8I3nAalnkbWjftt81Ifx8tWJBOwGdED9JkyXMRnpQO737p7FFxT2QTPqz5pmZ68DzufiEMU/Q/qRDjexQlfZ6eAemvQsfsHMQE3sZ/Oa1NQkM11Y66baD9BB+XvOl2fjSoTB9U1VK0p+AwHxOJACQYdZLhzwvNFUI0WHiDVNi3iYWKL++ttg4SIZOQ91/m1g02GaUynzwH/EFJFBT0sdF3Bu1CKp8AuAUmEwl1MWF5IO9lxOya8mzMF5YWwV3L6KYwOSo5qZOoIcPwNA2sDmDKtdeYCXe3yUCke2qQ4b1jLbvbqTg/bsMcnKXvLA6SFzYRWEME3 YWV/ZL5Y 4vUDHm4zg09dGhtto/RahX4cawnkpp3mcotCu/f2jzhslAR+drqXOnfHWeCya12xHnf0D9fZb3eoPZgB9ZUNL97ogcxOJZpGChvVPXxAEplzLWLtv4gFPL5rHY9+MRLlO0+IZJnQp8gb5kC7wq82YM+E7kzwls8R6RNMQugvOgxVJ5xOMg1rzQEm5Fuy2cRIpPzqahjikFF1ofqRl/CCAttzcWlSNnVynZtxAzuw5ehv+CP8aHK1wkiZZbw== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: When we get an text address from coredump and we cannot find this address in vmlinux, it might located in kernel module. We want to know which kernel module it located in. This GDB scripts can help us to find the target kernel module. (gdb) lx-getmod-by-textaddr 0xffff800002d305ac 0xffff800002d305ac is in kasan_test.ko Signed-off-by: Kuan-Ying Lee --- scripts/gdb/linux/modules.py | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/scripts/gdb/linux/modules.py b/scripts/gdb/linux/modules.py index f76a43bfa15f..298dfcc25eae 100644 --- a/scripts/gdb/linux/modules.py +++ b/scripts/gdb/linux/modules.py @@ -97,5 +97,35 @@ class LxLsmod(gdb.Command): gdb.write("\n") - LxLsmod() + +def help(): + t = """Usage: lx-getmod-by-textaddr [Heximal Address] + Example: lx-getmod-by-textaddr 0xffff800002d305ac\n""" + gdb.write("Unrecognized command\n") + raise gdb.GdbError(t) + +class LxFindTextAddrinMod(gdb.Command): + '''Look up loaded kernel module by text address.''' + + def __init__(self): + super(LxFindTextAddrinMod, self).__init__('lx-getmod-by-textaddr', gdb.COMMAND_SUPPORT) + + def invoke(self, arg, from_tty): + args = gdb.string_to_argv(arg) + + if len(args) != 1: + help() + + addr = gdb.Value(int(args[0], 16)).cast(utils.get_ulong_type()) + for mod in module_list(): + mod_text_start = mod['mem'][constants.LX_MOD_TEXT]['base'] + mod_text_end = mod_text_start + mod['mem'][constants.LX_MOD_TEXT]['size'].cast(utils.get_ulong_type()) + + if addr >= mod_text_start and addr < mod_text_end: + s = "0x%x" % addr + " is in " + mod['name'].string() + ".ko\n" + gdb.write(s) + return + gdb.write("0x%x is not in any module text section\n" % addr) + +LxFindTextAddrinMod()