1. An apparatus for computing, including debugging of a software program, comprising: a memory analysis module to be operated by a computer processor to: obtain a compiled software program compiled from the software program and a debug information; receive identification of a memory corruption in the compiled software program; obtain a runtime program control flow trace having a list of basic blocks of the compiled software program; disassemble or cause to be disassembled the list of basic blocks to identify a set of store instructions; identify in the debug information a data type or structure of data types of the memory corruption and of a store instruction in the set of store instructions; determine a candidate store instruction which has the data type or structure of data types of the memory corruption and obtain at least one link linking the candidate store instruction to a portion of the software program; and return the candidate store instruction and the link.