You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Ilya Berezhniuk (JIRA)" <ji...@apache.org> on 2008/03/19 14:04:24 UTC

[jira] Created: (HARMONY-5618) [drlvm][port][signals] Fix for native stack unwinding

[drlvm][port][signals] Fix for native stack unwinding
-----------------------------------------------------

                 Key: HARMONY-5618
                 URL: https://issues.apache.org/jira/browse/HARMONY-5618
             Project: Harmony
          Issue Type: Bug
          Components: DRLVM
            Reporter: Ilya Berezhniuk
            Priority: Minor
         Attachments: H-5618.patch

There were problems with native stack unwinding using EBP/RBP frame pointer - sometimes it points to incorrect return address.
Therefore I've disabled EBP/RBP unwinding in the new crash handler implementation committed recently.

Unfortunately, it appeared that unwinding with only 2nd heuristic approach (return addresses lookup in the stack) works not good also.
This problems do not appear only on Windows/debug where local stack is erased in debug prolog and does not contain return addresses from previous call branches.

I experimented a bit, and found a way to solve this problem.
Suggested patch re-enables EBP/RBP unwinding with additional validation to filter out wrong EBP/RBP values which do not correspond to the current frame.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (HARMONY-5618) [drlvm][port][signals] Fix for native stack unwinding

Posted by "Ilya Berezhniuk (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HARMONY-5618?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ilya Berezhniuk updated HARMONY-5618:
-------------------------------------

    Attachment: H-5618.patch

> [drlvm][port][signals] Fix for native stack unwinding
> -----------------------------------------------------
>
>                 Key: HARMONY-5618
>                 URL: https://issues.apache.org/jira/browse/HARMONY-5618
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>            Reporter: Ilya Berezhniuk
>            Priority: Minor
>         Attachments: H-5618.patch
>
>
> There were problems with native stack unwinding using EBP/RBP frame pointer - sometimes it points to incorrect return address.
> Therefore I've disabled EBP/RBP unwinding in the new crash handler implementation committed recently.
> Unfortunately, it appeared that unwinding with only 2nd heuristic approach (return addresses lookup in the stack) works not good also.
> This problems do not appear only on Windows/debug where local stack is erased in debug prolog and does not contain return addresses from previous call branches.
> I experimented a bit, and found a way to solve this problem.
> Suggested patch re-enables EBP/RBP unwinding with additional validation to filter out wrong EBP/RBP values which do not correspond to the current frame.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Assigned: (HARMONY-5618) [drlvm][port][signals] Fix for native stack unwinding

Posted by "Gregory Shimansky (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HARMONY-5618?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gregory Shimansky reassigned HARMONY-5618:
------------------------------------------

    Assignee: Gregory Shimansky

> [drlvm][port][signals] Fix for native stack unwinding
> -----------------------------------------------------
>
>                 Key: HARMONY-5618
>                 URL: https://issues.apache.org/jira/browse/HARMONY-5618
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>            Reporter: Ilya Berezhniuk
>            Assignee: Gregory Shimansky
>            Priority: Minor
>         Attachments: H-5618.patch
>
>
> There were problems with native stack unwinding using EBP/RBP frame pointer - sometimes it points to incorrect return address.
> Therefore I've disabled EBP/RBP unwinding in the new crash handler implementation committed recently.
> Unfortunately, it appeared that unwinding with only 2nd heuristic approach (return addresses lookup in the stack) works not good also.
> This problems do not appear only on Windows/debug where local stack is erased in debug prolog and does not contain return addresses from previous call branches.
> I experimented a bit, and found a way to solve this problem.
> Suggested patch re-enables EBP/RBP unwinding with additional validation to filter out wrong EBP/RBP values which do not correspond to the current frame.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Closed: (HARMONY-5618) [drlvm][port][signals] Fix for native stack unwinding

Posted by "Ilya Berezhniuk (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HARMONY-5618?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ilya Berezhniuk closed HARMONY-5618.
------------------------------------


Thanks Gregory!

> [drlvm][port][signals] Fix for native stack unwinding
> -----------------------------------------------------
>
>                 Key: HARMONY-5618
>                 URL: https://issues.apache.org/jira/browse/HARMONY-5618
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>            Reporter: Ilya Berezhniuk
>            Assignee: Gregory Shimansky
>            Priority: Minor
>             Fix For: 5.0M6
>
>         Attachments: H-5618.patch
>
>
> There were problems with native stack unwinding using EBP/RBP frame pointer - sometimes it points to incorrect return address.
> Therefore I've disabled EBP/RBP unwinding in the new crash handler implementation committed recently.
> Unfortunately, it appeared that unwinding with only 2nd heuristic approach (return addresses lookup in the stack) works not good also.
> This problems do not appear only on Windows/debug where local stack is erased in debug prolog and does not contain return addresses from previous call branches.
> I experimented a bit, and found a way to solve this problem.
> Suggested patch re-enables EBP/RBP unwinding with additional validation to filter out wrong EBP/RBP values which do not correspond to the current frame.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (HARMONY-5618) [drlvm][port][signals] Fix for native stack unwinding

Posted by "Gregory Shimansky (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HARMONY-5618?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gregory Shimansky resolved HARMONY-5618.
----------------------------------------

       Resolution: Fixed
    Fix Version/s: 5.0M6

Patch is applied at 639337.

> [drlvm][port][signals] Fix for native stack unwinding
> -----------------------------------------------------
>
>                 Key: HARMONY-5618
>                 URL: https://issues.apache.org/jira/browse/HARMONY-5618
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>            Reporter: Ilya Berezhniuk
>            Assignee: Gregory Shimansky
>            Priority: Minor
>             Fix For: 5.0M6
>
>         Attachments: H-5618.patch
>
>
> There were problems with native stack unwinding using EBP/RBP frame pointer - sometimes it points to incorrect return address.
> Therefore I've disabled EBP/RBP unwinding in the new crash handler implementation committed recently.
> Unfortunately, it appeared that unwinding with only 2nd heuristic approach (return addresses lookup in the stack) works not good also.
> This problems do not appear only on Windows/debug where local stack is erased in debug prolog and does not contain return addresses from previous call branches.
> I experimented a bit, and found a way to solve this problem.
> Suggested patch re-enables EBP/RBP unwinding with additional validation to filter out wrong EBP/RBP values which do not correspond to the current frame.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.