◀Unicode版開発トップへ
1996
プリンタ切り替えの不調
1997
Re: プリンタ切り替えの不調
1998
Re2: プリンタ切り替えの不調
1999
Re:プリンタ切り替えの不調
2000
Re2:プリンタ切り替えの不調
2001
Re3:プリンタ切り替えの不調
2003
Re4:プリンタ切り替えの不調
[1996]
プリンタ切り替えの不調
syat
2013年06月22日 15:07
印刷プレビューのプリンタボタンを押して、プリンタを切り替えてOKを押すとクラッシュすることがあります。何度か同じ操作をしていると印刷プレビューを開いただけで落ちるようになります。
バイナリはSVNの最新でビルドしたバイナリ、OSはWindows8です。
OSのせいかな、とも思いましたが、1.6.7.0 や 2.0.8.0 だと何度切り替えても落ちません。
[1997]
Re: プリンタ切り替えの不調
もか
2013年06月22日 17:16
最近、プリンタ設定の適用周りをいじったのでそのせいだと思います。
調査してみます。
[1998]
Re2: プリンタ切り替えの不調
もか
2013年06月22日 20:51
見つかった問題点:
1. ロック機構が働いていない
OnPrintの中でプリンタ設定が変わったのを検出すると、
印刷中にOnChangeSetting/OnChangePrintSettingが実行されてしまう。
2. プリンタ選択画面の結果を適用していない
プロセス固有の設定のキャッシュのほうだけ更新されてその後の
SendMessage経由のOnChangeSettingで元の設定に書き戻されていた
というのは見つかりましたが、落ちるのの再現・原因の予想はできませんでした。
https://sourceforge.net/p/sakura-editor/patchunicode/583/
にパッチを添付しました。
[1999]
Re:プリンタ切り替えの不調
petit
2013年06月23日 01:39
▼ syatさん
クラッシュ時にミニダンプが出力されてませんか?(CProcess::WriteDump())
それを VS にかければクラッシュ位置・スタック情報が取れると思います。
[2000]
Re2:プリンタ切り替えの不調
syat
2013年06月23日 12:09
もかさんのパッチで改善しました。
ただ再現しないとのことなので、一応ダンプを上げます。
http://
ux.
getuploa
der.
com/
sakura_e
ditor/
download
/
81/
sakura.
dmp.
20130623
.
zip
(最近のOSだとダンプが C:\Users\○○\AppData\Local\CrashDumps にできるんですねー。気づかずiniのフォルダをずっと探してました^^)
[2001]
Re3:プリンタ切り替えの不調
もか
2013年06月23日 14:58
memcpyでアクセス違反っぽいのはわかりましたが、
miniDumpだけではmapファイルかpdbがないと厳しいです。
スタックトレースの情報(STACK_TEXT)もCProcess.cppのMiniDump作成のところを指してるみたいで、
落ちたところのスタックはよくわかりませんでした。
CProcessのものではなく、Windowsの機能の方でミニダンプをとらないと、
ひょっとするとスタックが再現できないのかも。
[2003]
Re4:プリンタ切り替えの不調
syat
2013年06月29日 01:50
遅くなりましたが、もう一度ダンプとpdbを取りました。
http://ux.getuploader.com/sakura_editor/download/82/sakura.exe.20130629.zip
rpcrt4.dllの中で落ちているようです。どうもプリンタドライバ側のような。。よくわかりません。
もかさんのパッチは有効なのでぜひコミットしていただきたいです。