A program development support apparatus is provided. A CPU executes a target program and outputs instruction address/instruction code data. The event detection section asserts and outputs a section trace start signal upon detecting that the instruction address/instruction code data matches a predetermined instruction address or instruction code set as an event condition in advance. When an instruction code of the instruction address/instruction code data is a branch instruction, or the section trace start signal is active, the trace data generation section outputs an uncompressed instruction address as trace data. When the instruction address is not the branch instruction, and the section trace start signal is not active, the trace data generation section generates a plurality of compressed instruction addresses by compressing the instruction address and then combines the compressed instruction addresses and outputs them as the trace data.
A method and apparatus for creating a compressed trace for a program, wherein events are compressed separately to provide improved compression and tracing. A sequence of events for a program is selected, and a sequence of values is then determined for each of the selected events occurring during an execution of the program. Each sequence of values is then compressed to generate a compressed sequence of values for each event. These values are then ordered in accordance with information stored in selected events (such as for example, branch events), where the ordered values correspond to the trace.