<div dir="auto">Hi Adithya,<div dir="auto"><br></div><div dir="auto">It seems that eras profiling mode allows you to determine this information. In eras profiling the era the object is created is stored in the profiling header, you can automatically increment the era with the --automatic-era-increment at each major collection, you can work out "how many collections an object has been live" by subtracting the current era from the era the object was created.</div><div dir="auto"><br></div><div dir="auto">Cheers,</div><div dir="auto"><br></div><div dir="auto">Matt</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, 25 Feb 2024, 15:43 Csaba Hruska, <<a href="mailto:csaba.hruska@gmail.com">csaba.hruska@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Hi,</div><div>Are you using profiling mode?</div><div>Regards,</div><div>Csaba<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Feb 25, 2024 at 1:59 PM Adithya Kumar <<a href="mailto:adi.obilisetty@gmail.com" target="_blank" rel="noreferrer">adi.obilisetty@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>Hello,<br></div><div><br></div><div>I want to add a field for collecting information about the number of GCs a</div>particular heap object survived.<br><br>I've done the following to implement this:<br>- Add a field "StgWord gc_id" to struct "StgHeader" and "StgThunkHeader"<br>- Update "SET_HDR" macro in "ClosureMacros.h" to update the "gc_id"<br>- Update the "closureTypeHeaderSize" function in "Heap/ClosureTypes.hs" to<br> account for that 1 extra word.<br><br>Compilation leads to a segmentation fault. The stage 2 compiler is built. But<br>usage of it leads to a segmentation fault.<br><br>Build output:<br>```<br>chmod +x inplace/bin/ghc-stage2<br>"inplace/bin/ghc-stage2" -hisuf dyn_hi -osuf dyn_o -hcsuf dyn_hc -fPIC -dynamic -O0 -H64m -Wall -hide-all-packages -package-env - -i -iutils/check-api-annotations/. -iutils/check-api-annotations/dist-install/build -Iutils/check-api-annotations/dist-install/build -iutils/check-api-annotations/dist-install/build/check-api-annotations/autogen -Iutils/check-api-annotations/dist-install/build/check-api-annotations/autogen -optP-include -optPutils/check-api-annotations/dist-install/build/check-api-annotations/autogen/cabal_macros.h -package-id Cabal-3.2.1.0 -package-id base-4.14.3.0 -package-id containers-0.6.5.1 -package-id directory-1.3.6.0 -package-id ghc-8.10.7.20240224 -Wall -XHaskell2010 -no-user-package-db -rtsopts -Wnoncanonical-monad-instances -outputdir utils/check-api-annotations/dist-install/build -c utils/check-api-annotations/./Main.hs -o utils/check-api-annotations/dist-install/build/Main.dyn_o<br>utils/check-api-annotations/<a href="http://ghc.mk:18" target="_blank" rel="noreferrer">ghc.mk:18</a>: recipe for target 'utils/check-api-annotations/dist-install/build/Main.dyn_o' failed<br>make[1]: *** [utils/check-api-annotations/dist-install/build/Main.dyn_o] Segmentation fault (core dumped)<br>Makefile:123: recipe for target 'all' failed<br>make: *** [all] Error 2<br>```<br><br>Is there any other place I've missed follow-up modifications?<br><br><div>I appreciate any help provided.</div><div><br></div>Best,<br>Adithya<br></div>
_______________________________________________<br>
ghc-devs mailing list<br>
<a href="mailto:ghc-devs@haskell.org" target="_blank" rel="noreferrer">ghc-devs@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs" rel="noreferrer noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs</a><br>
</blockquote></div>
_______________________________________________<br>
ghc-devs mailing list<br>
<a href="mailto:ghc-devs@haskell.org" target="_blank" rel="noreferrer">ghc-devs@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs" rel="noreferrer noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs</a><br>
</blockquote></div>