1. A method of identifying heap-based bugs, comprising: building a model of the program's heap behavior from observing heap behavior of the program during execution; detecting anomalous heap behavior deviating from the model; and reporting information of the anomalous heap behavior indicative of a heap-based bug in the program.