[▲前のスレッド]

2015/7/11 (土) 10:12:27 LR4  
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0
[2266] 正規表現OFF置換で異常終了する
以下の手順で異常終了します。sakura ver.2.2.0.1(たぶん2.1.0.0以後)

@正規表現ONの検索または置換を実行
A何か選択(矩形選択、非矩形選択のどちらでも同じ)
B正規表現OFFの置換を実行

手っ取り早い再現手順は以下の通りです。

@ 「無題」で abc を入力する
   -> キャレットは末尾の c の後にくる
A 置換ダイアログを出し、以下の条件で「上検索」を実施
        置換前:a
        置換後:(空)
        正規表現:ON
        他のチェックボックス:すべてOFF
   -> 先頭の a が選択状態になる
B 続けてAのダイアログで正規表現:OFFにして「置換」を実施
   -> 異常終了

2015/7/11 (土) 21:51:52 syat  
Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.132 Safari/537.36
[2267] Re:正規表現OFF置換で異常終了する
▼ LR4さん
> 以下の手順で異常終了します。sakura ver.2.2.0.1(たぶん2.1.0.0以後)
>
> @正規表現ONの検索または置換を実行
> A何か選択(矩形選択、非矩形選択のどちらでも同じ)
> B正規表現OFFの置換を実行


私のところでも再現しました。
パッチを投稿しました。( patchunicode:994)

2015/7/11 (土) 23:22:57 LR4  
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0
[2268] Re2:正規表現OFF置換で異常終了する
▼ syatさん
> 私のところでも再現しました。
> パッチを投稿しました。( patchunicode:994)


試していないのですが、「ChangeCurRegexp()呼び出しが必要かしら?」というのは自分も推測していました。
パッチではパラメータなしのようですが、ChangeCurRegexp(false)にしたら何か問題ありますかね?
そこで再描画まで追加する必要があるかどうか、なのですが、自分にはわかりません。

ところで、提案です。
・USE_CRASHDUMPはデフォルトでONにしませんか?
・ver2.0.5.0までは実施されていた .pdbファイルのリリースを復活しませんか?


今回、再現手順を特定できたのはUSE_CRASHDUMPをONでコンパイルしたsakuraをしばらく使い続けた恩恵でした。
それまでOFFのsakuraを使っていた時には「置換を実行すると異常終了することがある」ということしかわかりませんでした。
そんな報告受けても「再現しません」としか回答できませんよね?
でも、
・異常終了時に生成されたユーザ環境の .dmpファイル
・コンパイル時ソース
・コンパイル時に作成された .pdbファイル

これだけあればVC++2005以後を持っている誰でも障害解析が可能です。
ユーザさんに .dmp ファイルの送付をお願いする必要はありますが、
それだけで障害が起きたソース個所とその時点のスタックトレースがピンポイントで特定できます。

[一般]掲示板の8044だって一発で解決できる可能性があります。

いかがでしょうか?

2015/7/12 (日) 13:02:38 syat  
Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.132 Safari/537.36
[2269] Re3:正規表現OFF置換で異常終了する
▼ LR4さん
> パッチではパラメータなしのようですが、ChangeCurRegexp(false)にしたら何か問題ありますかね?

Command_REPLACEはその後に Command_SEARCH_NEXT() を呼び出していて、その中でもう一度 ChangeCurRegexp が引数なしで呼ばれるので、再描画はいらないですね。


> ・USE_CRASHDUMPはデフォルトでONにしませんか?
> ・ver2.0.5.0までは実施されていた .pdbファイルのリリースを復活しませんか?


よいと思います。

私が無知で申し訳ないのですが、これはリリースビルドでも有効なんでしょうか?
リリースビルドだとsakura.pdbが生成されないみたいですが、作る方法があるのでしょうか?
昔ryojiさんがやっていた記憶はありますが、継承していません・・

2015/7/12 (日) 15:03:07 LR4  
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0
[2270] Re4:正規表現OFF置換で異常終了する
▼ syatさん
> リリースビルドだとsakura.pdbが生成されないみたいですが、作る方法があるのでしょうか?

それはよくある勘違いらしいですが…
プロジェクトのプロパティで以下の設定をすればリリースビルドでもOKです。
[リンカ]-[デバッグ]の画面を開き、
[デバッグ情報の生成]で「はい」を選択
[プログラムデータベースファイル]でパスを指定

もしかするとexeサイズが少し大きくなるかもしれませんが、
性能には何の影響もありません。
私の環境ではサイズも変わりませんでした。
大きくなるといってもせいぜい1KB程度らしいです。

[▼次のスレッド]
INCM/CMT
Cyclamen v3.81
[ut:0.000][st:0.000]