<div dir="ltr"><div dir="ltr"><div dir="ltr" class="gmail_attr">Am Fr., 19. Nov. 2021 um 01:09 Uhr schrieb Ben Gamari <<a href="mailto:ben@smart-cactus.org">ben@smart-cactus.org</a>>:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Artem Pelenitsyn <<a href="mailto:a.pelenitsyn@gmail.com" target="_blank">a.pelenitsyn@gmail.com</a>> writes:<br>
<br>
> Another question would be where do I read about Haskell-native stack<br>
> unwinder. The issue and MR Ben referenced have descriptions, but the MR<br>
> didn't touch anything inside `docs` which is a bit scary. Are there any<br>
> good recourses to dive into it besides the source code in the MR?<br>
><br>
Indeed the user's guide documentation surrounding info table provenance<br>
should be updated to note this new capability.<br></blockquote><div> </div></div><div dir="ltr">Hey Ben, Hey Artem, Hey all,<br><br>Thanks for bringing this up! I'll add some documentation to the user's guide and will likely write a blog post covering the "material" from notes in a more approachable way.<br><br>Two details to note regarding the IPE based backtrace mechanism:<br><br>- It's based on return frames on the STG stack. So, it doesn't work for trivial programs. A return frame is produced when the scrutinee of a case expression is evaluated.<br>The test [1] shows a working example.<br><br>- To get backtraces containing references in libraries, those have to be compiled with `-finfo-table-map`, too.<br><br>Now that I've got the attention of many GHC-Devs: A big Thank-You! goes to Ben and Matthew that were always reachable and always very helpful during the whole development process of this feature!<br><br>Best regards,<br><br>Sven<div><br></div><div>[1] - <a href="https://gitlab.haskell.org/ghc/ghc/-/blob/aed98ddaf72cc38fb570d8415cac5de9d8888818/testsuite/tests/rts/decodeMyStack.hs">https://gitlab.haskell.org/ghc/ghc/-/blob/aed98ddaf72cc38fb570d8415cac5de9d8888818/testsuite/tests/rts/decodeMyStack.hs</a></div></div></div>