From patchwork Tue Jul 25 09:34:52 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: 13326204 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 4793FC0015E for ; Tue, 25 Jul 2023 09:36:00 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A6B6C8D0005; Tue, 25 Jul 2023 05:35:59 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id A1B288D0003; Tue, 25 Jul 2023 05:35:59 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 90ACE8D0005; Tue, 25 Jul 2023 05:35:59 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 724728D0003 for ; Tue, 25 Jul 2023 05:35:59 -0400 (EDT) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 3126D1A0D2A for ; Tue, 25 Jul 2023 09:35:59 +0000 (UTC) X-FDA: 81049627638.12.8627FE1 Received: from mailgw02.mediatek.com (mailgw02.mediatek.com [216.200.240.185]) by imf27.hostedemail.com (Postfix) with ESMTP id 8B7AD4000D for ; Tue, 25 Jul 2023 09:35:56 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=mediatek.com header.s=dk header.b=e9a7c3J8; dmarc=pass (policy=quarantine) header.from=mediatek.com; spf=pass (imf27.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=1690277757; 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=8C8olInZ2U2OjphX9pSmDTmiExKe1b/NUHKYXQxINTw=; b=1Wl6+RIPxSO8TsEg1tF24hwkuycDzATnKHfr1LPKUtieEHATkgHqaVhgX4EbFbo1mxcFve P2MOZ72rTl3meUn5XRiLFpgbkYmAIC0L0jpuhUgiZ9j/BdqW7QziUs9wLTwmNQT0wGdelf fFR9ZnH8nC+JpLajC1qKg+A6DQWDTxw= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=mediatek.com header.s=dk header.b=e9a7c3J8; dmarc=pass (policy=quarantine) header.from=mediatek.com; spf=pass (imf27.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=1690277757; a=rsa-sha256; cv=none; b=nV16oAr4JpWrNPh7AJn6cFtcz7O3U7smMKde+WDPUWUeMwno5B4PNtxhd9h/sVHa80LUI9 dQvDnGPJBPrjP0eP6+P4/9UA4U3zddmBAFjsaADI7qKt8gJPmqil03sBIYDsR/hiquY7gX c1OpY8O2slajG0KCpnT8a78i6t0tQ2s= X-UUID: a28e8e0c2ace11ee83ed1395ce914268-20230725 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=8C8olInZ2U2OjphX9pSmDTmiExKe1b/NUHKYXQxINTw=; b=e9a7c3J8ZMyiZv87hpnff3+7M2HOoIlM11mOshOBFtJmgYgMhvPjacktFlca995qYwFNtRn4JYMdUJMLBQjLVFphaW0/PwEpa3GdIhaBHJ+ZRSD7Xg0wD4bLCyNNS6SoUY/Bl44cHB8R9uPPEDIfLzu9U3D5pyIwJgeOm88aPeQ=; X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.1.29,REQID:ff05a3a9-c3b0-4911-9a7b-a7033d150c80,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:e7562a7,CLOUDID:e9244dd2-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: a28e8e0c2ace11ee83ed1395ce914268-20230725 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 1234229802; Tue, 25 Jul 2023 02:35:47 -0700 Received: from mtkmbs11n1.mediatek.inc (172.21.101.185) 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, 25 Jul 2023 17:35:26 +0800 Received: from mtksdccf07.mediatek.inc (172.21.84.99) by mtkmbs11n1.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.2.1118.26 via Frontend Transport; Tue, 25 Jul 2023 17:35:26 +0800 From: Kuan-Ying Lee To: Jan Kiszka , Kieran Bingham , Matthias Brugger , AngeloGioacchino Del Regno CC: , , , , , , , Kuan-Ying Lee , , Subject: [PATCH 2/8] scripts/gdb/modules: add get module text support Date: Tue, 25 Jul 2023 17:34:52 +0800 Message-ID: <20230725093458.30064-3-Kuan-Ying.Lee@mediatek.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20230725093458.30064-1-Kuan-Ying.Lee@mediatek.com> References: <20230725093458.30064-1-Kuan-Ying.Lee@mediatek.com> MIME-Version: 1.0 X-MTK: N X-Rspamd-Queue-Id: 8B7AD4000D X-Rspam-User: X-Rspamd-Server: rspam04 X-Stat-Signature: hz7xzpr1xb4a33k9t54i8mn7rsap3j56 X-HE-Tag: 1690277756-949676 X-HE-Meta: U2FsdGVkX1+tTndrVQJxcbsyNSFVSl1jMvZPvXV3+QNgvxNIe+E5WavzhN23yc3HrVcFQGhtDeTJIFIqma4bvBUwPhrcxdYkH6emFmS2HE4lSTPPfyXyCa7d47CVuRdJN8s1GdLQJFBmr6FLXk/PoO3/8Oq1BQXBjQodl0QI1Mog3qt2/o9A8DVhtom/39ZJuOURpYsaJB4dntkx2g3IXWY5F15hyFfk3b/Y8h+XeDqZMho60gS4BAHzlScXffsdY6XoKnO2MiG0a3guVVcsrJTkVHoLT3iM6GP1wWVHgotblXTSErp4NfGOBS67t5ksFFa8np4pu+z9ImDJrV1Dw95itnj3jBGvZWLOZsGznHN6UpSw1tBH6GTpaOQwXIDXuj66YZDKfmXp/ms4S+nrNrAOuIXfj81UqkuNHom6G3B+0sVydn2x0eclRQ3qivSKqWTOJMpMqVlOEmPGh0uLhC+6gwk9Sa0BVl+0mM4pKIn2lV3VwNcBxhy8S2E0246SwQHHTS6UfS3hnoc5ezIP2vnKFv/Bu3WnCT/hZahjO/MWXG291fryPath8rODOsn84yMG9+7wX+vgfqZq2HzwnrJLSxY+upks7O1hNc9f/ANxn9RRwaMC5smAUh+TqrChW2ldJnGFWjdsR5qnR1pV/Yaw2ujamNdfEXlYaYjKx+G1ZJW5IR1uu9RdfsqPuGvoiYdIo4kQ2Fgp89XBhai49MrfWVnbvNf10KuICalrMlsOGwWGte+k3Qj/pxGsx6rrl83ztfaFhdi915Lb9OxqG0aw4vDgryUYd8s5Zxa539IM1N+quhvz2PqDJGSJuQmiLSsm44E5J/isbE6jj9wi0kS3QYOet6drcswZ558bOJoLl1uneHM2JF5phwknpanA8Q/XqitxwOwvsbfAh6ES+XXMXssCrWwNF9JirF0fDSpH3A+OVj02GICuriHQJ/GwbFMvx5pZIkbUEWEVvm0 lxtJ2vWf MBIPLBcNIjNgbLNtvnq13yMHlm+qOdxMuzjcOmn9BFbnow6rRNUPsVgsIqze8R2MgiYcwHCW2hrZ/vUcWWsm4gSwh6zSHJ2nZq85undcyFAyPTwm+q19yTmYAUSN92dX9rK7WML5yChGbMsqFblaG4M0Ub4E1RcKJoGD43vbm8DcLpm3LxP++bmCPjSUM227434RQoEZklVvnrsK4+ueD76ArleSKtGutf/qhI50jntkDiqsVuO9l/AVV+g== 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 261f28640f4c..54bb7fcad41d 100644 --- a/scripts/gdb/linux/modules.py +++ b/scripts/gdb/linux/modules.py @@ -91,5 +91,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()