From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by sourceware.org (Postfix) with ESMTPS id 42CE03858D20 for ; Sun, 9 Jun 2024 16:58:47 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 42CE03858D20 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=redhat.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 42CE03858D20 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=170.10.129.124 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1717952329; cv=none; b=F7/7JGw8u9LjtkysN0aBA/a6iFWjNLRC6sb+sAJtG1ntOuuCYrp1eFEh5SQaGr+uOJ0RejF+bc1iwYyq6jZWT6aKCYikHqq26c2lmP5FmPjFvOVQqWopwr3QgVLo4sSn+fEuEJ1yCoq756F9bQZ7Lekt2uOgMxe1drTqVmrNw4o= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1717952329; c=relaxed/simple; bh=LpbiOSacSOA1o8Wwvw7ZtSLaikUrMTt+wTgwo1FjjhA=; h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To; b=XoON7xocBVzUFCDCaeFU1HUWVj69U4+phZe9U+i1ALdPbyolB8G0LzrTrVazIDpJzxXbInw8jq2fViFHWrIPgbKnDJ4EHJloKjNShUC1CKQaAlUmdRZbO5F0udLgEMtGdG/wcnHgm8qxRFnCRLrFJoOac9Jg0bw4XyYKpMOJG6Y= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1717952326; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=SElGval7Tmuf+dPX8R4WHvRmRAW1XFMgiEh8KUZqgRg=; b=UKZ0QnBgCmFpFmMqeJd9dVloqOf259vh35iaUAlq3Sm35/VpQ0/PS/0HkOsI+VzeV8ck++ TvgE6eanQ83pTBKNVF9mLAqLk5mQrVDFC8MM1SYWP3A8xgxH3sQu8MRss6wwZq3w1Vj1rm bR1n8jNjAkCiSewxI+NenhwM+8MACHE= Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com [209.85.214.197]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-519-a3z0M9HeM5qkxZ02rqefJg-1; Sun, 09 Jun 2024 12:58:44 -0400 X-MC-Unique: a3z0M9HeM5qkxZ02rqefJg-1 Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-1f64d422c9fso37967595ad.2 for ; Sun, 09 Jun 2024 09:58:44 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717952323; x=1718557123; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=SElGval7Tmuf+dPX8R4WHvRmRAW1XFMgiEh8KUZqgRg=; b=bVfWR9gzyvnaQqyIOCXLwwK73lDF66FhyGiyQN7DphyeHbC3ymJbz6f502To8G6d69 Xn7bRpKn1BWr+f7HmjclbZDrGWxj0DBt+uBsb2VhKNPwf63ssHBHAb5QItQe0hxE3ORt riRLlMsLgSvcfb6PqZgfEjCmXDn/8avlVCvV0OHP75+B6aUATp9DbrS+xMcyvAjNBtru ZuEN2pLWYpHgFifDv498o7t2+qx52apuGf93t1G9rQG/Daxh+OHbg/EiDN1Di5PgvMRw 8QGWdz1DpauMJ4En6kC1OnQZgwjmo1btmiiA84i2quXR+jCZzEnukzto/tNTSBQl5NZj 0kjQ== X-Gm-Message-State: AOJu0YyTOLuESoHAjrJ71g89++DCBLNlxYL3HiD1UnZMgf/zypJW8V8W NjpczscvW0udCY7KRSiQ4qjJpawBG3bLM6OthK75yJ0M1520RmImJSW1VlCPX9D/M2Qg8Gn7CVD v5jmXOzQxAlcMUZifDcKTgZlvVjWyr8vCgRDKX4UzKBBXzq9KUc8JSizlYszRxeATLYtXHxoUUb RLLPlwGTXbCdQ8XrJ8el2Suvlm+H3pjZOIwA== X-Received: by 2002:a17:902:e54e:b0:1f6:fe05:30e4 with SMTP id d9443c01a7336-1f6fe05334amr26929315ad.27.1717952323532; Sun, 09 Jun 2024 09:58:43 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGK+c00aDAXck8lMzkixuJPLNFYux9/WG29ekrFTXLwFzvq3Bmbg4EHNFcY2ZUjBCqIGEXcbAhvEDeG9m3Dj5o= X-Received: by 2002:a17:902:e54e:b0:1f6:fe05:30e4 with SMTP id d9443c01a7336-1f6fe05334amr26929195ad.27.1717952323068; Sun, 09 Jun 2024 09:58:43 -0700 (PDT) MIME-Version: 1.0 References: <20240607062934.5941-1-tdevries@suse.de> In-Reply-To: <20240607062934.5941-1-tdevries@suse.de> From: Alexandra Petlanova Hajkova Date: Sun, 9 Jun 2024 18:58:31 +0200 Message-ID: Subject: Re: [PATCH] [gdb/python] Fix gdb.python/py-disasm.exp on arm-linux To: Tom de Vries Cc: gdb-patches@sourceware.org X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/alternative; boundary="000000000000f540da061a77f1e1" X-Spam-Status: No, score=-10.2 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,HTML_MESSAGE,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_NONE,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --000000000000f540da061a77f1e1 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Fri, Jun 7, 2024 at 8:29=E2=80=AFAM Tom de Vries wrot= e: > After fixing test-case gdb.python/py-disasm.exp to recognize the arm nop: > ... > nop {0} > ... > we run into: > ... > disassemble test^M > Dump of assembler code for function test:^M > 0x004004d8 <+0>: push {r11} @ (str r11, [sp, #-4]!)^M > 0x004004dc <+4>: add r11, sp, #0^M > 0x004004e0 <+8>: nop {0}^M > =3D> 0x004004e4 <+12>: Python Exception : Buffer \ > returned from read_memory is sized 0 instead of the expected 4^M > ^M > unknown disassembler error (error =3D -1)^M > (gdb) FAIL: $exp: global_disassembler=3DShowInfoRepr: disassemble test > ... > > This is caused by this code in gdbpy_disassembler::read_memory_func: > ... > gdbpy_ref<> result_obj (PyObject_CallMethod ((PyObject *) obj, > "read_memory", > "KL", len, offset)); > ... > where len has type "unsigned int", and offset has type "LONGEST". > > Indeed L means "long long", but K means "unsigned long long". > > Fix this by using I instead, meaning "unsigned int". > > Tested on arm-linux. > > PR python/31845 > Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=3D31845 > --- > gdb/python/py-disasm.c | 2 +- > gdb/testsuite/gdb.python/py-disasm.exp | 2 +- > gdb/testsuite/gdb.python/py-disasm.py | 2 +- > 3 files changed, 3 insertions(+), 3 deletions(-) > > diff --git a/gdb/python/py-disasm.c b/gdb/python/py-disasm.c > index 2d8ce44a065..a545ec8d3cb 100644 > --- a/gdb/python/py-disasm.c > +++ b/gdb/python/py-disasm.c > @@ -855,7 +855,7 @@ gdbpy_disassembler::read_memory_func (bfd_vma memaddr, > gdb_byte *buff, > overridden by the user. */ > gdbpy_ref<> result_obj (PyObject_CallMethod ((PyObject *) obj, > "read_memory", > - "KL", len, offset)); > + "IL", len, offset)); > > /* Handle any exceptions. */ > if (result_obj =3D=3D nullptr) > diff --git a/gdb/testsuite/gdb.python/py-disasm.exp > b/gdb/testsuite/gdb.python/py-disasm.exp > index 7c6f972a7e7..5d7d9221169 100644 > --- a/gdb/testsuite/gdb.python/py-disasm.exp > +++ b/gdb/testsuite/gdb.python/py-disasm.exp > @@ -65,7 +65,7 @@ proc py_remove_all_disassemblers {} { > # > # Each different disassembler tests some different feature of the > # Python disassembler API. > -set nop "(nop|nop\t0)" > +set nop "(nop|nop\t0|[string_to_regexp nop\t{0}])" > set unknown_error_pattern "unknown disassembler error \\(error =3D -1\\)" > set addr_pattern "\r\n=3D> ${curr_pc_pattern} <\[^>\]+>:\\s+" > set base_pattern "${addr_pattern}${nop}" > diff --git a/gdb/testsuite/gdb.python/py-disasm.py > b/gdb/testsuite/gdb.python/py-disasm.py > index c09eae811ee..2741fdb6c19 100644 > --- a/gdb/testsuite/gdb.python/py-disasm.py > +++ b/gdb/testsuite/gdb.python/py-disasm.py > @@ -46,7 +46,7 @@ def check_building_disassemble_result(): > > > def is_nop(s): > - return s =3D=3D "nop" or s =3D=3D "nop\t0" > + return s =3D=3D "nop" or s =3D=3D "nop\t0" or s =3D=3D "nop\t{0}" > > > # Remove all currently registered disassemblers. > > base-commit: f9478936896ada7786e8d68622f6e6ff78b97b0d > -- > 2.35.3 > > Looks reasonable. Reviewed-By: Alexandra Petlanova Hajkova --000000000000f540da061a77f1e1--