たくさんの情報を流してしまい申し訳無いです。
昨夜レポートした情報に誤りがありました。
> 431 cache (kpse, elt, ret);
> 432
> 433 #ifdef KPSE_DEBUG <=== なんで????
> 434 if (KPATHSEA_DEBUG_P (KPSE_DEBUG_EXPAND)) <== これ実行した時
> 435 {
とレポートしましたが、実際は 431 行目の cache の中の xstrdup で kpse の cache の key を設定する際に発生しているようです。
こんな基本中の基本なのところでおかしくなっているのでで kpse の設定内容に問題がありそうです。なお、この症状は TL2017 でも発症しています。
長くなりますが、収集し直した情報をレポートします。
★ cache のソースリスト情報
68 static void
69 cache (kpathsea kpse, const_string key, str_llist_type *value)
70 {
71 kpse->cache_length++;
72 XRETALLOC (kpse->the_cache, kpse->cache_length, cache_entry);
73 kpse->the_cache[kpse->cache_length - 1].key = xstrdup (key);
74 kpse->the_cache[kpse->cache_length - 1].value = value;
75 }
★73行目を実行する前の左辺の情報
(gdb) p kpse->the_cache[kpse->cache_length - 1]
$1 = {key = 0x800e17150 "/nonesuch", value = 0x800e151b8}
★73行目を実行すr前のグローバル変数 logfile の値
(gdb) p logfile
$2 = 0x800e15218 "mendbug.ilg"
(gdb) n
73 kpse->the_cache[kpse->cache_length - 1].key = xstrdup (key);
(gdb) p
$4 = 0x800e15218 "mendbug.ilg"
★73行目実行
(gdb) n
74 kpse->the_cache[kpse->cache_length - 1].value = value;
★73行目実行後の logfile は壊れている
(gdb) p
$5 = 0x800e15218 "mendbug.."
★73行目実行後の左辺
(gdb) p kpse->the_cache[kpse->cache_length - 1]
$6 = {key = 0x800e15220 ".", value = 0x0}
/nonesuch となっていたのが . に置き換わっている
アロケートした key のアドレスが logfile が使っている一部になっている
★関数トレース情報
(gdb) where
#0 cache (kpse=0x642680 <kpse_def_inst>, key=0x800e56600 ".", value=0x800e15208) at ../../../texk/kpathsea/elt-dirs.c:74
#1 0x000000000041f14e in kpathsea_element_dirs (kpse=0x642680 <kpse_def_inst>, elt=0x800e56600 ".") at ../../../texk/kpathsea/elt-dirs.c:431
#2 0x000000000041a5ad in path_search (kpse=0x642680 <kpse_def_inst>, path=0x420b9e ".", name=0x800e1cb40 "mendbug.dic", must_exist=1, all=0)
at ../../../texk/kpathsea/pathsearch.c:291
#3 0x000000000041a7b2 in search (kpse=0x642680 <kpse_def_inst>, path=0x420b9e ".", original_name=0x800e170b0 "mendbug.dic", must_exist=1, all=0)
at ../../../texk/kpathsea/pathsearch.c:376
#4 0x000000000041adb4 in kpathsea_path_search (kpse=0x642680 <kpse_def_inst>, path=0x420b9e ".", name=0x800e170b0 "mendbug.dic", must_exist=1)
at ../../../texk/kpathsea/pathsearch.c:577
#5 0x000000000041ae3f in kpse_path_search (path=0x420b9e ".", name=0x800e170b0 "mendbug.dic", must_exist=1)
at ../../../texk/kpathsea/pathsearch.c:598
#6 0x000000000040956d in KP_find_file (info=0x641dd0 <kp_dict>, name=0x800e170b0 "mendbug.dic") at ../../../texk/mendexk/kp.c:40
#7 0x0000000000401eb4 in dicread (filename=0x800e170b0 "mendbug.dic") at ../../../texk/mendexk/convert.c:74
#8 0x000000000040a46e in main (argc=5, argv=0x7fffffffea30) at ../../../texk/mendexk/main.c:303
以上です