我正在運行gdb並想檢查其中一個不幸的神對象。它需要很多頁面(我有一個24英寸的顯示器翻過來!)看到整個事情。爲了便於使用,我希望gdb將對象打印到文件而不是屏幕上,以便我可以打開它六左右移動自如。與所有gdb的通用性,必須有辦法做到這一點,對不對?Gdb打印到文件而不是標準輸出
回答
您需要啓用日誌記錄。
(gdb) set logging on
你可以告訴它要使用的文件。
(gdb) set logging file my_god_object.log
而且您可以檢查當前的日誌記錄配置
(gdb) show logging
我發現,您可以通過run
命令從gdb的輸出重定向到一個文件:
(gdb) run > outfile
這將是正在調試的程序的輸出,而不是gdb本身的輸出。 OP想要記錄gdb自己的輸出。 – 2015-05-06 15:08:57
另請參閱:http://stackoverflow.com/questions/2388561/block-output-of-debugged-program-gdb – 2016-02-17 15:25:48
@thepaul但這實際上是非常有用的,因爲我正在調試一個QT程序,它只會破壞gdb的標準輸入與它的QDebug垃圾 – rostamn739 2016-06-16 14:47:04
一個簡單的方法來登錄GDB到一個文件,同時還看到輸出(這減輕寫命令)是使用tee
:
gdb command |& tee gdb.log
擴展上@ qubodup的回答
gdb core.3599 -ex bt -ex quit |& tee backtrace.log
-ex
交換機運行gdb命令。所以上面加載核心文件,運行bt
命令,然後運行quit
命令。輸出寫入backtrace.log
並且也在屏幕上。
另一個有用的gdb調用(讓來自所有線程局部變量堆棧跟蹤)是
gdb core.3599 -ex 'thread apply all bt full' -ex quit
在某些系統上,你需要鍵入'gdb -c core.3599 ...' – user7610 2016-06-10 08:31:35
你可能想保存GDB命令的輸出到一個文件中。有幾個命令來控制gdb的日誌記錄。
set logging on
啓用日誌記錄。
set logging off
禁用日誌記錄。
set logging file file
更改當前日誌文件的名稱。缺省日誌文件是gdb.txt。
set logging overwrite [on|off]
默認情況下,gdb會附加到日誌文件中。如果要設置日誌記錄以覆蓋日誌文件,請設置覆蓋。
set logging redirect [on|off]
默認情況下,gdb輸出將同時轉到終端和日誌文件。如果您希望輸出僅轉到日誌文件,請設置重定向。
show logging
顯示日誌設置的當前值。
- 1. 打印文件名到標準輸出
- 2. 打開文件,打印到標準輸出,追加到文件,並再次打印到標準輸出
- 3. 服務器打印到標準輸出而不是套接字
- 4. Log4j不打印到文件或標準輸出
- 5. 在Lua中,如何將控制檯輸出打印到文件(管道)而不是使用標準輸出?
- 6. Linux打印文檔到標準輸出或文件
- 7. epoll_wait()塊打印到標準輸出
- 8. Objective C打印標準輸出到UIAlertView
- 9. 打印到標準輸出使用AppleScript
- 10. 使用HiveQL打印到標準輸出
- 11. Django停止打印到標準輸出
- 12. 打印到標準輸出在sml
- 13. Subprocess.communicate打印換行到標準輸出
- 14. 打印標準輸出,同時也打印到Python中的文本文件
- 15. 如何在Linux(GCC)中打印輸出(不是標準輸出)?
- 16. VBA - 使用標準而不是即時打印來打印word文檔與打印輸出
- 17. Qt標準輸出。 cout不打印
- 18. 將輸出打印到文件中或不打印輸出?
- 19. 如何都打印到標準輸出和文件用C
- 20. 打印STDOUT到文件和標準輸出perl
- 21. 壓縮文件並打印到標準輸出
- 22. 如何使用python打印PDF文件到標準輸出?
- 23. 的Python:文件打印到標準輸出
- 24. 如何漂亮地打印到變量而不是標準輸出?
- 25. 的Python:subprocess.Popen()進行通信()打印一個SSH命令的輸出到標準輸出,而不是返回輸出
- 26. Python traceback.print_exc()打印到標準輸出或標準錯誤嗎?
- 27. Golang:查找將輸出打印到標準輸出的文件名和行號
- 28. 發送JVM -verbose輸出到標準錯誤而不是標準輸出
- 29. 是否有可能輸出到監視流而不是標準輸入,標準輸出和標準錯誤? (python)
- 30. 打印到文件而不是終端
如果您希望將輸出僅發送到日誌文件,請使用'set logging redirect on'。 – 2016-09-05 08:30:37