2010-08-02 (Mon)
_ [debian] 続・ps2pdf 変
ps2pdf12 なら変換可能で、ps2pdf13 や ps2pdf14 (ps2pdf)、ps2pdfwr だと同じところで SEGV することがわかった。 そもそも LBP3100 導入時や ghostscript 8.71~dfsg2-3 テスト時にはきちんと変換できてた、a2psj で生成した同じ ps ファイルなんだけどな。ただ、ps2pdf が必ず SEGV するわけではなくて、dvi2ps で変換した ps ファイルは大丈夫だったりする。他の a2psj で変換した ps ファイルで SEGV するものがあるかどうかは未確認。 SEGV するのはどうかと思うけど、変換失敗するのは ps2pdf のせいではなくてもっと別のところにありそう? ちょっと探してみると、漢字を含むpsファイルをps2pdfで変換できないという記事があり、pswrite で ps → ps 変換し、その後 ps2pdf すればよいとのことなので、やってみた。
% a2psj test | ps2pdf - test.pdf
zsh: done a2psj test |
zsh: segmentation fault (core dumped) ps2pdf - test.pdf
%
% a2psj test | gs -q -dNOPAUSE -dBATCH -sDEVICE=pswrite -sOutputFile=- - | ps2pdf - test.pdf
%
うん、OK。evince と acroread で表示させてみたけど問題なし。
2010-08-01 (Sun)
_ [debian] ps2pdf 変
ghostscript 8.71~dfsg2-3 変の件とは、これ自体はアップデートしてないので関係ないはずだけど、いつのまにか ps2pdf が SEGV するようになってた。
#0 0x00002b2c9cbcb946 in igc_reloc_struct_ptr (obj=0x17dbf60,
gcst=0x7fffeb71a760) at ./psi/igc.c:1278
1278 robj = chead->dest +
(gdb) bt
#0 0x00002b2c9cbcb946 in igc_reloc_struct_ptr (obj=0x17dbf60,
gcst=0x7fffeb71a760) at ./psi/igc.c:1278
#1 0x00002b2c9cb5e115 in font_cid2_reloc_ptrs (vptr=0x1712220,
size=<value optimized out>, pstype=<value optimized out>,
gcst=0x7fffeb71a760) at ./base/gsfcid.c:83
#2 0x00002b2c9cbcbc48 in gc_do_reloc (cp=0x161ff70,
mem=<value optimized out>, pstate=0x7fffeb71a760) at ./psi/igc.c:1218
#3 0x00002b2c9cbcdbbe in gs_gc_reclaim (pspaces=<value optimized out>,
global=<value optimized out>) at ./psi/igc.c:438
#4 0x00002b2c9cc4c0d3 in context_reclaim (pspaces=0x11d3c00,
global=<value optimized out>) at ./psi/zcontext.c:283
#5 0x00002b2c9cb91414 in gs_vmreclaim (dmem=0x11d3bf8, space=8)
at ./psi/ireclaim.c:153
#6 ireclaim (dmem=0x11d3bf8, space=8) at ./psi/ireclaim.c:75
#7 0x00002b2c9cb8c521 in interp_reclaim (pi_ctx_p=0x1191348, space=8)
at ./psi/interp.c:439
#8 0x00002b2c9cb81e6a in gs_main_finit (minst=0x11912b0, exit_status=0,
code=0) at ./psi/imain.c:749
#9 0x00002b2c9cb85f08 in gsapi_exit (lib=<value optimized out>)
at ./psi/iapi.c:262
#10 0x0000000000400afb in main (argc=<value optimized out>,
argv=0x7fffeb71ac08) at ./psi/dxmainc.c:88
Bug 691478 - Seg. fault in gs_vmreclaim に似てる。これ自体は rev 11532 で直ってるそうだけど 8.71 には当たらない。