なんかUFOsのmergeがうまくいかない。
$ lldb /Users/xxx/git_work/afdko/FDK/Tools/osx/mergeFonts -c /cores/core.2629 (lldb) target create "/Users/xxx/git_work/afdko/FDK/Tools/osx/mergeFonts" --core "/cores/core.2629" btCore file '/cores/core.2629' (i386) was loaded. (lldb) bt * thread #1, stop reason = signal SIGSTOP * frame #0: 0xa1659496 libsystem_kernel.dylib`__pthread_kill + 10 frame #1: 0xa173fc63 libsystem_pthread.dylib`pthread_kill + 90 frame #2: 0xa15b9a34 libsystem_c.dylib`abort + 141 frame #3: 0xa16b08e7 libsystem_malloc.dylib`free + 529 frame #4: 0x000b261b mergeFonts`mem_manage(cb=0x7b20568c, old=0x7b1b9428, size=0) at mergeFonts.c:730 frame #5: 0x000d4fee mergeFonts`memFree(h=0x7b1fb000, ptr=0x7b1b9428) at uforead.c:341 frame #6: 0x000d5c2b mergeFonts`ufoEndFont(h=0x7b1fb000) at uforead.c:4478 frame #7: 0x000c8e15 mergeFonts`ufoMergeFont(h=0x7b1b8a00, origin=0, isFirstFont=1, srcCtx=0xbff53308) at mergeFonts.c:6005 frame #8: 0x000c7a46 mergeFonts`mergeFile(h=0x7b1b8a00, srcname="SourceHanSansJP-Regular_AJ1-Generic.ufo", isFirstFont=1, srcCtx=0xbff53308) at mergeFonts.c:7976 frame #9: 0x000bf480 mergeFonts`doMergeFileSet(h=0x7b1b8a00, argc=7, argv=0xbff535f8, i=5) at mergeFonts.c:8181 frame #10: 0x000af646 mergeFonts`parseArgs(h=0x7b1b8a00, argc=7, argv=0xbff535f8) at mergeFonts.c:8288 frame #11: 0x000ae515 mergeFonts`main(argc=7, argv=0xbff535f8) at mergeFonts.c:9376 frame #12: 0xa152a395 libdyld.dylib`start + 1
デバッグ版を使いたかったので、
diff --git a/FDK/Tools/Programs/mergeFonts/build/osx/xcode4/BuildAll.sh b/FDK/Tools/Programs/mergeFonts/build/osx/xcode4/BuildAll.sh index 98f386c..f669e83 100755 --- a/FDK/Tools/Programs/mergeFonts/build/osx/xcode4/BuildAll.sh +++ b/FDK/Tools/Programs/mergeFonts/build/osx/xcode4/BuildAll.sh @@ -5,5 +5,6 @@ xcodebuild -target BuildAll -project $target.xcodeproj -configuration Release $1 if [ -z "$1" ] then - cp ../../../exe/osx/release/$target ../../../../../osx/ +# cp ../../../exe/osx/release/$target ../../../../../osx/ + cp ../../../exe/osx/debug/$target ../../../../../osx/ fi
で事前にデバッグビルド版を転送しておいた。シンボルが見えていいね!
とりあえずは
diff --git a/FDK/Tools/Programs/mergeFonts/source/mergeFonts.c b/FDK/Tools/Programs/mergeFonts/source/mergeFonts.c index f6c3a6e..b5d7f99 100644 --- a/FDK/Tools/Programs/mergeFonts/source/mergeFonts.c +++ b/FDK/Tools/Programs/mergeFonts/source/mergeFonts.c @@ -727,7 +727,7 @@ static void *mem_manage(ctlMemoryCallbacks *cb, void *old, size_t size) return NULL; /* size == 0, old == NULL */ else { - free(old); /* size == 0, old != NULL */ + //free(old); /* size == 0, old != NULL */ return NULL; } }
でクラッシュしなくはなるが...。どっかのポインタがNULLで初期化されてないんだろうなぁ。