パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

Windows 11 22H2、Delphi/C++Builder製アプリが日本語変換時にクラッシュ」記事へのコメント

  • by Anonymous Coward on 2022年10月18日 17時48分 (#4345996)

    今回の不具合はこんなプロセスみたい。

    1) 新しいIMEでON/OFF時に浮動小数点例外が発生する
      診断データの送信をONにすると発生するので、診断データの生成時に何らかの計算をして発生してる?

    2) IME側で浮動小数点例外処理を行ってないので呼び出してるアプリで浮動小数点例外が発生する

    3) Delphi/C++Builder は浮動小数点例外がデフォルトで有効になってる
      VC++は浮動小数点例外がデフォルトで無効になってる

    4) 想定外(UI)のところで浮動小数点例外が発生するのでアプリが落ちる

    Delphi/C++Builderのアプリは(使ってないなら)浮動小数点例外を無効にすれば大丈夫。
    使用するVCLによっては勝手に浮動小数点例外を無効にするので不具合が発生しない。
    (↓をしないと浮動小数点例外処理が動かなくなるという副作用がある)
    使ってる場合は計算で発生する部分だけピンポイントで浮動小数点例外を有効にするとかしないといけない。

    • 診断データの生成で死んだん
      // 言っとけ
      親コメント
    • by Anonymous Coward

      知る必要もないのに浮動小数点例外を有効にするやつがいることにちょっとびっくり。(Delphi/C++Builderが悪い)

      浮動小数点例外っていっても、IEEE754のやつだったら要因はいろいろあるけど、Invalid Operationが起きてるのか?
      ふつうNaNを伝搬させるからいいだろとか思ってるとこうなるわけかな?

      しかし3)のDelphi/C++Builderは浮動小数点例外がデフォルトで有効っていっても、InexactだのUnderflowだのはOFFになってるよね? めんどくさすぎだろ。

      • by Anonymous Coward

        浮動小数点例外といえばPC-9801シリーズ用Windows95

        トラップ部分にバグがあり、たとえば -1の平方根を取るとブルースクリーン(PC-9801用はハードウェアの仕様の都合で青くないのだが)になる。
        Windows98では浮動小数点例外のダイアログボックスが出るだけで落ちなくなった。

      • by Anonymous Coward

        無効だと try catch で浮動小数点数例外補足できないじゃん

    • by Anonymous Coward
      1) 新しいIMEでON/OFF時に浮動小数点例外が発生する

      IEEE Doubleのデフォルトに合わせてプログラム側でチェックさせたほうがいいと思う。

      # rustはそうなってる

    • by Anonymous Coward

      スラド民は、インストールしてすぐに、プライバシー重視側設定にして、
      診断データとか取得しない・送らない設定にしてそう

      多くの大企業も、プライバシー重視設定にしてるはず

      • by Anonymous Coward

        これはスラド民や大企業に限らずそう。
        UWPアプリ公開してるけど、エラーの詳細が送られてくる割合は1割とか。
        正確には一ヶ月で
        「ハングやクラッシュした日時だけ分かる」160:「エラー名が分かる(意味は分からない)」19:「ダンプがダウンロードできる」1
        って感じ。
        ダンプ貰っても仕方ないけどね。
        ただ過去に落ちるバグ入りのままリリースした時はクラッシュ数が急増して冷や汗かいた。

        • by Anonymous Coward

          > エラーの詳細が送られてくる割合は1割とか。

          分母がわからないと…
          エラー発生件数に対して一割なら「診断データ送らなくても件数はわかるの?」だし、
          アプリのダウンロード数(≒ユーザー数)が分母なら10%ってけっこう多いと思えるし。

          • by Anonymous Coward

            >> 「ハングやクラッシュした日時だけ分かる」160:「エラー名が分かる(意味は分からない)」19:「ダンプがダウンロードできる」1

            ってしっかり書いてるけど。3行以上の文章が読めないの?

            • by Anonymous Coward

              ハングやクラッシュしたら、必ず報告が上がってくるんか?

計算機科学者とは、壊れていないものを修理する人々のことである

処理中...