From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.hazardy.de (mail.hazardy.de [78.94.181.132]) by sourceware.org (Postfix) with ESMTPS id A15E63860770; Sat, 6 Jan 2024 22:15:25 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org A15E63860770 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=hazardy.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=hazardy.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org A15E63860770 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=78.94.181.132 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1704579327; cv=none; b=Od09HIBhkgQaIBzR2H4fP3dlmoZ9Lt10fmdjHw0n2A4HynAyjrxmnsyjjfPL8pfy4W/R1tW9pDPTbIvM9GAikEedLFDrdFvX5mlkcMpChS4kEK6kgGsNDAn0aAU+hs2G52ATyjIWd0LNqg6aSDRshKZgeIzJ17UABQrplqVoox0= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1704579327; c=relaxed/simple; bh=bygjlOods6SAB75O6ifnXchoyjJ4qRqZ23UVudRwdD8=; h=Message-ID:Date:MIME-Version:Subject:From:To; b=LkH1sSLWpBQ/uRgIpBGVMhBRA0XeHiJtXu2Crs4jLgxnPHulsVWNeWUPPp4CfOW9xDhGfkoxendLj3XbcrFEc2B9Z68sjoBYKqvc5UJ29Iw7RrOyta4Swo7P+IC/r1+Yjmc8FzWm5H0/maVgISZRMp5CnCR0cVmJ7bpDEFFxXxY= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from [10.0.1.129] (hades.hazardy.de [10.0.1.129]) by mail.hazardy.de (Postfix) with ESMTPSA id 338C67002BE; Sat, 6 Jan 2024 23:15:24 +0100 (CET) Content-Type: multipart/mixed; boundary="------------1w0FoUhFWVet0cAw4TzPIJ10" Message-ID: <863fd658-11e9-455e-9def-8a95217bc98f@hazardy.de> Date: Sat, 6 Jan 2024 23:15:24 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 6/4] libbacktrace: Add loaded dlls after initialize From: =?UTF-8?Q?Bj=C3=B6rn_Sch=C3=A4pers?= To: Ian Lance Taylor Cc: gcc-patches@gcc.gnu.org, gcc@gcc.gnu.org References: <20230120105409.54949-1-gcc@hazardy.de> <20230120105409.54949-4-gcc@hazardy.de> <0c08e584-499f-473f-8699-a41c6a967536@hazardy.de> Content-Language: de-DE, en-US In-Reply-To: X-Spam-Status: No, score=-12.8 required=5.0 tests=BAYES_00,GIT_PATCH_0,KAM_DMARC_STATUS,SPF_HELO_NONE,SPF_PASS,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: This is a multi-part message in MIME format. --------------1w0FoUhFWVet0cAw4TzPIJ10 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Am 04.01.2024 um 23:33 schrieb Björn Schäpers: > Am 03.01.2024 um 00:12 schrieb Björn Schäpers: >> Am 30.11.2023 um 20:53 schrieb Ian Lance Taylor: >>> On Fri, Jan 20, 2023 at 2:55 AM Björn Schäpers wrote: >>>> >>>> From: Björn Schäpers >>>> >>>> Fixes https://github.com/ianlancetaylor/libbacktrace/issues/53, except >>>> that libraries loaded after the backtrace_initialize are not handled. >>>> But as far as I can see that's the same for elf. >>> >>> Thanks, but I don't want a patch that loops using goto statements. >>> Please rewrite to avoid that.  It may be simpler to call a function. >>> >>> Also starting with a module count of 1000 seems like a lot.  Do >>> typical Windows programs load that many modules? >>> >>> Ian >>> >>> >> >> Rewritten using a function. >> >> If that is commited, could you attribute that commit to me (--author="Björn >> Schäpers ")? >> >> Thanks and kind regards, >> Björn. > > I noticed that under 64 bit libraries loaded with LoadLibrary were missing. > EnumProcessModules stated the correct number of modules, but did not fill the > the HMODULEs, but set them to 0. While trying to investigate I noticed if I do > the very same thing from main (in C++) I even got fewer module HMODULEs. > > So I went a different way. This detects all libraries correctly, in 32 and 64 > bit. The question is, if it should be a patch on top of the previous, or should > they be merged, or even only this solution and drop the EnumProcessModules variant? > > Kind regards, > Björn. This patch adds libraries which are loaded after backtrace_initialize, like plugins or similar. I don't know what style is preferred for the Win32 typedefs, should the code use PVOID or void*? And I'm not sure I wrapped every long line correctly. Kind regards, Björn. --------------1w0FoUhFWVet0cAw4TzPIJ10 Content-Type: text/plain; charset=UTF-8; name="0005-libbacktrace-Add-loaded-dlls-after-initialize.patch" Content-Disposition: attachment; filename="0005-libbacktrace-Add-loaded-dlls-after-initialize.patch" Content-Transfer-Encoding: base64 RnJvbSAwMmU3NmU3MjdiOTVkYzIxZGMwN2QxZmU4NDI0YjY4ZTM3ZTkxYTgzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Qmo9QzM9QjZybj0yMFNjaD1DMz1B NHBlcnM/PSA8YmpvZXJuQGhhemFyZHkuZGU+CkRhdGU6IFNhdCwgNiBKYW4gMjAyNCAyMjo1 Mzo1NCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMy8zXSBsaWJiYWNrdHJhY2U6IEFkZCBsb2Fk ZWQgZGxscyBhZnRlciBpbml0aWFsaXplCgpsaWJiYWNrdHJhY2UvQ2hhbmdlbG9nOgoKCSog cGVjb2ZmLmMgW0hBVkVfV0lORE9XU19IXToKCSAgKGRsbF9ub3RpZmljYXRpb25fZGF0YSk6 IEFkZGVkCgkgIChkbGxfbm90aWZpY2F0aW9uX2NvbnRleHQpOiBBZGRlZAoJICAoZGxsX25v dGlmaWNhdGlvbik6IEFkZGVkCgkgIChiYWNrdHJhY2VfaW5pdGlhbGl6ZSk6IFVzZSBMZHJS ZWdpc3RlckRsbE5vdGlmaWNhdGlvbiB0byBsb2FkCgkgICAgICAgICAgICAgICAgICAgICAg ICAgIGRlYnVnIGluZm9ybWF0aW9uIG9mIGxhdGVyIGxvYWRlZAoJICAgICAgICAgICAgICAg ICAgICAgICAgICBkbGxzLgotLS0KIGxpYmJhY2t0cmFjZS9wZWNvZmYuYyB8IDEwMiArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KIDEgZmlsZSBjaGFuZ2Vk LCAxMDEgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2xpYmJh Y2t0cmFjZS9wZWNvZmYuYyBiL2xpYmJhY2t0cmFjZS9wZWNvZmYuYwppbmRleCA2NDdiYWEz OTY0MC4uYmZlMTJjYzJhMGEgMTAwNjQ0Ci0tLSBhL2xpYmJhY2t0cmFjZS9wZWNvZmYuYwor KysgYi9saWJiYWNrdHJhY2UvcGVjb2ZmLmMKQEAgLTYyLDYgKzYyLDMyIEBAIFBPU1NJQklM SVRZIE9GIFNVQ0ggREFNQUdFLiAgKi8KICN1bmRlZiBNb2R1bGUzMk5leHQKICNlbmRpZgog I2VuZGlmCisKKyNpZiBkZWZpbmVkKF9BUk1fKQorI2RlZmluZSBOVEFQSQorI2Vsc2UKKyNk ZWZpbmUgTlRBUEkgX19zdGRjYWxsCisjZW5kaWYKKworLyogVGhpcyBpcyBhIHNpbXBsaWZp ZWQgKGJ1dCBiaW5hcnkgY29tcGF0aWJsZSkgdmVyc2lvbiBvZiB3aGF0IE1pY3Jvc29mdAor ICAgZGVmaW5lcyBpbiB0aGVpciBkb2N1bWVudGF0aW9uLiAqLworc3RydWN0IGRsbF9ub3Rp ZmNhdGlvbl9kYXRhCit7CisgIFVMT05HIHJlc2VydmVkOworICAvKiBUaGUgbmFtZSBhcyBV TklDT0RFX1NUUklORyBzdHJ1Y3QuICovCisgIFBWT0lEIGZ1bGxfZGxsX25hbWU7CisgIFBW T0lEIGJhc2VfZGxsX25hbWU7CisgIFBWT0lEIGRsbF9iYXNlOworICBVTE9ORyBzaXplX29m X2ltYWdlOworfTsKKwordHlwZWRlZiBMT05HIE5UU1RBVFVTOwordHlwZWRlZiBWT0lEIENB TExCQUNLICgqTERSX0RMTF9OT1RJRklDQVRJT04pKFVMT05HLAorCQkJCQkgICAgICBzdHJ1 Y3QgZGxsX25vdGlmY2F0aW9uX2RhdGEqLAorCQkJCQkgICAgICBQVk9JRCk7Cit0eXBlZGVm IE5UU1RBVFVTIE5UQVBJICgqTERSX1JFR0lTVEVSX0ZVTkNUSU9OKShVTE9ORywKKwkJCQkJ CUxEUl9ETExfTk9USUZJQ0FUSU9OLCBQVk9JRCwKKwkJCQkJCVBWT0lEKik7CiAjZW5kaWYK IAogLyogQ29mZiBmaWxlIGhlYWRlci4gICovCkBAIC05MTIsNyArOTM4LDggQEAgY29mZl9h ZGQgKHN0cnVjdCBiYWNrdHJhY2Vfc3RhdGUgKnN0YXRlLCBpbnQgZGVzY3JpcHRvciwKICAg cmV0dXJuIDA7CiB9CiAKLSNpZiBkZWZpbmVkKEhBVkVfV0lORE9XU19IKSAmJiAhZGVmaW5l ZChIQVZFX1RMSEVMUDMyX0gpCisjaWZkZWYgSEFWRV9XSU5ET1dTX0gKKyNpZm5kZWYgSEFW RV9UTEhFTFAzMl9ICiBzdGF0aWMgdm9pZAogZnJlZV9tb2R1bGVzIChzdHJ1Y3QgYmFja3Ry YWNlX3N0YXRlICpzdGF0ZSwKIAkgICAgICBiYWNrdHJhY2VfZXJyb3JfY2FsbGJhY2sgZXJy b3JfY2FsbGJhY2ssIHZvaWQgKmRhdGEsCkBAIC05NTgsNiArOTg1LDUxIEBAIGdldF9hbGxf bW9kdWxlcyAoc3RydWN0IGJhY2t0cmFjZV9zdGF0ZSAqc3RhdGUsCiAgICAgfQogfQogI2Vu ZGlmCitzdHJ1Y3QgZGxsX25vdGlmaWNhdGlvbl9jb250ZXh0Cit7CisgIHN0cnVjdCBiYWNr dHJhY2Vfc3RhdGUgKnN0YXRlOworICBiYWNrdHJhY2VfZXJyb3JfY2FsbGJhY2sgZXJyb3Jf Y2FsbGJhY2s7CisgIHZvaWQgKmRhdGE7Cit9OworCitWT0lEIENBTExCQUNLCitkbGxfbm90 aWZpY2F0aW9uIChVTE9ORyByZWFzb24sCitzdHJ1Y3QgZGxsX25vdGlmY2F0aW9uX2RhdGEg Km5vdGlmaWNhdGlvbl9kYXRhLAorUFZPSUQgY29udGV4dCkKK3sKKyAgY2hhciBtb2R1bGVf bmFtZVtNQVhfUEFUSF07CisgIGludCBkZXNjcmlwdG9yOworICBzdHJ1Y3QgZGxsX25vdGlm aWNhdGlvbl9jb250ZXh0KiBkbGxfY29udGV4dCA9CisgICAgKHN0cnVjdCBkbGxfbm90aWZp Y2F0aW9uX2NvbnRleHQqKSBjb250ZXh0OworICBzdHJ1Y3QgYmFja3RyYWNlX3N0YXRlICpz dGF0ZSA9IGRsbF9jb250ZXh0LT5zdGF0ZTsKKyAgdm9pZCAqZGF0YSA9IGRsbF9jb250ZXh0 LT5kYXRhOworICBiYWNrdHJhY2VfZXJyb3JfY2FsbGJhY2sgZXJyb3JfY2FsbGJhY2sgPSBk bGxfY29udGV4dC0+ZGF0YTsKKyAgZmlsZWxpbmUgZmlsZWxpbmU7CisgIGludCBmb3VuZF9z eW07CisgIGludCBmb3VuZF9kd2FyZjsKKyAgSE1PRFVMRSBtb2R1bGVfaGFuZGxlOworCisg IGlmIChyZWFzb24gIT0gLypMRFJfRExMX05PVElGSUNBVElPTl9SRUFTT05fTE9BREVEKi8x KQorICAgIHJldHVybjsKKworICBpZiAoIUdldE1vZHVsZUhhbmRsZUV4IChHRVRfTU9EVUxF X0hBTkRMRV9FWF9GTEFHX0ZST01fQUREUkVTUworCQkJICB8IEdFVF9NT0RVTEVfSEFORExF X0VYX0ZMQUdfVU5DSEFOR0VEX1JFRkNPVU5ULAorCQkJICAoVENIQVIqKSBub3RpZmljYXRp b25fZGF0YS0+ZGxsX2Jhc2UsCisJCQkgICZtb2R1bGVfaGFuZGxlKSkKKyAgICByZXR1cm47 CisKKyAgaWYgKCFHZXRNb2R1bGVGaWxlTmFtZUEgKChITU9EVUxFKSBtb2R1bGVfaGFuZGxl LCBtb2R1bGVfbmFtZSwgTUFYX1BBVEggLSAxKSkKKyAgICByZXR1cm47CisKKyAgZGVzY3Jp cHRvciA9IGJhY2t0cmFjZV9vcGVuIChtb2R1bGVfbmFtZSwgZXJyb3JfY2FsbGJhY2ssIGRh dGEsIE5VTEwpOworCisgIGlmIChkZXNjcmlwdG9yIDwgMCkKKyAgICByZXR1cm47CisKKyAg Y29mZl9hZGQgKHN0YXRlLCBkZXNjcmlwdG9yLCBlcnJvcl9jYWxsYmFjaywgZGF0YSwgJmZp bGVsaW5lLCAmZm91bmRfc3ltLAorCSAgICAmZm91bmRfZHdhcmYsICh1aW50cHRyX3QpIG1v ZHVsZV9oYW5kbGUpOworfQorI2VuZGlmCiAKIC8qIEluaXRpYWxpemUgdGhlIGJhY2t0cmFj ZSBkYXRhIHdlIG5lZWQgZnJvbSBhbiBFTEYgZXhlY3V0YWJsZS4gIEF0CiAgICB0aGUgRUxG IGxldmVsLCBhbGwgd2UgbmVlZCB0byBkbyBpcyBmaW5kIHRoZSBkZWJ1ZyBpbmZvCkBAIC05 NzgsNiArMTA1MCw3IEBAIGJhY2t0cmFjZV9pbml0aWFsaXplIChzdHJ1Y3QgYmFja3RyYWNl X3N0YXRlICpzdGF0ZSwKICNpZmRlZiBIQVZFX1dJTkRPV1NfSAogICBmaWxlbGluZSBtb2R1 bGVfZmlsZWxpbmVfZm47CiAgIGludCBtb2R1bGVfZm91bmRfc3ltOworICBITU9EVUxFIG50 X2RsbF9oYW5kbGU7CiAKICNpZmRlZiBIQVZFX1RMSEVMUDMyX0gKICAgSEFORExFIHNuYXBz aG90OwpAQCAtMTA2NSw2ICsxMTM4LDMzIEBAIGJhY2t0cmFjZV9pbml0aWFsaXplIChzdHJ1 Y3QgYmFja3RyYWNlX3N0YXRlICpzdGF0ZSwKICAgaWYgKG1vZHVsZXMpCiAgICAgZnJlZV9t b2R1bGVzIChzdGF0ZSwgZXJyb3JfY2FsbGJhY2ssIGRhdGEsICZtb2R1bGVzLCBieXRlc19h bGxvY2F0ZWRfZm9yX21vZHVsZXMpOwogI2VuZGlmCisKKyAgbnRfZGxsX2hhbmRsZSA9IEdl dE1vZHVsZUhhbmRsZSAoVEVYVCAoIm50ZGxsLmRsbCIpKTsKKyAgaWYgKG50X2RsbF9oYW5k bGUpCisgICAgeworICAgICAgTERSX1JFR0lTVEVSX0ZVTkNUSU9OIHJlZ2lzdGVyX2Z1bmM7 CisgICAgICBjb25zdCBjaGFyIHJlZ2lzdGVyX25hbWVbXSA9ICJMZHJSZWdpc3RlckRsbE5v dGlmaWNhdGlvbiI7CisgICAgICByZWdpc3Rlcl9mdW5jID0gKExEUl9SRUdJU1RFUl9GVU5D VElPTikgR2V0UHJvY0FkZHJlc3MgKG50X2RsbF9oYW5kbGUsCisJCQkJCQkJICAgICAgcmVn aXN0ZXJfbmFtZSk7CisKKyAgICAgIGlmIChyZWdpc3Rlcl9mdW5jKQorCXsKKwkgIFBWT0lE IGNvb2tpZTsKKwkgIHN0cnVjdCBkbGxfbm90aWZpY2F0aW9uX2NvbnRleHQgKmNvbnRleHQK KwkgICAgPSBiYWNrdHJhY2VfYWxsb2MgKHN0YXRlLAorCQkJICAgICAgIHNpemVvZihzdHJ1 Y3QgZGxsX25vdGlmaWNhdGlvbl9jb250ZXh0KSwKKwkJCSAgICAgICBlcnJvcl9jYWxsYmFj aywgZGF0YSk7CisKKwkgIGlmIChjb250ZXh0KQorCSAgICB7CisJICAgICAgY29udGV4dC0+ c3RhdGUgPSBzdGF0ZTsKKwkgICAgICBjb250ZXh0LT5kYXRhID0gZGF0YTsKKwkgICAgICBj b250ZXh0LT5lcnJvcl9jYWxsYmFjayA9IGVycm9yX2NhbGxiYWNrOworCisJICAgICAgcmVn aXN0ZXJfZnVuYyAoMCwgJmRsbF9ub3RpZmljYXRpb24sIGNvbnRleHQsICZjb29raWUpOwor CSAgICB9CisJfQorICAgIH0KICNlbmRpZgogCiAgIGlmICghc3RhdGUtPnRocmVhZGVkKQot LSAKMi40Mi4xCgo= --------------1w0FoUhFWVet0cAw4TzPIJ10--