在 Linux 下,使用 backtrace
(或 bt
)命令可以顯示當(dāng)前程序的調(diào)用棧。backtrace
命令有一些常用參數(shù),下面列出了一些:
-c
或 --count
:限制顯示的棧幀數(shù)量。默認(rèn)情況下,它會(huì)顯示所有可用的棧幀。-r
或 --reverse
:反向顯示棧幀。默認(rèn)情況下,棧幀是按調(diào)用順序顯示的。-f
或 --full
:顯示完整的棧幀信息,包括函數(shù)名和源代碼行號(hào)(如果可用)。-n
或 --num-frames
:設(shè)置要顯示的最大棧幀數(shù)。-p
或 --pid
:指定要顯示調(diào)用棧的進(jìn)程 ID。-s
或 --skip
:跳過指定數(shù)量的棧幀。例如,-s 2
會(huì)跳過前兩個(gè)棧幀。-S
或 --skip-symlinks
:跳過符號(hào)鏈接作為棧幀的來源。-t
或 --show-threads
:顯示多線程程序的每個(gè)線程的調(diào)用棧。-T
或 --thread
:指定要顯示調(diào)用棧的線程 ID。-V
或 --verbose
:顯示詳細(xì)的錯(cuò)誤信息。-h
或 --help
:顯示幫助信息。這些參數(shù)可以組合使用,以便根據(jù)需要定制 backtrace
命令的輸出。例如,要顯示當(dāng)前進(jìn)程的調(diào)用棧,可以使用 backtrace
命令。要顯示包含源代碼行號(hào)的完整棧幀信息,可以使用 -f
參數(shù)。要顯示指定線程的調(diào)用棧,可以使用 -T
參數(shù)。