anchor.diff:        CaptureStackTrace(nil, FRAMES_TO_SKIP);
         if raw_frame_count > 0 then
         begin
  -        threads := ConvertRawStackToSentryStack;
  +        threads := ConvertRawStackToSentryStack(true);
           if threads <> 0 then
             sentry_value_set_by_key(event, 'threads', threads);
           raw_frame_count := 0;
  
positive.code:   stacktrace := sentry_value_new_object;
    sentry_value_set_by_key(stacktrace, 'frames', frames);
  
    threads := sentry_value_new_list;
    thread := sentry_value_new_object;
    sentry_value_set_by_key(thread, 'stacktrace', stacktrace);
    sentry_value_append(threads, thread);
  
    Result := threads;
  end;
  
  function TSentryClient.ExceptionEvent(const ExceptionClassName, Message: string; AExceptAddr: Pointer = nil): String;
  var
    event: sentry_value_t;
    uuid: sentry_uuid_t;
    threads: sentry_value_t;
  begin
    if FReportExceptions then
    begin
      event := sentry_value_new_event;
  
      DoBeforeEvent(event, ExceptionClassName, Message, scetException);
  
    (*
      When we set exception information, the report is corrupted. Not sure why. So
      for now we won't create as an exception event. We still get all the information
      we want from this.
  
      Investigating this further at https://forum.sentry.io/t/corrupted-display-when-exception-data-is-set-using-native-sdk/9167/2
  
      exc := sentry_value_new_object;
      sentry_value_set_by_key(exc, 'type', sentry_value_new_string(PAnsiChar(UTF8Encode(ExceptionClassName))));
      sentry_value_set_by_key(exc, 'value', sentry_value_new_string(PAnsiChar(UTF8Encode(Message))));
      sentry_value_set_by_key(event, 'exception', exc);
    *)
  
      sentry_value_set_by_key(event, 'message', sentry_value_new_string(PAnsiChar(UTF8Encode(Message))));
      sentry_value_set_by_key(event, 'logger', sentry_value_new_string(PAnsiChar(UTF8Encode(FLogger))));
  
      if raw_frame_count > 0 then
      begin
        threads := ConvertRawStackToSentryStack;
        if threads <> 0 then
          sentry_value_set_by_key(event, 'threads', threads);
        raw_frame_count := 0;
      end;
  
      // We will rebuild the module list at time of event in order to ensure we
      // don't lose dynamically loaded modules, as far as possible. This is
  
negative.code:   end;
  end;
  
  function TSentryClient.ConvertRawStackToSentryStack(wrapWithThread: Boolean): sentry_value_t;
  var
    frames, s_frame, stacktrace, thread, threads: sentry_value_t;
    s: AnsiString;
  