@@ -54,6 +54,8 @@ static void add_post_reg_state(VCPU *vcpu, unsigned int vcpu_index,
54
54
assert (s == prev_reg -> content -> len );
55
55
if (!memcmp (rdata -> data , prev_reg -> content -> data , s )) {
56
56
// No change
57
+ // Flush byte array
58
+ g_byte_array_set_size (rdata , 0 );
57
59
continue ;
58
60
}
59
61
@@ -62,6 +64,8 @@ static void add_post_reg_state(VCPU *vcpu, unsigned int vcpu_index,
62
64
qemu_plugin_outs ("Failed to append opinfo.\n" );
63
65
return ;
64
66
}
67
+ // Flush byte array
68
+ g_byte_array_set_size (rdata , 0 );
65
69
}
66
70
}
67
71
@@ -72,7 +76,12 @@ static void add_pre_reg_state(VCPU *vcpu, unsigned int vcpu_index,
72
76
qemu_plugin_reg_descriptor * reg =
73
77
& g_array_index (current_regs , qemu_plugin_reg_descriptor , i );
74
78
size_t s = qemu_plugin_read_register (reg -> handle , rdata );
79
+ Register * prev_reg = g_ptr_array_index (vcpu -> registers , i );
80
+ g_assert (!strcmp (prev_reg -> name , reg -> name ) && prev_reg -> handle == reg -> handle );
81
+ memcpy (prev_reg -> content -> data , rdata -> data , prev_reg -> content -> len );
75
82
frame_buffer_append_reg_info (fbuf , reg -> name , rdata , s , OperandRead );
83
+ // Flush byte array
84
+ g_byte_array_set_size (rdata , 0 );
76
85
}
77
86
}
78
87
0 commit comments