Paulo, I have no strong opinion on IA32 support in v2 patch or in separate patch. I think UefiCpuPkg owner/reviewer may provide their own suggestions on this point. Thanks! Jeff ________________________________ From: Paulo Alcantara Sent: Wednesday, November 15, 2017 10:41:00 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 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(-) >>> >>