Showing the changes to src/vm/thread.cpp (1 of 24 files). Show all
Unified · Split
| @@ -239,19 +239,25 @@ vm_thread_state_t vm_thread_t::execute(vm_t &vm, const uint32_t quanta) · 238 unmodified lines | |||
| 239 | catch (const unhandled_user_exception &uue) | 239 | catch (const unhandled_user_exception &uue) |
| 240 | { | 240 | { |
| 241 | _error_message = calloc_memory<char>(max_error_message); | 241 | _error_message = calloc_memory<char>(max_error_message); |
| 242 | std::snprintf(_error_message, max_error_message, "%s - '%s' in %s at instruction %d", uue.what(), uue.exception_id, uue.module_name, uue.program_counter); | 242 | const int ec = std::snprintf(_error_message, max_error_message, "%s - '%s' in %s at instruction %d", uue.what(), uue.exception_id, uue.module_name, uue.program_counter); |
| 243 | assert(ec > 0 && ec < max_error_message); | ||
| 244 | (void)ec; | ||
| 243 | _registers.current_thread_state = vm_thread_state_t::broken; | 245 | _registers.current_thread_state = vm_thread_state_t::broken; |
| 244 | } | 246 | } |
| 245 | catch (const index_out_of_range_memory &ioor) | 247 | catch (const index_out_of_range_memory &ioor) |
| 246 | { | 248 | { |
| 247 | _error_message = calloc_memory<char>(max_error_message); | 249 | _error_message = calloc_memory<char>(max_error_message); |
| 248 | std::snprintf(_error_message, max_error_message, "%s - %d [%d,%d]", ioor.what(), ioor.invalid_value, ioor.valid_min, ioor.valid_max); | 250 | const int ec = std::snprintf(_error_message, max_error_message, "%s - %d [%d,%d]", ioor.what(), ioor.invalid_value, ioor.valid_min, ioor.valid_max); |
| 251 | assert(ec > 0 && ec < max_error_message); | ||
| 252 | (void)ec; | ||
| 249 | _registers.current_thread_state = vm_thread_state_t::broken; | 253 | _registers.current_thread_state = vm_thread_state_t::broken; |
| 250 | } | 254 | } |
| 251 | catch (const vm_user_exception &ue) | 255 | catch (const vm_user_exception &ue) |
| 252 | { | 256 | { |
| 253 | _error_message = calloc_memory<char>(max_error_message); | 257 | _error_message = calloc_memory<char>(max_error_message); |
| 254 | std::snprintf(_error_message, max_error_message, "%s", ue.what()); | 258 | const int ec = std::snprintf(_error_message, max_error_message, "%s", ue.what()); |
| 259 | assert(ec > 0 && ec < max_error_message); | ||
| 260 | (void)ec; | ||
| 255 | _registers.current_thread_state = vm_thread_state_t::broken; | 261 | _registers.current_thread_state = vm_thread_state_t::broken; |
| 256 | } | 262 | } |
| 257 | 263 | ||