On 08/29/2016 09:00 PM, Nadav Har'El wrote:
On Mon, Aug 29, 2016 at 8:12 PM, Avi Kivity <[email protected] <mailto:[email protected]>> wrote:



    On 08/29/2016 08:10 PM, Benoît Canet wrote:


    On Mon, Aug 29, 2016 at 7:08 PM, Avi Kivity <[email protected]
    <mailto:[email protected]>> wrote:

        diff --git a/arch/x64/entry.S b/arch/x64/entry.S

            index e265a30..e3be0bc 100644
            --- a/arch/x64/entry.S
            +++ b/arch/x64/entry.S
            @@ -164,66 +164,43 @@ call_signal_handler_thunk:
              syscall_entry:
                  .type syscall_entry, @function
                  .cfi_startproc simple


        Probably, we need to remove simple here, likely it sets up
        incorrect references.


I thought the point of "simple" that it doesn't set up things?

You are right, I misread the docs.


            + .cfi_undefined rcx # was overwritten with rip by the
            syscall instruction


        Not .cfi_register1 %rip, %rcx?  So if we trap here, we know
        who the caller is.


    From what I understand Nadav does it by hand later when pushing.

    He does, but when you debug between this point and the push, you
    will have a broken stack trace.


I thought this was overdoing things (nobody wants to debug the middle of a crazy assembly language function!), but I guess I can do that too.


It doesn't hurt, and if you have a crash/profile hit there, it helps.


--
You received this message because you are subscribed to the Google Groups "OSv 
Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to