I'm trying to find a memory bug where all of a sudden my program freezes
and eats up all the memory.
I tried to do some printing, and tried to understand which line of code is
responsible for causing the memory leak to happen.
The print statement looks like this:
println("computing cost for...", fact.f_name, " ", dom)
where "fact" is an object with a name, "f_name", which is a string, and
"dom" is simply a list of tuple of numbers.
Usually, this line of code will output something like this in the console:
computing cost for...f_inte1 [(7.2109375,7.21875)]
Indicating that it is about to start computing the cost for the fact
object. However, when this memory bug occurs, it only prints this:
computing cost for...^CERROR: interrupt
It does not give me the name of "fact" before the bug happens, nor does it
attempt to print out the "dom". It doesn't even give me a stack trace!
I am very clueless on what could be happening. So here is my 3 questions:
1) What could cause a print statement to not finish printing? the fact
objects are all already allocated, and all with a valid f_name field.
2) If there is some memory error where I am forced to ^C before my computer
freezes, how can I recover a call-stack?
the answer here I think... is I am using the @profile macro so something
happened that prevented the call-stack from showing.
3) Is there some way of knowing which part of the program is consuming most
of the memory at the time of the bug? I tried using
"--track-allocation=all", but I do not care about memories that are already
re-claimed by the garbage collector, but I do care about memory yet to be
claimed at the time of the error.
Sorry for the long post...
--evan