From nobody Tue Nov 18 10:37:06 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1610431510; cv=none; d=zohomail.com; s=zohoarc; b=lxqFRxwv5PozI/aKM+zAwEXQeNRpTN38sFQwtKrrR4uadfZ1Tc60BBbB5SXxgUsmiT0Z3ze2dAQM7e+0qmQceTAmu9qpO8nX5CLzNp/lDVTmDYzHNrEKb6DEnaTj5CRI3TTOTJM0pWiE0HkHsVKqfotkzEvbqQheoVVOKjRr/so= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1610431510; h=Content-Type:Cc:Date:From:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:To; bh=hZvGw8+SK8Eg5VtMCKAJI7bdqdHom8U8ljdR9vtnkEc=; b=gveJVVZxe+Q+MBsYXM9pztFUJTbMPyX8AW9xaPTmpOekbmGig7XCrwIr4/2LPesZVWc/ZD7gz6GYtAPJygqAFNgMYoZ6XzMqPu5VEQXPp5K09bZne3pTMY0uobOGJQVLddkIkLcG6ireBLEGWUlPr8Ub++w7ypO5q64xDhI3RW4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1610431510955220.79237310268968; Mon, 11 Jan 2021 22:05:10 -0800 (PST) Received: from localhost ([::1]:34560 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kzCnk-0006gh-V3 for importer@patchew.org; Tue, 12 Jan 2021 01:05:08 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:55688) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kzBvk-0000tv-BP for qemu-devel@nongnu.org; Tue, 12 Jan 2021 00:09:20 -0500 Received: from mail-io1-xd35.google.com ([2607:f8b0:4864:20::d35]:46411) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kzBvf-0007nq-Kd for qemu-devel@nongnu.org; Tue, 12 Jan 2021 00:09:20 -0500 Received: by mail-io1-xd35.google.com with SMTP id 81so1464209ioc.13 for ; Mon, 11 Jan 2021 21:09:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to:cc; bh=hZvGw8+SK8Eg5VtMCKAJI7bdqdHom8U8ljdR9vtnkEc=; b=rV0SAC0pWeNvauvQq4c6fkm/nFSSXAx6rf0Z+kFB+bdmOAnXNfFfgsXV2YYJZ4EW87 +GkqKf7oycXOXN8pjsMjkkqDohbdSGGKHYG07ZwnnenZ81AtW0905f/ERRCfEzChck4v uIMg7tDUjrmT9a8ErmvkgH6391ec1f3D4iMtHfh9WdxPCWG3740JUUytgV30GYtkD8YV RNkVo0asqXOiBcNSvX2wLq8SKKG7H3QnAJkUMF8VaIWeJOgyPIRyXsF2P0tU+D437iD3 D8gGgHZm71NrVrewDTSgwEidpPSEa6TxIrgapB3CRJU3SJB3OT7lNj244o87XhXg5Pzi +EnA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to:cc; bh=hZvGw8+SK8Eg5VtMCKAJI7bdqdHom8U8ljdR9vtnkEc=; b=fuZMcd1St+BQUkgCnXqRJ6tCXBca6b2U5FyAqzUMlCDCZb0z+uQIlxA92llM/uC1vn 7z1zc1kz420NjZhtn4vKYt13xzEjuZXJ+XwzzguCdob/ynXE5zJqCQKI5mEqqYmvLyGG cWT2whsZ+1wc1ju0AeA7Va7oZeaW524dY6aEqNZ6rM3qlxIJL8zjchIynvLVtcL3a4Hl GpRzUD+lkxnpW07D92+0KUOz0VcSfqMZPXOWXuXDQpfigbT0hwZUOn1L+WQPVl/SjzmP 5JENkmLxtNFlCT+T8cwDkEALH6MT/b7gntTnSqC1KDu3IfXs2q1u9X8bXs5UGuh3bu0M Q3cw== X-Gm-Message-State: AOAM531MIRxUz20J/frWhsiQiTWyKs6ezjc5/AxHJxUJX8IG1bmmBCBY 7HRZDn+LDdUVzTlR0HwCctTue90vQeHF4tqumhZRIgYBSbo= X-Google-Smtp-Source: ABdhPJx0DZKxEfmwpO9uy36+6BUELF3p9G96dMJ+0Rv30mhh17GB6RSK0RxUtAXptQUKRv6qEm90Cs/CIRqzPi1VtEQ= X-Received: by 2002:a92:cec3:: with SMTP id z3mr2318260ilq.256.1610428153951; Mon, 11 Jan 2021 21:09:13 -0800 (PST) MIME-Version: 1.0 From: Kyle Zeng Date: Mon, 11 Jan 2021 22:09:03 -0700 Message-ID: Subject: [PATCH] Dump NT_FILE note when generate coredump To: qemu-devel@nongnu.org Content-Type: multipart/alternative; boundary="0000000000000d784505b8ad0697" Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::d35; envelope-from=jkjh1jkjh1@gmail.com; helo=mail-io1-xd35.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Tue, 12 Jan 2021 01:02:18 -0500 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: richard.henderson@linaro.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @gmail.com) Content-Transfer-Encoding: quoted-printable --0000000000000d784505b8ad0697 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIGFkZGluZyBOVF9GSUxFIG5vdGUgaW4gdGhlIEVM RiBjb3JlZHVtcC4KSXQgZm9sbG93cyB3aGF0J3MgZGVmaW5lZCBpbiByZWFkZWxmLgpMZXQgbWUg a25vdyBpZiB0aGVyZSBpcyBhbnkgaXNzdWUgd2l0aCB0aGUgcGF0Y2guClRoZSBwYXRjaCBpcyBh dHRhY2hlZCBpbiBwbGFpbnRleHQgYmVsb3cKClRoYW5rcywKS3lsZQotLS0tLS0tLS0KCkZyb20g M2M0MjA3NGY5ZTk5ZTZiNWNhODQwYjllZTllOTY1ZmI2OTEyMmVmMSBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogS3lsZSBaRU5HIDxqa2poMWpramgxQGdtYWlsLmNvbT4KRGF0ZTogTW9u LCAxMSBKYW4gMjAyMSAyMTo1NDowOSAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIGFkZCBOVF9GSUxF IG5vdGUgZm9yIEVMRiBjb3JlIGR1bXAKClNpZ25lZC1vZmYtYnk6IEt5bGUgWkVORyA8amtqaDFq a2poMUBnbWFpbC5jb20+Ci0tLQogaW5jbHVkZS9lbGYuaCAgICAgICAgfCAgMSArCiBsaW51eC11 c2VyL2VsZmxvYWQuYyB8IDkyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKy0tCiAyIGZpbGVzIGNoYW5nZWQsIDkwIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9lbGYuaCBiL2luY2x1ZGUvZWxmLmgKaW5kZXggN2E0MThl ZS4uZjcwMWZkOSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9lbGYuaAorKysgYi9pbmNsdWRlL2VsZi5o CkBAIC0xNjQ1LDYgKzE2NDUsNyBAQCB0eXBlZGVmIHN0cnVjdCBlbGY2NF9zaGRyIHsKICNkZWZp bmUgTlRfVEFTS1NUUlVDVCA0CiAjZGVmaW5lIE5UX0FVWFYgNgogI2RlZmluZSBOVF9QUlhGUFJF RyAgICAgMHg0NmU2MmI3ZiAgICAgIC8qIGNvcGllZCBmcm9tCmdkYjUuMS9pbmNsdWRlL2VsZi9j b21tb24uaCAqLworI2RlZmluZSBOVF9GSUxFICAgICAweDQ2NDk0YzQ1ICAgICAgICAgIC8qIGNv cGllZCBmcm9tCmdkYi9pbmNsdWRlL2VsZi9jb21tb24uaCAqLwogI2RlZmluZSBOVF9TMzkwX0dT X0NCICAgMHgzMGIgICAgICAgICAgIC8qIHMzOTAgZ3VhcmRlZCBzdG9yYWdlIHJlZ2lzdGVycwoq LwogI2RlZmluZSBOVF9TMzkwX1ZYUlNfSElHSCAweDMwYSAgICAgICAgIC8qIHMzOTAgdmVjdG9y IHJlZ2lzdGVycyAxNi0zMSAqLwogI2RlZmluZSBOVF9TMzkwX1ZYUlNfTE9XICAweDMwOSAgICAg ICAgIC8qIHMzOTAgdmVjdG9yIHJlZ2lzdGVycyAwLTE1Cihsb3dlciBoYWxmKSAqLwpkaWZmIC0t Z2l0IGEvbGludXgtdXNlci9lbGZsb2FkLmMgYi9saW51eC11c2VyL2VsZmxvYWQuYwppbmRleCBh NjQwNTA3Li5jMDk1YzBjIDEwMDY0NAotLS0gYS9saW51eC11c2VyL2VsZmxvYWQuYworKysgYi9s aW51eC11c2VyL2VsZmxvYWQuYwpAQCAtMzMxNyw2ICszMzE3LDEzIEBAIHN0cnVjdCB0YXJnZXRf ZWxmX3BycHNpbmZvIHsKICAgICBjaGFyICAgIHByX3BzYXJnc1tFTEZfUFJBUkdTWl07IC8qIGlu aXRpYWwgcGFydCBvZiBhcmcgbGlzdCAqLwogfTsKCitzdHJ1Y3QgdGFyZ2V0X250ZmlsZV9lbnRy eSB7CisgICAgYWJpX3Vsb25nICAgdm1fc3RhcnQ7CisgICAgYWJpX3Vsb25nICAgdm1fZW5kOwor ICAgIGFiaV91bG9uZyAgIHBhZ2Vfb2Zmc2V0OworICAgIGNoYXIgICAgICAgICpwYXRoOworfTsK KwogLyogSGVyZSBpcyB0aGUgc3RydWN0dXJlIGluIHdoaWNoIHN0YXR1cyBvZiBlYWNoIHRocmVh ZCBpcyBjYXB0dXJlZC4gKi8KIHN0cnVjdCBlbGZfdGhyZWFkX3N0YXR1cyB7CiAgICAgUVRBSUxR X0VOVFJZKGVsZl90aHJlYWRfc3RhdHVzKSAgZXRzX2xpbms7CkBAIC0zNjc3LDYgKzM2ODQsODQg QEAgc3RhdGljIHZvaWQgZmlsbF9hdXh2X25vdGUoc3RydWN0IG1lbWVsZm5vdGUgKm5vdGUsCmNv bnN0IFRhc2tTdGF0ZSAqdHMpCiAgICAgfQogfQoKK3N0YXRpYyB2b2lkIGZpbGxfbnRmaWxlX25v dGUoc3RydWN0IG1lbWVsZm5vdGUgKm5vdGUsIFRhc2tTdGF0ZSAqdHMpCit7CisgICAgR1NMaXN0 ICptYXBfaW5mbyA9M0QgcmVhZF9zZWxmX21hcHMoKTsKKyAgICBHU0xpc3QgKnM7CisgICAgaW50 IGNvdW50ID0zRCAwOworICAgIGludCBkYXRhX3NpemUgPTNEIHNpemVvZihhYmlfbG9uZykqMjsg Ly8gcmVzZXJ2ZSBzcGFjZSBmb3IgbnVtX21hcF9lbnQ9CnJ5CmFuZCBwYWdlX3NpemUKKyAgICBz dHJ1Y3QgdGFyZ2V0X250ZmlsZV9lbnRyeSAqZW50cmllcyA9M0QgTlVMTDsKKworICAgIC8vIGdy YWIgbWVtb3J5IG1hcHBpbmcgZmlyc3QKKyAgICBmb3IgKHMgPTNEIG1hcF9pbmZvOyBzOyBzID0z RCBnX3NsaXN0X25leHQocykpIHsKKyAgICAgICAgTWFwSW5mbyAqZSA9M0QgKE1hcEluZm8gKikg cy0+ZGF0YTsKKworICAgICAgICBpZiAoaDJnX3ZhbGlkKGUtPnN0YXJ0KSkgeworICAgICAgICAg ICAgdW5zaWduZWQgbG9uZyBtaW4gPTNEIGUtPnN0YXJ0OworICAgICAgICAgICAgdW5zaWduZWQg bG9uZyBtYXggPTNEIGUtPmVuZDsKKyAgICAgICAgICAgIGludCBmbGFncyA9M0QgcGFnZV9nZXRf ZmxhZ3MoaDJnKG1pbikpOworICAgICAgICAgICAgY29uc3QgY2hhciAqcGF0aDsKKworICAgICAg ICAgICAgbWF4ID0zRCBoMmdfdmFsaWQobWF4IC0gMSkgPworICAgICAgICAgICAgICAgIG1heCA6 ICh1aW50cHRyX3QpIGcyaChHVUVTVF9BRERSX01BWCkgKyAxOworCisgICAgICAgICAgICBpZiAo cGFnZV9jaGVja19yYW5nZShoMmcobWluKSwgbWF4IC0gbWluLCBmbGFncykgPTNEPTNEIC0xKSB7 CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAg IGlmIChoMmcobWluKSA9M0Q9M0QgdHMtPmluZm8tPnN0YWNrX2xpbWl0KSB7CisgICAgICAgICAg ICAgICAgcGF0aCA9M0QgIltzdGFja10iOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg ICAgICAgICBwYXRoID0zRCBlLT5wYXRoOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBj b3VudCsrOworICAgICAgICAgICAgZW50cmllcyA9M0QgcmVhbGxvYyhlbnRyaWVzLCBzaXplb2Yo c3RydWN0CnRhcmdldF9udGZpbGVfZW50cnkpKmNvdW50KTsKKyAgICAgICAgICAgIHN0cnVjdCB0 YXJnZXRfbnRmaWxlX2VudHJ5ICplbnRyeSA9M0QgJmVudHJpZXNbY291bnQtMV07CisgICAgICAg ICAgICBtZW1zZXQoZW50cnksIDAsIHNpemVvZigqZW50cnkpKTsKKworICAgICAgICAgICAgZGF0 YV9zaXplICs9M0Qgc2l6ZW9mKGFiaV9sb25nKSozICsgc3RybGVuKHBhdGgpICsgMTsKKyAgICAg ICAgICAgIGVudHJ5LT52bV9zdGFydCA9M0QgaDJnKG1pbik7CisgICAgICAgICAgICBlbnRyeS0+ dm1fZW5kID0zRCBoMmcobWF4IC0gMSkgKyAxOworICAgICAgICAgICAgZW50cnktPnBhZ2Vfb2Zm c2V0ID0zRCBlLT5vZmZzZXQ7CisgICAgICAgICAgICBlbnRyeS0+cGF0aCA9M0Qgc3RyZHVwKHBh dGgpOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gcHJlcGFyZSB0aGUgbWVtb3J5IG1hcHBp bmcgaW4gTlRfRklMRSBmb3JtYXQKKyAgICBjaGFyICpwdHI7CisgICAgaW50IGlkeCA9M0QgMDsK KyAgICBwdHIgPTNEIChjaGFyICopZ19tYWxsb2MwKGRhdGFfc2l6ZSk7CisgICAgYWJpX2xvbmcg KmxvbmdfcHRyID0zRCAoYWJpX2xvbmcgKilwdHI7CisKKyAgICAvLyBtZW1vcnkgbWFwcGluZ3MK KyAgICBsb25nX3B0cltpZHgrK10gPTNEIGNvdW50OyAgICAvLyBudW1iZXIgb2YgbWFwIGVudHJp ZXMKKyAgICBsb25nX3B0cltpZHgrK10gPTNEIFRBUkdFVF9QQUdFX1NJWkU7ICAgLy8gdGFyZ2V0 IHBhZ2Ugc2l6ZQorICAgIGZvcihpbnQgaT0zRDA7IGk8Y291bnQ7IGkrKykgeworICAgICAgICBz dHJ1Y3QgdGFyZ2V0X250ZmlsZV9lbnRyeSAqZW50cnkgPTNEICZlbnRyaWVzW2ldOworICAgICAg ICBsb25nX3B0cltpZHgrK10gPTNEIGVudHJ5LT52bV9zdGFydDsKKyAgICAgICAgbG9uZ19wdHJb aWR4KytdID0zRCBlbnRyeS0+dm1fZW5kOworICAgICAgICBsb25nX3B0cltpZHgrK10gPTNEIGVu dHJ5LT5wYWdlX29mZnNldDsKKyAgICB9CisKKyAgICAvLyBwYXRoIG5hbWVzCisgICAgaWR4ICo9 M0Qgc2l6ZW9mKGFiaV9sb25nKTsKKyAgICBmb3IoaW50IGk9M0QwOyBpPGNvdW50OyBpKyspIHsK KyAgICAgICAgc3RydWN0IHRhcmdldF9udGZpbGVfZW50cnkgKmVudHJ5ID0zRCAmZW50cmllc1tp XTsKKyAgICAgICAgaW50IHBhdGhfc2l6ZSA9M0Qgc3RybGVuKGVudHJ5LT5wYXRoKTsKKyAgICAg ICAgc3RyY3B5KCZwdHJbaWR4XSwgZW50cnktPnBhdGgpOworICAgICAgICBpZHggKz0zRCBwYXRo X3NpemUgKyAxOworICAgICAgICBmcmVlKGVudHJ5LT5wYXRoKTsKKyAgICB9CisKKyAgICAvLyB3 cml0ZSBpdCBvdXQKKyAgICBmaWxsX25vdGUobm90ZSwgIkNPUkUiLCBOVF9GSUxFLCBkYXRhX3Np emUsIHB0cik7CisKKyAgICAvLyBjbGVhbnVwCisgICAgZnJlZShlbnRyaWVzKTsKKyAgICBmcmVl X3NlbGZfbWFwcyhtYXBfaW5mbyk7Cit9CisKIC8qCiAgKiBDb25zdHJ1Y3RzIG5hbWUgb2YgY29y ZWR1bXAgZmlsZS4gIFdlIGhhdmUgZm9sbG93aW5nIGNvbnZlbnRpb24KICAqIGZvciB0aGUgbmFt ZToKQEAgLTM4MDcsNyArMzg5Miw3IEBAIHN0YXRpYyB2b2lkIGluaXRfbm90ZV9pbmZvKHN0cnVj dCBlbGZfbm90ZV9pbmZvICppbmZvKQogc3RhdGljIGludCBmaWxsX25vdGVfaW5mbyhzdHJ1Y3Qg ZWxmX25vdGVfaW5mbyAqaW5mbywKICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBzaWdu ciwgY29uc3QgQ1BVQXJjaFN0YXRlICplbnYpCiB7Ci0jZGVmaW5lIE5VTU5PVEVTIDMKKyNkZWZp bmUgTlVNTk9URVMgNAogICAgIENQVVN0YXRlICpjcHUgPTNEIGVudl9jcHUoKENQVUFyY2hTdGF0 ZSAqKWVudik7CiAgICAgVGFza1N0YXRlICp0cyA9M0QgKFRhc2tTdGF0ZSAqKWNwdS0+b3BhcXVl OwogICAgIGludCBpOwpAQCAtMzgyNCw3ICszOTA5LDcgQEAgc3RhdGljIGludCBmaWxsX25vdGVf aW5mbyhzdHJ1Y3QgZWxmX25vdGVfaW5mbyAqaW5mbywKCiAgICAgLyoKICAgICAgKiBGaXJzdCBm aWxsIGluIHN0YXR1cyAoYW5kIHJlZ2lzdGVycykgb2YgY3VycmVudCB0aHJlYWQKLSAgICAgKiBp bmNsdWRpbmcgcHJvY2VzcyBpbmZvICYgYXV4IHZlY3Rvci4KKyAgICAgKiBpbmNsdWRpbmcgcHJv Y2VzcyBpbmZvLCBhdXggdmVjdG9yICYgbWVtb3J5IG1hcHBpbmcuCiAgICAgICovCiAgICAgZmls bF9wcnN0YXR1cyhpbmZvLT5wcnN0YXR1cywgdHMsIHNpZ25yKTsKICAgICBlbGZfY29yZV9jb3B5 X3JlZ3MoJmluZm8tPnByc3RhdHVzLT5wcl9yZWcsIGVudik7CkBAIC0zODM0LDcgKzM5MTksOCBA QCBzdGF0aWMgaW50IGZpbGxfbm90ZV9pbmZvKHN0cnVjdCBlbGZfbm90ZV9pbmZvICppbmZvLAog ICAgIGZpbGxfbm90ZSgmaW5mby0+bm90ZXNbMV0sICJDT1JFIiwgTlRfUFJQU0lORk8sCiAgICAg ICAgICAgICAgIHNpemVvZiAoKmluZm8tPnBzaW5mbyksIGluZm8tPnBzaW5mbyk7CiAgICAgZmls bF9hdXh2X25vdGUoJmluZm8tPm5vdGVzWzJdLCB0cyk7Ci0gICAgaW5mby0+bnVtbm90ZSA9M0Qg MzsKKyAgICBmaWxsX250ZmlsZV9ub3RlKCZpbmZvLT5ub3Rlc1szXSwgdHMpOworICAgIGluZm8t Pm51bW5vdGUgPTNEIE5VTU5PVEVTOwoKICAgICBpbmZvLT5ub3Rlc19zaXplID0zRCAwOwogICAg IGZvciAoaSA9M0QgMDsgaSA8IGluZm8tPm51bW5vdGU7IGkrKykKLS09MjAKMi4xNy4x --0000000000000d784505b8ad0697 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
This patch adds support for adding NT_FILE note in the ELF= coredump.
It follows what's defined in readelf.
Let me k= now if there is any issue with the patch.
The patch is attached i= n plaintext below

Thanks,
Kyle
---------

From 3c42074f9e99e6b5ca840b9ee9e965fb69= 122ef1 Mon Sep 17 00:00:00 2001
From: Kyle ZENG <jkjh1jkjh1@gmail.com>
Date: Mon, 11 Jan 2021 = 21:54:09 -0700
Subject: [PATCH] add NT_FILE note for ELF core dump
Signed-off-by: Kyle ZENG <jkjh= 1jkjh1@gmail.com>
---
=C2=A0include/elf.h =C2=A0 =C2=A0 =C2=A0= =C2=A0| =C2=A01 +
=C2=A0linux-user/elfload.c | 92 +++++++++++++++++++++= +++++++++++++++++++++--
=C2=A02 files changed, 90 insertions(+), 3 delet= ions(-)

diff --git a/include/elf.h b/include/elf.h
index 7a418ee.= .f701fd9 100644
--- a/include/elf.h
+++ b/include/elf.h
@@ -1645,6= +1645,7 @@ typedef struct elf64_shdr {
=C2=A0#define NT_TASKSTRUCT 4=C2=A0#define NT_AUXV 6
=C2=A0#define NT_PRXFPREG =C2=A0 =C2=A0 0x46e6= 2b7f =C2=A0 =C2=A0 =C2=A0/* copied from gdb5.1/include/elf/common.h */
+= #define NT_FILE =C2=A0 =C2=A0 0x46494c45 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= /* copied from gdb/include/elf/common.h */
=C2=A0#define NT_S390_GS_CB = =C2=A0 0x30b =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 /* s390 guarded storage reg= isters */
=C2=A0#define NT_S390_VXRS_HIGH 0x30a =C2=A0 =C2=A0 =C2=A0 =C2= =A0 /* s390 vector registers 16-31 */
=C2=A0#define NT_S390_VXRS_LOW =C2= =A00x309 =C2=A0 =C2=A0 =C2=A0 =C2=A0 /* s390 vector registers 0-15 (lower h= alf) */
diff --git a/linux-user/elfload.c b/linux-user/elfload.c
inde= x a640507..c095c0c 100644
--- a/linux-user/elfload.c
+++ b/linux-user= /elfload.c
@@ -3317,6 +3317,13 @@ struct target_elf_prpsinfo {
=C2=A0= =C2=A0 =C2=A0char =C2=A0 =C2=A0pr_psargs[ELF_PRARGSZ]; /* initial part of = arg list */
=C2=A0};
=C2=A0
+struct target_ntfile_entry {
+ =C2= =A0 =C2=A0abi_ulong =C2=A0 vm_start;
+ =C2=A0 =C2=A0abi_ulong =C2=A0 vm_= end;
+ =C2=A0 =C2=A0abi_ulong =C2=A0 page_offset;
+ =C2=A0 =C2=A0char= =C2=A0 =C2=A0 =C2=A0 =C2=A0*path;
+};
+
=C2=A0/* Here is the stru= cture in which status of each thread is captured. */
=C2=A0struct elf_th= read_status {
=C2=A0 =C2=A0 =C2=A0QTAILQ_ENTRY(elf_thread_status) =C2=A0= ets_link;
@@ -3677,6 +3684,84 @@ static void fill_auxv_note(struct memel= fnote *note, const TaskState *ts)
=C2=A0 =C2=A0 =C2=A0}
=C2=A0}
= =C2=A0
+static void fill_ntfile_note(struct memelfnote *note, TaskState = *ts)
+{
+ =C2=A0 =C2=A0GSList *map_info =3D read_self_maps();
+ = =C2=A0 =C2=A0GSList *s;
+ =C2=A0 =C2=A0int count =3D 0;
+ =C2=A0 =C2= =A0int data_size =3D sizeof(abi_long)*2; // reserve space for num_map_entry= and page_size
+ =C2=A0 =C2=A0struct target_ntfile_entry *entries =3D NU= LL;
+
+ =C2=A0 =C2=A0// grab memory mapping first
+ =C2=A0 =C2=A0f= or (s =3D map_info; s; s =3D g_slist_next(s)) {
+ =C2=A0 =C2=A0 =C2=A0 = =C2=A0MapInfo *e =3D (MapInfo *) s->data;
+
+ =C2=A0 =C2=A0 =C2=A0= =C2=A0if (h2g_valid(e->start)) {
+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0unsigned long min =3D e->start;
+ =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0unsigned long max =3D e->end;
+ =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0int flags =3D page_get_flags(h2g(min));
+ =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0const char *path;
+
+ =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0max =3D h2g_valid(max - 1) ?
+ =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0max : (uintptr_t) g2h(GUEST_ADDR_= MAX) + 1;
+
+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (page_check= _range(h2g(min), max - min, flags) =3D=3D -1) {
+ =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0continue;
+ =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0}
+
+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (h= 2g(min) =3D=3D ts->info->stack_limit) {
+ =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0path =3D "[stack]";
+ =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0} else {
+ =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0path =3D e->path;
+ =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0}
+
+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0co= unt++;
+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0entries =3D realloc(en= tries, sizeof(struct target_ntfile_entry)*count);
+ =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0struct target_ntfile_entry *entry =3D &entries[cou= nt-1];
+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0memset(entry, 0, sizeo= f(*entry));
+
+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0data_size += =3D sizeof(abi_long)*3 + strlen(path) + 1;
+ =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0entry->vm_start =3D h2g(min);
+ =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0entry->vm_end =3D h2g(max - 1) + 1;
+ =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0entry->page_offset =3D e->offset;
+= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0entry->path =3D strdup(path);<= br>+ =C2=A0 =C2=A0 =C2=A0 =C2=A0}
+ =C2=A0 =C2=A0}
+
+ =C2=A0 =C2= =A0// prepare the memory mapping in NT_FILE format
+ =C2=A0 =C2=A0char *= ptr;
+ =C2=A0 =C2=A0int idx =3D 0;
+ =C2=A0 =C2=A0ptr =3D (char *)g_m= alloc0(data_size);
+ =C2=A0 =C2=A0abi_long *long_ptr =3D (abi_long *)ptr= ;
+
+ =C2=A0 =C2=A0// memory mappings
+ =C2=A0 =C2=A0long_ptr[idx+= +] =3D count; =C2=A0 =C2=A0// number of map entries
+ =C2=A0 =C2=A0long_= ptr[idx++] =3D TARGET_PAGE_SIZE; =C2=A0 // target page size
+ =C2=A0 =C2= =A0for(int i=3D0; i<count; i++) {
+ =C2=A0 =C2=A0 =C2=A0 =C2=A0struct= target_ntfile_entry *entry =3D &entries[i];
+ =C2=A0 =C2=A0 =C2=A0 = =C2=A0long_ptr[idx++] =3D entry->vm_start;
+ =C2=A0 =C2=A0 =C2=A0 =C2= =A0long_ptr[idx++] =3D entry->vm_end;
+ =C2=A0 =C2=A0 =C2=A0 =C2=A0lo= ng_ptr[idx++] =3D entry->page_offset;
+ =C2=A0 =C2=A0}
+
+ =C2= =A0 =C2=A0// path names
+ =C2=A0 =C2=A0idx *=3D sizeof(abi_long);
+ = =C2=A0 =C2=A0for(int i=3D0; i<count; i++) {
+ =C2=A0 =C2=A0 =C2=A0 = =C2=A0struct target_ntfile_entry *entry =3D &entries[i];
+ =C2=A0 = =C2=A0 =C2=A0 =C2=A0int path_size =3D strlen(entry->path);
+ =C2=A0 = =C2=A0 =C2=A0 =C2=A0strcpy(&ptr[idx], entry->path);
+ =C2=A0 =C2= =A0 =C2=A0 =C2=A0idx +=3D path_size + 1;
+ =C2=A0 =C2=A0 =C2=A0 =C2=A0fr= ee(entry->path);
+ =C2=A0 =C2=A0}
+
+ =C2=A0 =C2=A0// write it = out
+ =C2=A0 =C2=A0fill_note(note, "CORE", NT_FILE, data_size,= ptr);
+
+ =C2=A0 =C2=A0// cleanup
+ =C2=A0 =C2=A0free(entries);+ =C2=A0 =C2=A0free_self_maps(map_info);
+}
+
=C2=A0/*
=C2=A0= * Constructs name of coredump file.=C2=A0 We have following convention
= =C2=A0 * for the name:
@@ -3807,7 +3892,7 @@ static void init_note_info(= struct elf_note_info *info)
=C2=A0static int fill_note_info(struct elf_n= ote_info *info,
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0long signr, const CPUArchState *en= v)
=C2=A0{
-#define NUMNOTES 3
+#define NUMNOTES 4
=C2=A0 =C2= =A0 =C2=A0CPUState *cpu =3D env_cpu((CPUArchState *)env);
=C2=A0 =C2=A0 = =C2=A0TaskState *ts =3D (TaskState *)cpu->opaque;
=C2=A0 =C2=A0 =C2= =A0int i;
@@ -3824,7 +3909,7 @@ static int fill_note_info(struct elf_not= e_info *info,
=C2=A0
=C2=A0 =C2=A0 =C2=A0/*
=C2=A0 =C2=A0 =C2=A0 *= First fill in status (and registers) of current thread
- =C2=A0 =C2=A0 = * including process info & aux vector.
+ =C2=A0 =C2=A0 * including p= rocess info, aux vector & memory mapping.
=C2=A0 =C2=A0 =C2=A0 */=C2=A0 =C2=A0 =C2=A0fill_prstatus(info->prstatus, ts, signr);
=C2=A0= =C2=A0 =C2=A0elf_core_copy_regs(&info->prstatus->pr_reg, env);@@ -3834,7 +3919,8 @@ static int fill_note_info(struct elf_note_info *inf= o,
=C2=A0 =C2=A0 =C2=A0fill_note(&info->notes[1], "CORE"= ;, NT_PRPSINFO,
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0s= izeof (*info->psinfo), info->psinfo);
=C2=A0 =C2=A0 =C2=A0fill_aux= v_note(&info->notes[2], ts);
- =C2=A0 =C2=A0info->numnote =3D = 3;
+ =C2=A0 =C2=A0fill_ntfile_note(&info->notes[3], ts);
+ =C2= =A0 =C2=A0info->numnote =3D NUMNOTES;
=C2=A0
=C2=A0 =C2=A0 =C2=A0i= nfo->notes_size =3D 0;
=C2=A0 =C2=A0 =C2=A0for (i =3D 0; i < info-= >numnote; i++)
--
2.17.1

--0000000000000d784505b8ad0697--