Improved exception stack frame displayed data. Added stack frame method address display.
Moved sequence point logic to seq-points.h and seq-points.c
SeqPoint are now kept in memory with a compact encoding. MonoSeqPointInfo has now a pointer to a buffer containing encoded sequence points, and to a buffer containing next values. As there is no longer an array of SeqPoint ready to be read, SeqPointIterator was added.
Added methods to read and write MonoSeqPointInfo.
aot-runtime and aot-compiler now use seq_point_info_read/write.
Changed METHOD_EXIT_IL_OFFSET to -2 The new value produces lower deltas and does not overflow when using variable integer encoding.
Sequence points are now generated by default.
Sequence points debug data is no longer store by default. Debug data is only stored when cfg->gen_seq_points_debug_data is true.
Changed mini-exceptions functions to get IL offsets from seq point. mono_walk_stack_full and ves_icall_get_trace are now using find_prev_seq_point_for_native_offset to retrieve IL offsets.
Ignore seq points of entry and exit IL offsets. Those seq points are only required for debugging.
Added size of sequence points to mono jit stats.
SeqPoint next array is no longer allocated by default. Next array will only be allocated if has_debug_data is true.
Merged SeqPoint.next_array with SeqPoint.array.
MonoSeqPointInfo no longer uses a GByteArray. GByteArray requires too much memory, we still use GByteArray to build the buffer but when its done we store in MonoSeqPointInfo a copy.
MonoSeqPointInfo data is now compressed. Encode data MonoSeqPointInfo len, has_debug_data and alloc_data into a single variable int.
Renamed seq_point_info_write_size to seq_point_info_get_write_size.
Added out_buf parameter to encode_var_int and decode_var_int.
Changed METHOD_EXIT_IL_OFFSET back to 0xffffff. The previous value was -2, that could introduce comparison issues. Added flag MONO_SEQ_POINT_FLAG_EXIT_IL that is used to encode the exit IL, this avoids a 4 byte IL offset delta.
Added opcode il_seq_point.
il_seq_point has zero lenght and is used in release instead of the expensive seq_point opcode.