From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: None (no SPF record) identity=mailfrom; client-ip=15.233.44.25; helo=g2t2352.austin.hpe.com; envelope-from=brian.johnson@hpe.com; receiver=edk2-devel@lists.01.org Received: from g2t2352.austin.hpe.com (g2t2352.austin.hpe.com [15.233.44.25]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id C72F2220D4C09 for ; Tue, 14 Nov 2017 08:29:24 -0800 (PST) Received: from G4W9120.americas.hpqcorp.net (exchangepmrr1.us.hpecorp.net [16.210.21.15]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by g2t2352.austin.hpe.com (Postfix) with ESMTPS id 5BCFCD8; Tue, 14 Nov 2017 16:33:31 +0000 (UTC) Received: from G2W6310.americas.hpqcorp.net (2002:10c5:4034::10c5:4034) by G4W9120.americas.hpqcorp.net (2002:10d2:150f::10d2:150f) with Microsoft SMTP Server (TLS) id 15.0.1178.4; Tue, 14 Nov 2017 16:33:24 +0000 Received: from NAM02-CY1-obe.outbound.protection.outlook.com (15.241.52.12) by G2W6310.americas.hpqcorp.net (16.197.64.52) with Microsoft SMTP Server (TLS) id 15.0.1178.4 via Frontend Transport; Tue, 14 Nov 2017 16:33:24 +0000 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brian.johnson@hpe.com; Received: from [10.0.2.15] (192.48.192.5) by TU4PR8401MB0416.NAMPRD84.PROD.OUTLOOK.COM (2a01:111:e400:770a::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.239.5; Tue, 14 Nov 2017 16:33:21 +0000 To: Paulo Alcantara , Fan Jeff , "edk2-devel@lists.01.org" CC: Rick Bramley , Laszlo Ersek , Andrew Fish , Eric Dong References: <8de9df9f-0386-8250-7c80-9a3cff65841e@zytor.com> From: "Brian J. Johnson" Message-ID: <5aad56cd-ae69-59d3-1598-453a94926802@hpe.com> Date: Tue, 14 Nov 2017 10:33:34 -0600 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 MIME-Version: 1.0 In-Reply-To: X-Originating-IP: [192.48.192.5] X-ClientProxiedBy: MWHPR12CA0037.namprd12.prod.outlook.com (2603:10b6:301:2::23) To TU4PR8401MB0416.NAMPRD84.PROD.OUTLOOK.COM (2a01:111:e400:770a::13) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 79138d61-4dd8-4f28-80e0-08d52b7d6c0e X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(48565401081)(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(2017052603199); SRVR:TU4PR8401MB0416; X-Microsoft-Exchange-Diagnostics: 1; TU4PR8401MB0416; 3:D5CblX8UVFZ1Qq8E6gMhubyDS5lKVZ9MM32Z25F3VOcuyg3iyuxymtwWQV3EnpCy437qiOmETsoRTbs+pwU0mWPd5KxNR3wbWJfaZQc+su6LaqW8a8uT2iri/G6fczM8tqFJlcFEDtINbvYE2E0qP0wOXcLDOhFbzUIw18EmcVIqcaVV8EK+qwvyNocC8jr4vKiqh0QxCMSpmtRoY55QGiRXMiCjj9mcM1pAMz07SyEfdPqzWViEiC/NegYToqoT; 25:g/UAIJCWF8jqjy+2tI+U6Lx88Zl65rVWk7XB0taWeEEbsIQBpTMMrS85qUhiuQSQ7XrjGrDIPmZwCHTI+IoktahTz2Tzrxig5HjxvIsDt+Z/YC+q45TaJARbsVaA7VM8HldC9nI3ISgPnJixIL6CkbHwD8m6gl52D9kecdKH38sGY1feUzB1MqWD30u8iZAvfY7pFPA1BzoKanHvn6XCHIyIU3v9jJ7BKK66qD5qYd145IncWE1AKG78OxgngOeVgYvpAIpyovHnvEvjUvhYur3uaccbSH8N3uNmJ6CUUdyp9aQkHivazCgep2pDH73boJxnKox0Y4rrLD5Y4vN8XA==; 31:ENZHCJtHva93kk3f7DJgGRipShgW5SzLr38S2Ffo5BqnsaqXeGYMtjUM9e5N2KMnTaIr2VThdMheII04VAkIb4ptLVxpDGlBVPxoni7PZct2Rj8UgFfDFhmBE0w46ntk5q2K4euiCkSPj0GdExtd2wS+tHf83jJh51onFzgmB3rQTH8cW5VjF/HDYHio7I+ReEbzAe1ZwLGuJPcUWqvsh0FNQVNUe9bxik7JQrxDKIY= X-MS-TrafficTypeDiagnostic: TU4PR8401MB0416: X-Microsoft-Exchange-Diagnostics: 1; TU4PR8401MB0416; 20:eV06M5KczK0mujREZSiUhYdDd+jhjOsG114w7EYrZHWSxFWBN7aCu20DLrx+f4YQj2p3WDgZz27gqNpETl01vTi7TOcqwAsusTl68z4mbt8pKhip38F6C1MlkIpqQkowndEysNmY3kyGRWjn6aINvGPkZinOqemjQDslicN5X0ulmvvFOotoGUktXT2VvyUbybI/Q1eF8YyirK2EMJcm20sh9qzS0A1vlSF/LPHW5t9XNyPz8yWhVAcRXu+ojfujME/LQS1xBkgNXvsLHydXRmoRYyvCgulv/VVYWfp68uZt/PjPgXcnjw6EJ318qV2//jT1gIMMtlMsgBtWUM2RsPez07B6FoOvy5VbqZ5yVJReK6KqCB0PELUN+BhXeCMPYfKB7yCHUXW/i/4WoOo6k/D4Z/5oRdPbevqfMZrVOCsV9GgJakEt5KuqwsVZk326fT94DEQeTK/sLu3oWSilMfMheqON5PtRq6LlXTSJDqh6hVq+9yTPG3j/CuvQ2/CC X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(80524489315369)(166708455590820)(162533806227266)(31960201722614)(228905959029699)(73583498263828); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(5005006)(8121501046)(93006095)(93001095)(100000703101)(100105400095)(3231022)(3002001)(10201501046)(6055026)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(20161123562025)(20161123558100)(20161123560025)(20161123564025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:TU4PR8401MB0416; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:TU4PR8401MB0416; X-Microsoft-Exchange-Diagnostics: 1; TU4PR8401MB0416; 4:S7kio5oW7aGYoiQ7PV3W9Qk4m3nN/bC9qaSVXyaDWFukFcnVLIBuiemQF/9FuCBdKFlUkMfSNfbzTXvodc5fGrDY5G6piOdv10xD/a+rpgmVK3xBTzWusuiE/ylHODKws/XtTj92mP+AnHgAT7MmnEKqajetT9dsiQMGaOmwY7Sx68CrL+lOtb7pBr9Gq36OzIv/53c/C3LLHcSbfPsRY0NlW2amMuUcMXDCYQviPNSu+d9K2oavhPjTV53p8cCmkMAGmNuyZ4sJcRWOwxvcwV2YfSDjRfhXnXilx4T2eOziXs1mzuXAcAbxoFePJR03xfmTg926fHeZTISL0L1Fm6Fj95KicYYLXYhvdwfBBWQYXUPykMTlGd2L0XeVbIw3lpQapgBJgr3+8tSSG6EbOlnoUjgK1w+UaBPb16WCVhIZ1H6hruAhAjaOxfNp7sBBrjby7hZNZVrURDnEEqZyD9wrMph2dd2dz8YKMm+Ui9Y= X-Forefront-PRVS: 04916EA04C X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(6009001)(6049001)(39860400002)(376002)(346002)(48014003)(24454002)(76104003)(199003)(189002)(45984002)(316002)(16576012)(4326008)(33646002)(53936002)(106356001)(31686004)(39060400002)(6246003)(224303003)(6306002)(105586002)(93886005)(25786009)(6666003)(65826007)(5660300001)(65956001)(66066001)(65806001)(47776003)(101416001)(50986999)(5890100001)(76176999)(54356999)(2501003)(3846002)(6116002)(8936002)(36756003)(50466002)(189998001)(64126003)(2950100002)(31696002)(86362001)(229853002)(478600001)(8666007)(83506002)(2870700001)(305945005)(97736004)(67846002)(58126008)(53546010)(2906002)(16526018)(7736002)(54906003)(6486002)(966005)(23676003)(68736007)(81166006)(110136005)(77096006)(81156014)(45080400002)(460985005); DIR:OUT; SFP:1102; SCL:1; SRVR:TU4PR8401MB0416; H:[10.0.2.15]; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: hpe.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtUVTRQUjg0MDFNQjA0MTY7MjM6dk8wVkFjMW0yeG54NTFvU2ZQVVc3MVB3?= =?utf-8?B?OHVIaG9pYWE5SktMVGw2b1NNNmErbXhBRm4zakZFcVNseHNhY1NUekZJYWR6?= =?utf-8?B?WXNzWDB2ellYL2g0VXRDR3FTVHVkRUwreXBoWFdQNGljVER5TEYrQTBhMWlJ?= =?utf-8?B?dytYSktjRUo2WDJVcC82N2Z4dm81YkVGM2NheGVrNnlld2gwWERrcmsycEhw?= =?utf-8?B?aUJ2SnRLZUk3UUJ1OFk3NGtsdC9ycEpSNEs4ODUrZ2s5UElhU1RkR3RXaXVX?= =?utf-8?B?NTdqVnBzVnBvb0FSRnJNcVh3MC80cVNQV1RRSmQ3TUZhNlhZSHM0WDhoaE5U?= =?utf-8?B?L3hiSnRabURudktEbDdGV3U3Z2ZVUGtSOHpCWFpUMksrNlRYdElYcEwrVmtk?= =?utf-8?B?a0s0TTc0UGcwbUJTUkl0QWEzaGYxQUloUVcrcHFGRjFXWFp4d3lTaDhQV2tF?= =?utf-8?B?QW02WEZUNHN2b2ZPNnBMYUxnRFRacjFjdUdVNTBta1hFT0tPUWNXbFBSRXl1?= =?utf-8?B?MTN3S1hmR29ha3Z2dGxib0MrZEpNVUppUG9PbWNzbVA2NEt0QTJjeEk3dHc0?= =?utf-8?B?N21landzMjFXcjFPMURXVmhuaXdXS0xzNnIzU0FjWHB0MDdRSkhDV2I0M0NK?= =?utf-8?B?WVp4cWZwSEpiejk0YmE0QU83bytsYmx4YXFNUy9nOElUaytxY2kvOElaOERF?= =?utf-8?B?c1ZSUnozdm9iRkw5U0prN1FWeUpLTW9iK0hjRFhud1lGNmhCdmRqcC9sekh3?= =?utf-8?B?b0R4ejZWTWtoMWhGVzdySFF0TjJoY3pOL2VDaklGb2ozTVhRYnBqR2VQSzhP?= =?utf-8?B?Qy9aK1ZyZlhUOVI0cE05QjJET3JyT09vSFFBTisxUGtybndLbTJXTS9ZaFZ3?= =?utf-8?B?RXJPV2pRTFBmdkxqVzNTWURYazZOMUh2RFVyeUYwTXlKOUQ0bW0zNzI4cEt0?= =?utf-8?B?Z0NVWFdEaWxXMmZ2NExFc2pNbmZkRDc1VWR2SDM0aUNraDg2M2JQNWM2SlVi?= =?utf-8?B?M0RoYWxaN2ZnUmNzd3dvS0hERFNKWXVjczJQLzJ2dVVOclNvSTZ5MHJPbWh6?= =?utf-8?B?cmdsSXE4OVdIYkRkT05kcExpcjNyMnZlZ1F5UzNaZU05SFl0UjZCRjJ2WXVh?= =?utf-8?B?L254VjhOU3ZuVDBPamVKeEgyZkF3WVRwTndCMDZNdlZKV0lWRVpJTmJJSU9V?= =?utf-8?B?REZUaDhHQWlWSHNOd1JBV0ZnUVBtWlJNKzBscXBIN21WcFhhakVkQlU4WEZQ?= =?utf-8?B?ckwvYTJJWnpJaVFSdnQvbGg0b3dYQlkzVzlJTXdXV2YvekNTWE8vdk5pc0VS?= =?utf-8?B?RmkwM0R6aEhBT1RSRGEzMys5SVUxTUpma2s2bmYwT0MweEFiTUVNRzA0eWlk?= =?utf-8?B?OHY1RkpSanZQK0RzL2MvelpLNmNsRVJEMzJBREpZdzdVNjlPNEdvdzdIR0U4?= =?utf-8?B?STh6QktWaE5BTDc3eGh4YmJTMGVTNnNQZ0hkdlNxZ2RSSk9BMVZKNFo4bHdT?= =?utf-8?B?eDFrSTNLc0t1RjdDSHdGNGp3WkUwVXI5VlNPTVZjSzN6eDdkMUh6RVJMQ1dU?= =?utf-8?B?d2h1QkJvb3VmQjk2WkY5SjA3NTRGNUN3aVo3RENuR2V0Q2R5QzRGME1IQ3R6?= =?utf-8?B?dks4NVJKVzdNUENZOUNvclY4Mk9PR3ptWExvRHVRYjkyMThPdDBJRVRKY2RM?= =?utf-8?B?YlBiYVM3SG9Ua215VzlFUG9ucm4wdzNKelZjTk9CVVpGS3REUk5yU2M3UG1R?= =?utf-8?B?cm9ENTV1QkJlVWs3WlFqWTNKMUFoYVhSZkR0MUtZbkVKVzRqRFZucmVOcGVj?= =?utf-8?B?MFlnOHNHY056MS9tclN3VFVSRngyUXEySzdkNEdmTW1kd3Yrd1FsY3lZVFVR?= =?utf-8?B?dSs1eUl5SW9ZT1IydDZBTUFKakVLWEllcnhwSlZMaGhKMGRpdlVmcUFSVlZK?= =?utf-8?B?OW9uRjFZa0VDZHFEaW91dmMxbkdBZ0c5UzlvaStIM0lKRmxXaExnaGhuVHpy?= =?utf-8?B?Uk9IUnU3aGpZMzhLUDdXR0trTDlRTVgwOTR5UUJ4QTdxQ2JjREtWYm5OVWxu?= =?utf-8?B?b0YyN2NyMUJOa09TYk14bXNwelRjSktGY2dpdkxETDdlZUNzVnJjejgyL3dj?= =?utf-8?B?MEJwWWJKZ2F3Q2RXdWk4UEVvTHp5d1ByWGZnTGMvcUViT1NXaGhxVjNZWkFq?= =?utf-8?B?MXkxZFp5S1UxanFWR3NMd3cxbU9SckZEOHNTWmJnS3NweDlWQVJQcFM3akhs?= =?utf-8?Q?xtB2cQ2pNvi03Vxtltsn?= X-Microsoft-Exchange-Diagnostics: 1; TU4PR8401MB0416; 6:5Y5E9RCy98UdNcnI0wZ7vhgIdFrypqJhUyQ5ORXGpE8EjtpGUulHoz06iWZB2GG6lZOGGEm6V9JcOSE0CyLXis3EJgxcwoHCLu4r3PgqLDiQmk2tB+tv/WjhoSt2gkGM0RGukeaQZygImoRTY3kTTOV7IaLceFJom5wsGbEwZ8hK0sQs0k8VT/FEk3bn1bSCeuPgSPCrP4VwCavbN9+sr+fCmmAnQvGxggQx/oCKewNWa/Kp2PDvhq/sfDT02bmE5QD2nM2a3p56RngKv1A7GzDiBOb0H95rHPz76hIBtM7AVf6YBp0c4nuTVEBGMhfng3/psbdBOiXSmef6YdAq1qWsgYARUSJW/6CCfqharRA=; 5:db6QZxR7ssfJB2hhcHJuxSe125fN8yxPxyDjO7Jl3XKPuQVQ3pKPGZXOD+Rp+7T2UQR5GDlUOOdwRXkXcRXDFrCfaNBBMWiNnKk79UlIH4RNy+jhJEOLdsQLBPnyL7Old+Nme6c94ph+NCqJlP7DukqT1TihifTCC4zhaOxi9HE=; 24:6mQYbTf8Lb6qULYlbCj3DZBwJxNHdE8MqVpt1MUmsptV0kcsi0ugdebGedFyiqcR5mIYD/loMAogKosHcdU0sWzNuWCTiLudg5oUeG+SFEc=; 7:VpCmDzD77Wk1JuEcHHf8E983UcKmplMHsNjX2acrgJ+gt9bS9aVALrN2VTRtrCmo+WOHxU6HPhFZCwRbWRhXkpCPS5UEhX+w9YSl+JCjbcsEZw1D0SvCX984SxZ4CwPJhm2TuC77+gij8uzdLxrvQ6Iexb75z9z9Ba8OOiPDhRRdcDIlM//fnO4hqUZSWAEoG+ZmMgmg4NVUZfdypD5nqd5R6tG39pubtW8nUNbLT4nxrVl/fmOPhJEX63xTrhbf SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Nov 2017 16:33:21.1276 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 79138d61-4dd8-4f28-80e0-08d52b7d6c0e X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 105b2061-b669-4b31-92ac-24d304d195dc X-MS-Exchange-Transport-CrossTenantHeadersStamped: TU4PR8401MB0416 X-OriginatorOrg: hpe.com Subject: =?UTF-8?B?UmU6IOetlOWkjTogW1JGQyAwLzFdIFN0YWNrIHRyYWNlIHN1cHBvcnQgaW4gWDY0IGV4Y2VwdGlvbiBoYW5kbGluZw==?= X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Nov 2017 16:29:25 -0000 Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit On 11/14/2017 09:37 AM, Paulo Alcantara wrote: > Hi Fan, > > On 14/11/2017 12:03, Fan Jeff wrote: >> Paul, >> >> I like this feature very much. Actually, I did some POC one year ago >> but I did finalize it. >> >> In my POC, I could use EBP to tack the stack frame on IAS32 arch. >> >> But for x64, I tried to use –keepexceptiontable flag to explain stack >> frame from the debug section of image. >> >> I may workson MSFT toolchain, but it did now work well for GCC toolchain. >> >> I think Eric could help to verify MSFT for your patch. If it works >> well, that’s will be great! >> >> Say again, I like this feature!!!:-) > > Cool! Your help would be really appreciable! If we get this working for > X64 in both toolchains, that should be easy to port it to IA-32 as well. > > Thank you very much for willing to help on that. > > Paulo Great feature! You do need some sort of sanity check on the RIP and RBP values, though, so if the stack gets corrupted or the RIP is nonsense from following a bad pointer, you don't start dereferencing garbage addresses and trigger an exception loop. For at least some versions of Microsoft's IA32 compiler, it's possible to compile using EBP as a stack frame base pointer (like gcc) by using the "/Oy-" switch. The proposed unwind code should work in that case. The X64 compiler doesn't support this switch, though. AFAIK the only way to unwind the stack with Microsoft's X64 compilers is to parse the unwind info in the .pdata and .xdata sections. Genfw.exe usually strips those sections, but the "--keepexceptiontable" flag will preserve them, as Jeff pointed out. I've looked hard for open source code to decode them, but haven't found any, even though the format is well documented. And I haven't gotten around to writing it myself. I'd love it if someone could contribute the code! Another possibility is to use the branch history MSRs available on some x86-family processors. Recent Intel processors can use them as a stack, as opposed to a circular list, so they can record a backtrace directly. (I'm not familiar with AMD processors' capabilities.) You can enable call stack recording like this: #define LBR_ON_FLAG 0x0000000000000001 #define IA32_DEBUGCTL 0x1D9 #define CALL_STACK_SET_FLAG 0x3C4 #define CALL_STACK_CLR_FLAG 0xFC7 #define MSR_LBR_SELECT 0x1C8 // // Enable branch recording // LbControl = AsmReadMsr64 ((UINT32)IA32_DEBUGCTL); LbControl |= LBR_ON_FLAG; AsmWriteMsr64 ((UINT32)IA32_DEBUGCTL, LbControl); // // Configure for call stack // LbSelect = AsmReadMsr64 ((UINT32)MSR_LBR_SELECT); LbSelect &= CALL_STACK_CLR_FLAG; LbSelect |= CALL_STACK_SET_FLAG; AsmWriteMsr64((UINT32)MSR_LBR_SELECT, LbSelect); The EIP/RIP values are logged in MSR_SANDY_BRIDGE_LASTBRANCH_n_FROM_IP and MSR_SANDY_BRIDGE_LASTBRANCH_n_TO_IP, and the current depth is tracked in MSR_LASTBRANCH_TOS. This works quite well. Gen10 (Sky Lake) processors support 32 LASTBRANCH_n MSR pairs, which is sufficient in almost all cases. Different processor generations have different branch recording capabilities, and different numbers of LASTBRANCH_n MSRs; see Intel's manuals for details. Thanks, Brian > >> >> Thanks! >> >> Jeff >> >> *发件人: *Paulo Alcantara >> *发送时间: *2017年11月14日21:23 >> *收件人: *edk2-devel@lists.01.org >> *抄送: *Rick Bramley ; Laszlo Ersek >> ; Andrew Fish ; Eric >> Dong >> *主题: *Re: [edk2] [RFC 0/1] Stack trace support in X64 exception >> handling >> >> Hi, >> >> On 14/11/2017 10:47, Paulo Alcantara wrote: >>> Hi, >>> >>> This series adds stack trace support during a X64 CPU exception. >>> >>> Informations like back trace, stack contents and image module names >>> (that were part of the call stack) will be dumped out. >>> >>> We already have such support in ARM/AArch64 (IIRC) exception handling >>> (thanks to Ard), and then I thought we'd also deserve it in X64 and >>> IA-32 platforms. >>> >>> What do you think guys? >>> >>> BTW, I've tested this only with OVMF (X64 only), using: >>>     - gcc-6.3.0, GCC5, NOOPT >>> >>> Any other tests  would be really appreciable. >> >> I've attached a file to show you how the trace would look like. >> >> Thanks! >> Paulo >> >>> >>> Thanks! >>> Paulo >>> >>> Repo:   https://github.com/pcacjr/edk2.git >>> Branch: stacktrace_x64 >>> >>> Cc: Rick Bramley >>> Cc: Andrew Fish >>> Cc: Eric Dong >>> Cc: Laszlo Ersek >>> Contributed-under: TianoCore Contribution Agreement 1.1 >>> Signed-off-by: Paulo Alcantara >>> --- >>> >>> Paulo Alcantara (1): >>>     UefiCpuPkg/CpuExceptionHandlerLib/X64: Add stack trace support >>> >>> >>> UefiCpuPkg/Library/CpuExceptionHandlerLib/X64/ArchExceptionHandler.c >>> | 344 +++++++++++++++++++- >>>    1 file changed, 342 insertions(+), 2 deletions(-) >>> >> > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel -- Brian -------------------------------------------------------------------- "Most people would like to be delivered from temptation but would like it to keep in touch." -- Robert Orben