0
即時製作一個Linux項目的大學C項目,它基本上是一個在兩臺計算機之間進行文件傳輸的協議。該程序工作正常,它發送沒有任何問題的許多文件,但有1或2個文件我測試過,程序崩潰沒有任何報告,我只是不知道如何調試問題。任何幫助,將不勝感激。串行端口程序崩潰(無核心轉儲)
我也不知道我是否應該發佈代碼或不是,因爲這兩個文件(應用程序和協議)有超過1.5k行代碼。
即時製作一個Linux項目的大學C項目,它基本上是一個在兩臺計算機之間進行文件傳輸的協議。該程序工作正常,它發送沒有任何問題的許多文件,但有1或2個文件我測試過,程序崩潰沒有任何報告,我只是不知道如何調試問題。任何幫助,將不勝感激。串行端口程序崩潰(無核心轉儲)
我也不知道我是否應該發佈代碼或不是,因爲這兩個文件(應用程序和協議)有超過1.5k行代碼。
在大多數Linux發行版中,核心轉儲默認是禁用的(可以從系統資源限制查看「ulimit -c」如果禁用則爲零)。要啓用相同的功能,請使用「ulimi -c unlimited」。
要在Ubuntu中像現代發行版一樣添加自定義程序,以將報告/核心文件發送給「/ proc/sys/kernel/core_pattern」中指定的Ubuntu開發者。確保將其更改爲開發目的以進一步調試。
你甚至可以嘗試「valgrind」或「gdb實時調試」以更清晰地瞭解問題。
'沒有任何報告'是什麼意思?沒有任何信息?通過崩潰你的意思是核心轉儲?或者它不應該退出?另外,請爲其中一個失敗的文件發佈Linux'file'命令的輸出。 –
對不起,我不知道你的Linux文件命令是什麼意思,程序只是凍結它不結束它不會崩潰,也沒有錯誤消息。 關於程序,我得到了2個文件,application.c和protocol.c,協議有4個函數可以打開,讀,寫,接近串口,還有一些函數用於字節等等。該應用程序基本上與用戶的鏈接。 我可以發送你的代碼,如果它會更容易,並且即使我看起來像在這個新手。 謝謝 –
我猜你發送的文件 - 其中的一些文件 - 可能是一個問題。例如:你的代碼塊在讀取語句,因爲它預計讀取10個字符,得到5. –