From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=65.50.211.136; helo=mail.zytor.com; envelope-from=pcacjr@zytor.com; receiver=edk2-devel@lists.01.org Received: from mail.zytor.com (terminus.zytor.com [65.50.211.136]) (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 47F2321B00DC1 for ; Wed, 15 Nov 2017 06:39:20 -0800 (PST) Received: from [IPv6:2804:7f4:c480:e25a::1] ([IPv6:2804:7f4:c480:e25a:0:0:0:1]) (authenticated bits=0) by mail.zytor.com (8.15.2/8.15.2) with ESMTPSA id vAFEf1bK001862 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NO); Wed, 15 Nov 2017 06:41:06 -0800 To: 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: Paulo Alcantara Message-ID: <992dffb1-38e2-ccf5-5004-5aebd8d0ec45@zytor.com> Date: Wed, 15 Nov 2017 12:41:00 -0200 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: Subject: =?UTF-8?B?UmU6IOetlOWkjTog562U5aSNOiBbUkZDIDAvMV0gU3RhY2sgdHJhY2Ugc3VwcG9ydCBpbiBYNjQgZXhjZXB0aW9uIGhhbmRsaW5n?= 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: Wed, 15 Nov 2017 14:39:21 -0000 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit Hi Fan, On 15/11/2017 11:21, Fan Jeff wrote: > Paulo, > > I will try to validate my code firstly and try to integrate into your > patch. OK. Thank you very much for the effort! > > Before my part ready, it’s also welcome if you or others provide yours > own solution on X64 MSFT toolchain. Yes - that would be great. If I get this working on IA32 with GCC toolchain shortly, then I'll try to come up with a solution for MSVC. > In my mind, IA32 arch should use the same solution with yours, have you > tested your solution on IA32 arch with GCC toolchain? In theory, yes. :-) I haven't tested it yet, but I'll starting working it on now. BTW, do you think it's appropriate to just let you know that I pushed out another commit with IA32 support, or do you think it's better to send a v2 with it? Besides we shouldn't forget the suggestions from Andrew and Brian to validate the RIP and RSP values, as well as to have a kind of PCD to limit the number of stack frames printed out -- which I think that are really important even if unlikely. Thanks! Paulo > > Thanks! > > Jeff > > ------------------------------------------------------------------------ > *From:* Paulo Alcantara > *Sent:* Tuesday, November 14, 2017 11:37:35 PM > *To:* Fan Jeff; edk2-devel@lists.01.org > *Cc:* Rick Bramley; Laszlo Ersek; Andrew Fish; Eric Dong > *Subject:* Re: 答复: [edk2] [RFC 0/1] Stack trace support in X64 > exception handling > 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 > >> >> 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(-) >>> >>