From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 58653 invoked by alias); 1 Feb 2016 22:23:35 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 58504 invoked by uid 89); 1 Feb 2016 22:23:33 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.9 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_LOW,RP_MATCHES_RCVD,SPF_PASS autolearn=ham version=3.3.2 spammy=353, 401, exporting, compromises X-HELO: mail-vk0-f49.google.com Received: from mail-vk0-f49.google.com (HELO mail-vk0-f49.google.com) (209.85.213.49) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Mon, 01 Feb 2016 22:23:30 +0000 Received: by mail-vk0-f49.google.com with SMTP id e6so85701768vkh.2 for ; Mon, 01 Feb 2016 14:23:29 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-type; bh=93TWoqer5TfF2D4MdBI1vtwdCYzb+Uzqy8m5gErBVkM=; b=l8GfUUT3K+XzK4q92f4JmVSjABv9DhP2g3LU3LveXeU9rDBbyH5cuNHthpymMYsavu vGQ9Lt41w+U/2EOWXlY6u96iXU3n/Sas5yOTO446sRjotDhIYmtfj0G/Uj5fsFT7Si2a JI9DCGTe/zWO0zFPk5YdDW3ZRoeQcQFSaYtCJ8luIbH3cJaDib5jEQ4H2P1udVGYJoMF z5C+ulxZzD9mUI8xS0+E4ug9tGD/eXjUY9UmBAiIa7xKHJ9/qGgMhrydY5j5yBgXvbP4 aYMkKB9W7r4w+4HWaIOhSgaLog3SUL49crsB+/EA+4rTmevZs3VU6o5Lcfa8Jb7ME1N8 adXQ== X-Gm-Message-State: AG10YOR+X+fN+MSWG0+0ISB7LwVbMKQJ9IMH+rPMkiW/s5xLpFsgTL5FiNKJ/mO4O7NPoriLBKgFkYtfiCucfAZo X-Received: by 10.31.159.136 with SMTP id i130mr17916334vke.144.1454365407639; Mon, 01 Feb 2016 14:23:27 -0800 (PST) MIME-Version: 1.0 Received: by 10.31.148.216 with HTTP; Mon, 1 Feb 2016 14:22:47 -0800 (PST) In-Reply-To: <1454276692-7119-3-git-send-email-alnovak@suse.cz> References: <1454276692-7119-1-git-send-email-alnovak@suse.cz> <1454276692-7119-3-git-send-email-alnovak@suse.cz> From: Doug Evans Date: Mon, 01 Feb 2016 22:23:00 -0000 Message-ID: Subject: Re: [PATCH 2/4] Add Jeff Mahoney's py-crash patches. To: Ales Novak Cc: gdb-patches Content-Type: text/plain; charset=UTF-8 X-IsSubscribed: yes X-SW-Source: 2016-02/txt/msg00029.txt.bz2 On Sun, Jan 31, 2016 at 1:44 PM, Ales Novak wrote: > --- > gdb/Makefile.in | 12 ++ > gdb/python/py-minsymbol.c | 353 +++++++++++++++++++++++++++++++++++++ > gdb/python/py-objfile.c | 29 +++- > gdb/python/py-section.c | 401 +++++++++++++++++++++++++++++++++++++++++++ > gdb/python/py-symbol.c | 52 ++++-- > gdb/python/python-internal.h | 14 ++ > gdb/python/python.c | 7 +- > 7 files changed, 853 insertions(+), 15 deletions(-) > create mode 100644 gdb/python/py-minsymbol.c > create mode 100644 gdb/python/py-section.c Hi. Part of what this patch is doing is exporting bfd to python. E.g., all the SEC_* constants. As a rule we absolutely discourage people from using bfd outside of the the binutils+gdb source tree. Either this rule needs to change, or I don't think we can allow this patch. I'd be interested to hear what others in the community think. For myself, I would much rather export ELF separately (e.g., a separate python API one can use independent of any particular tool, including gdb), and then have gdb provide the necessary glue to use this API. [I can imagine some compromises being needed, at least for now; e.g., it'd be cumbersome to read in all ELF symbols twice. But fixing that is just an optimization.] > ... > + if (PyModule_AddIntConstant (gdb_module, "SEC_NO_FLAGS", SEC_NO_FLAGS) < 0 > + || PyModule_AddIntConstant (gdb_module, "SEC_ALLOC", SEC_ALLOC) < 0 > + || PyModule_AddIntConstant (gdb_module, "SEC_LOAD", SEC_LOAD) < 0 > + || PyModule_AddIntConstant (gdb_module, "SEC_RELOC", SEC_RELOC) < 0 > + || PyModule_AddIntConstant (gdb_module, "SEC_READONLY", SEC_READONLY) < 0 > + || PyModule_AddIntConstant (gdb_module, "SEC_CODE", SEC_CODE) < 0 > + || PyModule_AddIntConstant (gdb_module, "SEC_DATA", SEC_DATA) < 0 > + || PyModule_AddIntConstant (gdb_module, "SEC_ROM", SEC_ROM) < 0 > + || PyModule_AddIntConstant (gdb_module, "SEC_CONSTRUCTOR", > + SEC_CONSTRUCTOR) < 0 > + || PyModule_AddIntConstant (gdb_module, "SEC_HAS_CONTENTS", > + SEC_HAS_CONTENTS) < 0 > + || PyModule_AddIntConstant (gdb_module, "SEC_NEVER_LOAD", > + SEC_NEVER_LOAD) < 0 > + || PyModule_AddIntConstant (gdb_module, "SEC_THREAD_LOCAL", > + SEC_THREAD_LOCAL) < 0 > + || PyModule_AddIntConstant (gdb_module, "SEC_HAS_GOT_REF", > + SEC_HAS_GOT_REF) < 0 > + || PyModule_AddIntConstant (gdb_module, "SEC_IS_COMMON", > + SEC_IS_COMMON) < 0 > + || PyModule_AddIntConstant (gdb_module, "SEC_DEBUGGING", > + SEC_DEBUGGING) < 0 > + || PyModule_AddIntConstant (gdb_module, "SEC_IN_MEMORY", > + SEC_IN_MEMORY) < 0 > + || PyModule_AddIntConstant (gdb_module, "SEC_EXCLUDE", SEC_EXCLUDE) < 0 > + || PyModule_AddIntConstant (gdb_module, "SEC_SORT_ENTRIES", > + SEC_SORT_ENTRIES) < 0 > + || PyModule_AddIntConstant (gdb_module, "SEC_LINK_ONCE", > + SEC_LINK_ONCE) < 0 > + || PyModule_AddIntConstant (gdb_module, "SEC_LINK_DUPLICATES", > + SEC_LINK_DUPLICATES) < 0 > + || PyModule_AddIntConstant (gdb_module, "SEC_LINK_DUPLICATES_DISCARD", > + SEC_LINK_DUPLICATES_DISCARD) < 0 > + || PyModule_AddIntConstant (gdb_module, "SEC_LINK_DUPLICATES_ONE_ONLY", > + SEC_LINK_DUPLICATES_ONE_ONLY) < 0 > + || PyModule_AddIntConstant (gdb_module, "SEC_LINK_DUPLICATES_SAME_SIZE", > + SEC_LINK_DUPLICATES_SAME_SIZE) < 0 > + || PyModule_AddIntConstant (gdb_module, "SEC_LINKER_CREATED", > + SEC_LINKER_CREATED) < 0 > + || PyModule_AddIntConstant (gdb_module, "SEC_KEEP", SEC_KEEP) < 0 > + || PyModule_AddIntConstant (gdb_module, "SEC_SMALL_DATA", > + SEC_SMALL_DATA) < 0 > + || PyModule_AddIntConstant (gdb_module, "SEC_MERGE", SEC_MERGE) < 0 > + || PyModule_AddIntConstant (gdb_module, "SEC_STRNGS", SEC_STRINGS) < 0 > + || PyModule_AddIntConstant (gdb_module, "SEC_GROUP", SEC_GROUP) < 0 > + || PyModule_AddIntConstant (gdb_module, "SEC_COFF_SHARED_LIBRARY", > + SEC_COFF_SHARED_LIBRARY) < 0 > + || PyModule_AddIntConstant (gdb_module, "SEC_ELF_REVERSE_COPY", > + SEC_ELF_REVERSE_COPY) < 0 > + || PyModule_AddIntConstant (gdb_module, "SEC_COFF_SHARED", > + SEC_COFF_SHARED) < 0 > + || PyModule_AddIntConstant (gdb_module, "SEC_COFF_NOREAD", > + SEC_COFF_NOREAD) < 0) > + return -1; > ...