[GHC] #11338: Unwind information is incorrect in region surrounding a safe foreign call

#11338: Unwind information is incorrect in region surrounding a safe foreign call -------------------------------------+------------------------------------- Reporter: bgamari | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.10.3 Keywords: | Operating System: Unknown/Multiple Architecture: | Type of failure: None/Unknown Unknown/Multiple | Test Case: | Blocked By: Blocking: | Related Tickets: #11337 Differential Rev(s): | Wiki Page: -------------------------------------+------------------------------------- Safe foreign calls can occur at the end of a block. Like #11337, these produce incorrect debug information. However, the situation is worse in the case of foreign calls since these return to the calling block. This means that we are currently unable to unwind out of a safe foreign call. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11338 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#11338: Unwind information is incorrect in region surrounding a safe foreign call -------------------------------------+------------------------------------- Reporter: bgamari | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.10.3 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Debugging | Unknown/Multiple information is incorrect | Test Case: Blocked By: | Blocking: Related Tickets: #11337 | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by bgamari): * failure: None/Unknown => Debugging information is incorrect -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11338#comment:1 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#11338: Unwind information is incorrect in region surrounding a safe foreign call -------------------------------------+------------------------------------- Reporter: bgamari | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.10.3 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Debugging | Unknown/Multiple information is incorrect | Test Case: Blocked By: | Blocking: Related Tickets: #11337, #11353 | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by bgamari): * related: #11337 => #11337, #11353 -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11338#comment:2 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#11338: Unwind information is incorrect in region surrounding a safe foreign call -------------------------------------+------------------------------------- Reporter: bgamari | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.10.3 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Debugging | Unknown/Multiple information is incorrect | Test Case: Blocked By: | Blocking: Related Tickets: #11337, #11353 | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by simonmar): * cc: simonmar (added) -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11338#comment:3 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#11338: Unwind information is incorrect in region surrounding a safe foreign call -------------------------------------+------------------------------------- Reporter: bgamari | Owner: Type: bug | Status: new Priority: normal | Milestone: 8.2.1 Component: Compiler | Version: 7.10.3 (CodeGen) | Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Debugging | Unknown/Multiple information is incorrect | Test Case: Blocked By: | Blocking: Related Tickets: #11337, #11353 | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by bgamari): * component: Compiler => Compiler (CodeGen) * milestone: => 8.2.1 @@ -1,4 +1,3 @@ - Safe foreign calls can occur at the end of a block. Like #11337, these - produce incorrect debug information. However, the situation is worse in - the case of foreign calls since these return to the calling block. This - means that we are currently unable to unwind out of a safe foreign call. + The code generator produces a prologue and epilogue around a safe foreign + call to suspend and resume the thread state. This needs to be decorated + with proper unwind information. New description: The code generator produces a prologue and epilogue around a safe foreign call to suspend and resume the thread state. This needs to be decorated with proper unwind information. -- -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11338#comment:4 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#11338: Unwind information is incorrect in region surrounding a safe foreign call -------------------------------------+------------------------------------- Reporter: bgamari | Owner: Type: bug | Status: closed Priority: normal | Milestone: 8.2.1 Component: Compiler | Version: 7.10.3 (CodeGen) | Resolution: invalid | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Debugging | Unknown/Multiple information is incorrect | Test Case: Blocked By: | Blocking: Related Tickets: #11337, #11353 | Differential Rev(s): Phab:D2743 Wiki Page: | -------------------------------------+------------------------------------- Changes (by bgamari): * status: new => closed * differential: => Phab:D2743 * resolution: => invalid Comment: It turns out that this actually isn't a problem. I don't recall what my original reasoning here was, but there seems to be no reason why we can't rely on the value of the STG `Sp` register in the vicinity of a safe foreign call. My DWARF patches work fine, even without Phab:D2743. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11338#comment:5 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#11338: Unwind information is incorrect in region surrounding a safe foreign call
-------------------------------------+-------------------------------------
Reporter: bgamari | Owner:
Type: bug | Status: closed
Priority: normal | Milestone: 8.2.1
Component: Compiler | Version: 7.10.3
(CodeGen) |
Resolution: invalid | Keywords:
Operating System: Unknown/Multiple | Architecture:
Type of failure: Debugging | Unknown/Multiple
information is incorrect | Test Case:
Blocked By: | Blocking:
Related Tickets: #11337, #11353 | Differential Rev(s): Phab:D2743
Wiki Page: |
-------------------------------------+-------------------------------------
Comment (by Ben Gamari

#11338: Unwind information is incorrect in region surrounding a safe foreign call -------------------------------------+------------------------------------- Reporter: bgamari | Owner: (none) Type: bug | Status: closed Priority: normal | Milestone: 8.2.1 Component: Compiler | Version: 7.10.3 (CodeGen) | Resolution: invalid | Keywords: DWARF Operating System: Unknown/Multiple | Architecture: Type of failure: Debugging | Unknown/Multiple information is incorrect | Test Case: Blocked By: | Blocking: Related Tickets: #11337, #11353 | Differential Rev(s): Phab:D2743 Wiki Page: | -------------------------------------+------------------------------------- Changes (by bgamari): * keywords: => DWARF -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11338#comment:7 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler
participants (1)
-
GHC