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 1FBBA3858409; Tue, 9 Jan 2024 20:02:46 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 1FBBA3858409 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 1FBBA3858409 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=1704830568; cv=none; b=Ssd7c7JH5FNV9iFlV+GMKQVU7GMSmJz9FbhhG6NEF+w9x12s7/CFx9GToFlTXsmylZcp7ugVIN1AYlKKX8+Qr/Vcb/mIiZ3lmnIjHtzRQG/HqDLhbN5y/54Utet/Hc/BFXO/V9qQKvl4xMKyoQP0L0j7+4vLEK4ZcAw1zdGx2Xs= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1704830568; c=relaxed/simple; bh=KJR7KMKzJn4/BN/c7WIL0qftDxSB80tgXamZchjBOcg=; h=Message-ID:Date:MIME-Version:Subject:To:From; b=KEVjhA+PvZxbwnXH2vSdqMaqkYulqXfscQ5EgAY1w9GJ69YCWUrFhhpHzF3tGuSWt0uLLP+gRzTAT99m7eGsdO580n8YmE5Vjrjj5XSxuvBssrCXSrQl+5GCwl2Q2Q/ZyMFD4UFH4OdffwjlcOoMDa8P+dc2Fpw3IHrfJuM2Yo4= 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 4DE1570083D; Tue, 9 Jan 2024 21:02:44 +0100 (CET) Content-Type: multipart/mixed; boundary="------------KEUFnx2C6gyKktXZ9yXhygnU" Message-ID: Date: Tue, 9 Jan 2024 21:02:44 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 6/4] libbacktrace: Add loaded dlls after initialize To: Eli Zaretskii Cc: iant@google.com, 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> <863fd658-11e9-455e-9def-8a95217bc98f@hazardy.de> <83bk9xsklk.fsf@gnu.org> <4cb3a2a5-c0b3-40c8-b460-f21d65a9aea2@hazardy.de> <83ttnpqk0g.fsf@gnu.org> <4630f8bb-5859-483e-9db3-e09e4cb46ecf@hazardy.de> <83msthqdmx.fsf@gnu.org> Content-Language: de-DE, en-US From: =?UTF-8?Q?Bj=C3=B6rn_Sch=C3=A4pers?= In-Reply-To: <83msthqdmx.fsf@gnu.org> X-Spam-Status: No, score=-12.6 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. --------------KEUFnx2C6gyKktXZ9yXhygnU Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Am 07.01.2024 um 18:03 schrieb Eli Zaretskii: >> Date: Sun, 7 Jan 2024 17:07:06 +0100 >> Cc: iant@google.com, gcc-patches@gcc.gnu.org, gcc@gcc.gnu.org >> From: Björn Schäpers >> >>> That was about GetModuleHandle, not about GetModuleHandleEx. For the >>> latter, all Windows versions that support it also support "wide" APIs. >>> So my suggestion is to use GetModuleHandleExW here. However, you will >>> need to make sure that notification_data->dll_base is declared as >>> 'wchar_t *', not 'char *'. If dll_base is declared as 'char *', then >>> only GetModuleHandleExA will work, and you will lose the ability to >>> support file names with non-ASCII characters outside of the current >>> system codepage. >> >> The dll_base is a PVOID. With the GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS flag >> GetModuleHandleEx does not look for a name, but uses an adress in the module to >> get the HMODULE, so you cast it to char* or wchar_t* depending on which function >> you call. Actually one could just cast the dll_base to HMODULE, at least in >> win32 on x86 the HMODULE of a dll is always its base adress. But to make it >> safer and future proof I went the way through GetModuleHandeEx. > > In that case, you an call either GetModuleHandeExA or > GetModuleHandeExW, the difference is minor. Here an updated version without relying on TEXT or TCHAR, directly calling GetModuleHandleExW. Kind regards, Björn. --------------KEUFnx2C6gyKktXZ9yXhygnU 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 RnJvbSBhOGUxZTY0Y2NiNTYxNThlYzhhN2U1ZGUwZDUyMjhmM2Y2ZjdlNWM0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Qmo9QzM9QjZybj0yMFNjaD1DMz1B NHBlcnM/PSA8YmpvZXJuQGhhemFyZHkuZGU+CkRhdGU6IFNhdCwgNiBKYW4gMjAyNCAyMjo1 Mzo1NCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMy8zXSBsaWJiYWNrdHJhY2U6IEFkZCBsb2Fk ZWQgZGxscyBhZnRlciBpbml0aWFsaXplCgpsaWJiYWNrdHJhY2UvQ2hhbmdlbG9nOgoKCSog cGVjb2ZmLmMgW0hBVkVfV0lORE9XU19IXToKCSAgKGRsbF9ub3RpZmljYXRpb25fZGF0YSk6 IEFkZGVkCgkgIChkbGxfbm90aWZpY2F0aW9uX2NvbnRleHQpOiBBZGRlZAoJICAoZGxsX25v dGlmaWNhdGlvbik6IEFkZGVkCgkgIChiYWNrdHJhY2VfaW5pdGlhbGl6ZSk6IFVzZSBMZHJS ZWdpc3RlckRsbE5vdGlmaWNhdGlvbiB0byBsb2FkCgkgICAgICAgICAgICAgICAgICAgICAg ICAgIGRlYnVnIGluZm9ybWF0aW9uIG9mIGxhdGVyIGxvYWRlZAoJICAgICAgICAgICAgICAg ICAgICAgICAgICBkbGxzLgotLS0KIGxpYmJhY2t0cmFjZS9wZWNvZmYuYyB8IDEwNCArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KIDEgZmlsZSBjaGFuZ2Vk LCAxMDMgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2xpYmJh Y2t0cmFjZS9wZWNvZmYuYyBiL2xpYmJhY2t0cmFjZS9wZWNvZmYuYwppbmRleCA2NDdiYWEz OTY0MC4uZDk3M2EyNmYwNWEgMTAwNjQ0Ci0tLSBhL2xpYmJhY2t0cmFjZS9wZWNvZmYuYwor KysgYi9saWJiYWNrdHJhY2UvcGVjb2ZmLmMKQEAgLTYyLDYgKzYyLDM0IEBAIFBPU1NJQklM SVRZIE9GIFNVQ0ggREFNQUdFLiAgKi8KICN1bmRlZiBNb2R1bGUzMk5leHQKICNlbmRpZgog I2VuZGlmCisKKyNpZiBkZWZpbmVkKF9BUk1fKQorI2RlZmluZSBOVEFQSQorI2Vsc2UKKyNk ZWZpbmUgTlRBUEkgX19zdGRjYWxsCisjZW5kaWYKKworLyogVGhpcyBpcyBhIHNpbXBsaWZp ZWQgKGJ1dCBiaW5hcnkgY29tcGF0aWJsZSkgdmVyc2lvbiBvZiB3aGF0IE1pY3Jvc29mdAor ICAgZGVmaW5lcyBpbiB0aGVpciBkb2N1bWVudGF0aW9uLiAqLworc3RydWN0IGRsbF9ub3Rp ZmNhdGlvbl9kYXRhCit7CisgIFVMT05HIHJlc2VydmVkOworICAvKiBUaGUgbmFtZSBhcyBV TklDT0RFX1NUUklORyBzdHJ1Y3QuICovCisgIFBWT0lEIGZ1bGxfZGxsX25hbWU7CisgIFBW T0lEIGJhc2VfZGxsX25hbWU7CisgIFBWT0lEIGRsbF9iYXNlOworICBVTE9ORyBzaXplX29m X2ltYWdlOworfTsKKworI2RlZmluZSBMRFJfRExMX05PVElGSUNBVElPTl9SRUFTT05fTE9B REVEIDEKKwordHlwZWRlZiBMT05HIE5UU1RBVFVTOwordHlwZWRlZiBWT0lEIENBTExCQUNL ICgqTERSX0RMTF9OT1RJRklDQVRJT04pKFVMT05HLAorCQkJCQkgICAgICBzdHJ1Y3QgZGxs X25vdGlmY2F0aW9uX2RhdGEqLAorCQkJCQkgICAgICBQVk9JRCk7Cit0eXBlZGVmIE5UU1RB VFVTIE5UQVBJICgqTERSX1JFR0lTVEVSX0ZVTkNUSU9OKShVTE9ORywKKwkJCQkJCUxEUl9E TExfTk9USUZJQ0FUSU9OLCBQVk9JRCwKKwkJCQkJCVBWT0lEKik7CiAjZW5kaWYKIAogLyog Q29mZiBmaWxlIGhlYWRlci4gICovCkBAIC05MTIsNyArOTQwLDggQEAgY29mZl9hZGQgKHN0 cnVjdCBiYWNrdHJhY2Vfc3RhdGUgKnN0YXRlLCBpbnQgZGVzY3JpcHRvciwKICAgcmV0dXJu IDA7CiB9CiAKLSNpZiBkZWZpbmVkKEhBVkVfV0lORE9XU19IKSAmJiAhZGVmaW5lZChIQVZF X1RMSEVMUDMyX0gpCisjaWZkZWYgSEFWRV9XSU5ET1dTX0gKKyNpZm5kZWYgSEFWRV9UTEhF TFAzMl9ICiBzdGF0aWMgdm9pZAogZnJlZV9tb2R1bGVzIChzdHJ1Y3QgYmFja3RyYWNlX3N0 YXRlICpzdGF0ZSwKIAkgICAgICBiYWNrdHJhY2VfZXJyb3JfY2FsbGJhY2sgZXJyb3JfY2Fs bGJhY2ssIHZvaWQgKmRhdGEsCkBAIC05NTgsNiArOTg3LDUxIEBAIGdldF9hbGxfbW9kdWxl cyAoc3RydWN0IGJhY2t0cmFjZV9zdGF0ZSAqc3RhdGUsCiAgICAgfQogfQogI2VuZGlmCitz dHJ1Y3QgZGxsX25vdGlmaWNhdGlvbl9jb250ZXh0Cit7CisgIHN0cnVjdCBiYWNrdHJhY2Vf c3RhdGUgKnN0YXRlOworICBiYWNrdHJhY2VfZXJyb3JfY2FsbGJhY2sgZXJyb3JfY2FsbGJh Y2s7CisgIHZvaWQgKmRhdGE7Cit9OworCitWT0lEIENBTExCQUNLCitkbGxfbm90aWZpY2F0 aW9uIChVTE9ORyByZWFzb24sCitzdHJ1Y3QgZGxsX25vdGlmY2F0aW9uX2RhdGEgKm5vdGlm aWNhdGlvbl9kYXRhLAorUFZPSUQgY29udGV4dCkKK3sKKyAgY2hhciBtb2R1bGVfbmFtZVtN QVhfUEFUSF07CisgIGludCBkZXNjcmlwdG9yOworICBzdHJ1Y3QgZGxsX25vdGlmaWNhdGlv bl9jb250ZXh0KiBkbGxfY29udGV4dCA9CisgICAgKHN0cnVjdCBkbGxfbm90aWZpY2F0aW9u X2NvbnRleHQqKSBjb250ZXh0OworICBzdHJ1Y3QgYmFja3RyYWNlX3N0YXRlICpzdGF0ZSA9 IGRsbF9jb250ZXh0LT5zdGF0ZTsKKyAgdm9pZCAqZGF0YSA9IGRsbF9jb250ZXh0LT5kYXRh OworICBiYWNrdHJhY2VfZXJyb3JfY2FsbGJhY2sgZXJyb3JfY2FsbGJhY2sgPSBkbGxfY29u dGV4dC0+ZGF0YTsKKyAgZmlsZWxpbmUgZmlsZWxpbmU7CisgIGludCBmb3VuZF9zeW07Cisg IGludCBmb3VuZF9kd2FyZjsKKyAgSE1PRFVMRSBtb2R1bGVfaGFuZGxlOworCisgIGlmIChy ZWFzb24gIT0gTERSX0RMTF9OT1RJRklDQVRJT05fUkVBU09OX0xPQURFRCkKKyAgICByZXR1 cm47CisKKyAgaWYgKCFHZXRNb2R1bGVIYW5kbGVFeFcgKEdFVF9NT0RVTEVfSEFORExFX0VY X0ZMQUdfRlJPTV9BRERSRVNTCisJCQkgICB8IEdFVF9NT0RVTEVfSEFORExFX0VYX0ZMQUdf VU5DSEFOR0VEX1JFRkNPVU5ULAorCQkJICAgKHdjaGFyX3QqKSBub3RpZmljYXRpb25fZGF0 YS0+ZGxsX2Jhc2UsCisJCQkgICAmbW9kdWxlX2hhbmRsZSkpCisgICAgcmV0dXJuOworCisg IGlmICghR2V0TW9kdWxlRmlsZU5hbWVBICgoSE1PRFVMRSkgbW9kdWxlX2hhbmRsZSwgbW9k dWxlX25hbWUsIE1BWF9QQVRIIC0gMSkpCisgICAgcmV0dXJuOworCisgIGRlc2NyaXB0b3Ig PSBiYWNrdHJhY2Vfb3BlbiAobW9kdWxlX25hbWUsIGVycm9yX2NhbGxiYWNrLCBkYXRhLCBO VUxMKTsKKworICBpZiAoZGVzY3JpcHRvciA8IDApCisgICAgcmV0dXJuOworCisgIGNvZmZf YWRkIChzdGF0ZSwgZGVzY3JpcHRvciwgZXJyb3JfY2FsbGJhY2ssIGRhdGEsICZmaWxlbGlu ZSwgJmZvdW5kX3N5bSwKKwkgICAgJmZvdW5kX2R3YXJmLCAodWludHB0cl90KSBtb2R1bGVf aGFuZGxlKTsKK30KKyNlbmRpZgogCiAvKiBJbml0aWFsaXplIHRoZSBiYWNrdHJhY2UgZGF0 YSB3ZSBuZWVkIGZyb20gYW4gRUxGIGV4ZWN1dGFibGUuICBBdAogICAgdGhlIEVMRiBsZXZl bCwgYWxsIHdlIG5lZWQgdG8gZG8gaXMgZmluZCB0aGUgZGVidWcgaW5mbwpAQCAtOTc4LDYg KzEwNTIsNyBAQCBiYWNrdHJhY2VfaW5pdGlhbGl6ZSAoc3RydWN0IGJhY2t0cmFjZV9zdGF0 ZSAqc3RhdGUsCiAjaWZkZWYgSEFWRV9XSU5ET1dTX0gKICAgZmlsZWxpbmUgbW9kdWxlX2Zp bGVsaW5lX2ZuOwogICBpbnQgbW9kdWxlX2ZvdW5kX3N5bTsKKyAgSE1PRFVMRSBudF9kbGxf aGFuZGxlOwogCiAjaWZkZWYgSEFWRV9UTEhFTFAzMl9ICiAgIEhBTkRMRSBzbmFwc2hvdDsK QEAgLTEwNjUsNiArMTE0MCwzMyBAQCBiYWNrdHJhY2VfaW5pdGlhbGl6ZSAoc3RydWN0IGJh Y2t0cmFjZV9zdGF0ZSAqc3RhdGUsCiAgIGlmIChtb2R1bGVzKQogICAgIGZyZWVfbW9kdWxl cyAoc3RhdGUsIGVycm9yX2NhbGxiYWNrLCBkYXRhLCAmbW9kdWxlcywgYnl0ZXNfYWxsb2Nh dGVkX2Zvcl9tb2R1bGVzKTsKICNlbmRpZgorCisgIG50X2RsbF9oYW5kbGUgPSBHZXRNb2R1 bGVIYW5kbGVXIChMIm50ZGxsLmRsbCIpOworICBpZiAobnRfZGxsX2hhbmRsZSkKKyAgICB7 CisgICAgICBMRFJfUkVHSVNURVJfRlVOQ1RJT04gcmVnaXN0ZXJfZnVuYzsKKyAgICAgIGNv bnN0IGNoYXIgcmVnaXN0ZXJfbmFtZVtdID0gIkxkclJlZ2lzdGVyRGxsTm90aWZpY2F0aW9u IjsKKyAgICAgIHJlZ2lzdGVyX2Z1bmMgPSAoTERSX1JFR0lTVEVSX0ZVTkNUSU9OKSBHZXRQ cm9jQWRkcmVzcyAobnRfZGxsX2hhbmRsZSwKKwkJCQkJCQkgICAgICByZWdpc3Rlcl9uYW1l KTsKKworICAgICAgaWYgKHJlZ2lzdGVyX2Z1bmMpCisJeworCSAgUFZPSUQgY29va2llOwor CSAgc3RydWN0IGRsbF9ub3RpZmljYXRpb25fY29udGV4dCAqY29udGV4dAorCSAgICA9IGJh Y2t0cmFjZV9hbGxvYyAoc3RhdGUsCisJCQkgICAgICAgc2l6ZW9mKHN0cnVjdCBkbGxfbm90 aWZpY2F0aW9uX2NvbnRleHQpLAorCQkJICAgICAgIGVycm9yX2NhbGxiYWNrLCBkYXRhKTsK KworCSAgaWYgKGNvbnRleHQpCisJICAgIHsKKwkgICAgICBjb250ZXh0LT5zdGF0ZSA9IHN0 YXRlOworCSAgICAgIGNvbnRleHQtPmRhdGEgPSBkYXRhOworCSAgICAgIGNvbnRleHQtPmVy cm9yX2NhbGxiYWNrID0gZXJyb3JfY2FsbGJhY2s7CisKKwkgICAgICByZWdpc3Rlcl9mdW5j ICgwLCAmZGxsX25vdGlmaWNhdGlvbiwgY29udGV4dCwgJmNvb2tpZSk7CisJICAgIH0KKwl9 CisgICAgfQogI2VuZGlmCiAKICAgaWYgKCFzdGF0ZS0+dGhyZWFkZWQpCi0tIAoyLjQyLjEK Cg== --------------KEUFnx2C6gyKktXZ9yXhygnU--