chmdump fails

編譯是成功了,但是會有這類的錯誤:

Getting ::DataSpace/NameList, de = 00000000

6 [main] chmdump 4036 _cygtls::handle_exceptions: Error while dumping stat

e (probably corrupted stack)

Segmentation fault (core dumped)

只好繼續debug,看到Google有兩篇很有用的文章,紀錄如下:

Malicious CHM
Microsoft’s HTML Help (.chm) format

在cygwin下偵錯時,因為程式都是用fprintf(stderr,…之類的作輸出,所以如果要輸出到檔案,得要這麼作才行:

我要如何將 csh 的 stdout 與 stderr 導向到不同的地方呢?

我要如何將 csh 的 stdout 與 stderr 導向到不同的地方呢?

在 csh 中,用 “>” 將 stdout 導向,用 “>&” 則能將 stdout 與 stderr 一起導向。可是不能只單獨把 stderr 轉向。最好的方法是

	        ( command >stdout_file ) >&stderr_file

以上的命令會開一個 subshell 執行 “command”;而這個 subshell 的  stdout 則被轉向到 stdout_file,同時這個 subshell 的 stdout 和  stderr 則都被轉向到 stderr_file,但是因為 stdout 已經先被轉向了, 所以 stderr 就會被轉到 stderr_file 了。

如果你只是單純的不想把 stdout 做轉向,那麼就用 sh 來幫你吧。

	        sh -c 'command 2>stderr_file'

感謝你看到這裡,很快就可以離開了,但最好的獎勵行動就是按一下幫我分享或留言,感恩喔~

點我分享到Facebook

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *