Re: xdvi のデバッグ (Re: ptetex3 on Ubuntu-ja5.10)

名前: 栗山雅俊
日時: 2005-10-20 15:33:44
IPアドレス: 219.116.79.*

>>38703 土村さん、ご教授ありがとうございます。 あれから縦書きの rotate 関係がうまくいっていないのでは? と思い、pLaTeX2e でも簡単なサンプルを作ってみたのですが、 下記のような単純なものでも「アスキー」の「ー」や括弧(「」)、 ローマ字が xdvi でちゃんと出力されないようです。 \documentclass{tarticle} \begin{document} アスキー日本語\LaTeX 「かっこ」 \end{document} バックトレースの出力ですが、何回か試みるとそのつどエラーの 箇所が少しずつ異なっているようです。見よう見真似で操作して みましたがこれで何かわかるでしょうか。 (中略)の部分の出力は今までと大体同じようです。 ---------------------------------------------- 2005.10.20 作業 3 core.2756 ---------------------------------------------- $ gdb xdvi-motif.bin core.2756 GNU gdb Red Hat Linux (6.3.0.0-1.21rh) (中略) #0 0x00783402 in __kernel_vsyscall () (gdb) where #0 0x00783402 in __kernel_vsyscall () #1 0x00398118 in raise () from /lib/libc.so.6 #2 0x00399888 in abort () from /lib/libc.so.6 #3 0x003cd22a in __libc_message () from /lib/libc.so.6 #4 0x003d3124 in _int_free () from /lib/libc.so.6 #5 0x003d365f in free () from /lib/libc.so.6 #6 0x0804fd32 in set_char_rotate_glyph (g=0x93c9be0, reverse_rotate=Variable "reverse_rotate" is not available. ) at dvi-draw.c:2230 #7 0x0805968c in set_char (ch=66) at dvi-draw.c:2196 #8 0x080597cd in set_t1_char (ch=66) at dvi-draw.c:6684 #9 0x08056749 in draw_part (fp=0x8ed9828, minframe=0x815dea0, current_dimconv=8.3022000830220009) at dvi-draw.c:2600 #10 0x08057362 in draw_page () at dvi-draw.c:3001 #11 0x08065ea2 in redraw (windowrec=0x814cea0) at events.c:5114 #12 0x08066cf5 in do_pages () at events.c:5463 #13 0x080856b0 in run_dvi_file (filename=0x81628a0 "/home/electra/sample.dvi", data=0x81638f4) at xdvi.c:3973 #14 0x080869d6 in main (argc=2, argv=0xbff89e24) at xdvi.c:4362 (gdb) frame 6 #6 0x0804fd32 in set_char_rotate_glyph (g=0x93c9be0, reverse_rotate=Variable "reverse_rotate" is not available. ) at dvi-draw.c:2230 2230 free(g->pixmap2); (gdb) list 2225 free(g->bitmap2.bits); 2226 g->bitmap2.bits = NULL; 2227 } 2228 #ifdef GREY 2229 if (g->pixmap2 != NULL) { 2230 free(g->pixmap2); 2231 g->pixmap2 = NULL; 2232 } 2233 #endif 2234 } (gdb) print g->bitmap2.bits $1 = 0x0 (gdb) print g->pixmap2 $2 = 0x9476080 "" (gdb) ---------------------------------------------- 2005.10.20 作業 4 core.2663 ---------------------------------------------- $ gdb xdvi-motif.bin core.2663 GNU gdb Red Hat Linux (6.3.0.0-1.21rh) (中略) #0 0x00b14402 in __kernel_vsyscall () (gdb) bt #0 0x00b14402 in __kernel_vsyscall () #1 0x00740118 in raise () from /lib/libc.so.6 #2 0x00741888 in abort () from /lib/libc.so.6 #3 0x0077522a in __libc_message () from /lib/libc.so.6 #4 0x0077c68e in _int_malloc () from /lib/libc.so.6 #5 0x0077d492 in malloc () from /lib/libc.so.6 #6 0x080cf633 in xmalloc (size=Variable "size" is not available. ) at xmalloc.c:26 #7 0x0805805e in shrink_glyph_grey (g=0x9c05af8) at dvi-draw.c:1656 #8 0x08059539 in common_set_char (g=0x9c05af8) at dvi-draw.c:2293 #9 0x080597cd in set_t1_char (ch=108) at dvi-draw.c:6684 #10 0x08056749 in draw_part (fp=0x9714828, minframe=0x815dea0, current_dimconv=8.3022000830220009) at dvi-draw.c:2600 #11 0x08057362 in draw_page () at dvi-draw.c:3001 #12 0x08065ea2 in redraw (windowrec=0x814cea0) at events.c:5114 #13 0x08066cf5 in do_pages () at events.c:5463 #14 0x080856b0 in run_dvi_file (filename=0x81628a0 "/home/electra/sample.dvi", data=0x81638f4) at xdvi.c:3973 #15 0x080869d6 in main (argc=2, argv=0xbfb8f624) at xdvi.c:4362 (gdb) frame 6 #6 0x080cf633 in xmalloc (size=Variable "size" is not available. ) at xmalloc.c:26 26 void *new_mem = (void *) malloc (size ? size : 1); (gdb) list 21 22 23 void * 24 xmalloc P1C(unsigned, size) 25 { 26 void *new_mem = (void *) malloc (size ? size : 1); 27 28 if (new_mem == NULL) 29 { 30 fprintf (stderr, "fatal: memory exhausted (xmalloc of %u bytes).\n", (gdb) print new_mem Variable "new_mem" is not available. (gdb) print size Variable "size" is not available. (gdb) ---------------------------------------------- 2005.10.20 作業 5 core.5262 ---------------------------------------------- $ gdb xdvi-motif.bin core.5262 GNU gdb Red Hat Linux (6.3.0.0-1.21rh) (中略) #0 0x00636402 in __kernel_vsyscall () (gdb) where #0 0x00636402 in __kernel_vsyscall () #1 0x00740118 in raise () from /lib/libc.so.6 #2 0x00741888 in abort () from /lib/libc.so.6 #3 0x0077522a in __libc_message () from /lib/libc.so.6 #4 0x0077b124 in _int_free () from /lib/libc.so.6 #5 0x0077b65f in free () from /lib/libc.so.6 #6 0x0804f37d in rotate_bitmap (bm=0xa17d990) at dvi-draw.c:1375 #7 0x0804fce9 in set_char_rotate_glyph (g=0xa17d984, reverse_rotate=Variable "reverse_rotate" is not available. ) at dvi-draw.c:2212 #8 0x0805968c in set_char (ch=111) at dvi-draw.c:2196 #9 0x080597cd in set_t1_char (ch=111) at dvi-draw.c:6684 #10 0x08056749 in draw_part (fp=0x9c7ac80, minframe=0x815dea0, current_dimconv=8.3022000830220009) at dvi-draw.c:2600 #11 0x08057362 in draw_page () at dvi-draw.c:3001 #12 0x08065ea2 in redraw (windowrec=0x814cea0) at events.c:5114 #13 0x08066cf5 in do_pages () at events.c:5463 #14 0x080856b0 in run_dvi_file (filename=0x81628a0 "/home/electra/sample.dvi", data=0x81638f4) at xdvi.c:3973 #15 0x080869d6 in main (argc=2, argv=0xbff24c04) at xdvi.c:4362 (gdb) frame 6 #6 0x0804f37d in rotate_bitmap (bm=0xa17d990) at dvi-draw.c:1375 1375 free(bm->bits); (gdb) list 1370 } 1371 else m1 >>= 1; 1372 #endif 1373 } 1374 1375 free(bm->bits); 1376 *bm = new_bm; 1377 } 1378 1379 (gdb) print bm->bits $1 = 0xa20bcc0 "" (gdb) print m1 $2 = 64 (gdb) frame 7 #7 0x0804fce9 in set_char_rotate_glyph (g=0xa17d984, reverse_rotate=Variable "reverse_rotate" is not available. ) at dvi-draw.c:2212 2212 rotate_bitmap(&g->bitmap); (gdb) list 2207 set_char_rotate_glyph(struct glyph *g, int reverse_rotate) 2208 { 2209 if (g->tdir != TATE) { 2210 int tmp; 2211 if (!reverse_rotate) { 2212 rotate_bitmap(&g->bitmap); 2213 tmp = g->x; 2214 g->x = g->bitmap.w - g->y; 2215 g->y = tmp; 2216 } (gdb) print g->tdir $3 = 0 (gdb) print !reverse_rotate Variable "reverse_rotate" is not available. (gdb) print g->bitmap $4 = {w = 37, h = 38, bytes_wide = 8, bits = 0xa20bcc0 ""} (gdb) print g->x $5 = -2 (gdb) print g->bitmap.w $6 = 37 (gdb)

この書き込みへの返事:

お名前
題名 
メッセージ(タグは <a href="...">...</a> だけ使えます)