[erlang-questions] Understanding etp-heapdump output in gdb
Tue Dec 19 15:53:27 CET 2017
Thanks. Are those values relative to something? I'm seeing:
Those values look a little bit short for a 64-bit BEAM, or have I just
got holes in my core dump? Can you *have* holes in a core dump on
On 19 December 2017 at 13:33, Lukas Larsson <lukas@REDACTED> wrote:
> On Mon, Dec 18, 2017 at 8:30 PM, Roger Lipscombe <roger@REDACTED>
>> I'm attempting to figure out what binaries a particular process is
>> holding onto. I have a core dump; I have a (seemingly) working gdb
> If it is off-heap binaries that you are interested in I would use
> etp-offheapdump to get information from the process.
> (gdb) etp-offheapdump $p->off_heap.first
> The second to last value of the #RefcBinary should be a char * to the binary
>> I've found the Process I care about:
>> (gdb) set $p = (Process *)0x7f6be3d3f560
>> (gdb) etp-heapdump $p
>> When I run etp-heapdump, I get a boatload of output.
>> It starts with:
>> % heapdump (22077):
>> 0x7f6b93bb8028: | H: 5-tuple | A:0x0003aa4b | B:0x93bb8072 |
>> A:0x0002abcb | C:0x93bb8090 | A:0x001a09cb | H: 2-tuple |
>> 0x7f6b93bb8068: | B:0x93bb80a2 | header 3 | 0x93bb8078 |
>> 0x93bb8080 | 0x93bb8088 | B:0x93bb80ba | C:0x93bb80d8 | header 2
>> 0x7f6b93bb80a8: | 0x93bb80a8 | 0x93bb80b0 | header 3 |
>> 0x93bb80c0 | 0x93bb80c8 | 0x93bb80d0 | B:0x93bb80ea |  (NIL)
>> 0x7f6b93bb80e8: | header 3 | 0x93bb80f0 | 0x93bb80f8 |
>> 0x93bb8100 | H: 2-tuple | ok | <0.20777.000> | H:
>> How do I interpret this output?
> You have to have a good understanding of how the erlang term format works
> internally in order to understand what etp-heapdump prints. I believe that
> https://github.com/happi/theBeamBook has a section describing how it works.
More information about the erlang-questions