導航:首頁 > 程序命令 > linux調試命令

linux調試命令

發布時間:2022-11-27 07:18:44

linux shell死了如何調試

方法:
_hell提供了一些用於調試腳本的選項,如:
?1.-n :讀一遍腳本中的命令但不執行,用於檢查腳本中的語法錯誤。
?2.-v :一邊執行腳本,一邊將執行過的腳本命令列印到標准錯誤輸出。
?3.-x :提供跟蹤執行信息,將執行的每一條命令和結果依次列印出來。該選項有三種常見的使用方法:
?1.在命令行提供參數。如:[email protected]$ sh -x ./script.sh
?2.在腳本開頭提供參數。如:#! /bin/sh -x
_誚瘧局杏_et命令啟用或禁用參數。如:set -x 和 set +x分別表示啟用和禁用-x參數,這樣可以只對腳本中的某一段進行跟蹤調試。

❷ linux入門基礎(四)Gdb調試程序

Gdb調試
注意:在Gcc編譯選項中一定要加入
–g
退出GDB:quit

Ctrl+d
調試過程:
1.
查看文件
命令:
(gdb)
l
命令:(gdb)
b
行號
註:到第17行停止,並沒有執行17行
3.
查看斷點情況
info
b
4.
運行代碼
r
命令:
(gdb)
r
(也可以指定行開始運行,在r後面加上行號)
5.
查看變數值
p
命令:(gdb)
p
變數名
6.
設置監視點:
watch
z
(變數名)
也可以是復雜的表達式
7.
單步運行
命令:(gdb)
n
(逐過程)
8.逐步,會進入函數
命令:(gdb)
s
9.條件斷點
將正常斷點轉變為條件斷點:condition
如:condition
1
i
==
10
只有當滿足條件i
==
1時,才會在斷點1處暫停
10.
恢復程序運行
c
命令:
(gdb)
c
(程序就會運行,如果沒有斷點,就運行剩下部分,如果有斷點,就會運行到下一個斷點)
11.
去除斷點
clear
line_number
clear
filename:line_number
12.
help
12.1
help找出類別
12.2help從列表中

❸ Linux-hexmp命令調試event驅動

hexmp: 查看文件的內容,比如二進制文件中包含的某些字元串,通常用來調試驅動用
描述
我們以event1為例,當我們insmod掛載了鍵盤驅動後,出現一個event1設備,
此時沒有按鍵按下,所以event1裡面的數據是沒有的,那麼數據又是從來哪裡來?
通過鍵盤驅動的read函數,若有按鍵按下,就會上傳按鍵數據給用戶層hexmp
因為鍵盤驅動的input_handler 是:evdev_handler
所以鍵盤驅動的read函數是: evdev_handler->evdev_fops->evdev_read
進入evdev_read()函數,如下圖所示:

evdev_event_to_user()這個函數從字面上來看,顯然就是用來上傳給用戶層的函數,其中buffer是函數參數,指向用戶層,所以數據就是event.

我們來看看event的結構體:input_event

把 time里的成員展開如下:

所以我們hexmp調試任何輸入子系統event XX驅動時,有信息就會列印上面數據
1.調試鍵盤驅動
以按開發板的按鍵 KEY_L,為例(因為數據是從低到高列印的,所以數據是反的):

❹ Linux(Android)性能調試基本命令一

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq  # 800382

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor  # interactive conservative userspace powersave ondemand performance

free -h

adb shell screencap -p /sdcard/screenshot.png && adb pull /sdcard/screenshot.png .

❺ 如何調試Linux shell腳本

最簡單的調試命令當然是使用echo命令。您可以使用echo在任何懷疑出錯的地方列印任何變數值。這也是絕大多數的shell程序員要花費80%的時間來調試程序的原因。Shell程序的好處在於不需要重新編譯,插入一個echo命令也不需要多少時間。
shell也有一個真實的調試模式。如果在腳本"strangescript" 中有錯誤,您可以這樣來進行調試:
sh -x strangescript
這將執行該腳本並顯示所有變數的值。
shell還有一個不需要執行腳本只是檢查語法的模式。可以這樣使用:
sh -n your_script
這將返回所有語法錯誤。
linux/unix shell l腳本調試方法
Shell提供了一些用於調試腳本的選項,如下所示:
-n
讀一遍腳本中的命令但不執行,用於檢查腳本中的語法錯誤
-v
一邊執行腳本,一邊將執行過的腳本命令列印到標准錯誤輸出
-x
提供跟蹤執行信息,將執行的每一條命令和結果依次列印出來
使用這些選項有三種方法,一是在命令行提供參數
$ sh -x ./script.sh二是在腳本開頭提供參數
#! /bin/sh -x第三種方法是在腳本中用set命令啟用或禁用參數
#! /bin/sh
if [ -z "$1" ]; then
set -x
echo "ERROR: Insufficient Args."
exit 1
set +x
fiset -x和set +x分別表示啟用和禁用-x參數,這樣可以只對腳本中的某一段進行跟蹤調試。

❻ 如何調試Linux shell腳本

調試方法:

sh -x strangescript

這將執行該腳本並顯示所有變數的值。

shell還有一個不需要執行腳本只是檢查語法的模式。可以這樣使用:

sh -n your_script

這將返回所有語法錯誤。

linux/unix shell l腳本調試方法

Shell提供了一些用於調試腳本的選項,如下所示:

-n
讀一遍腳本中的命令但不執行,用於檢查腳本中的語法錯誤

-v
一邊執行腳本,一邊將執行過的腳本命令列印到標准錯誤輸出

-x
提供跟蹤執行信息,將執行的每一條命令和結果依次列印出來

使用這些選項有三種方法,一是在命令行提供參數

$ sh -x ./script.sh二是在腳本開頭提供參數

#! /bin/sh -x第三種方法是在腳本中用set命令啟用或禁用參數

❼ Linux中的set命令的詳細解釋

linxu下的set命令是用來設置各種shell選項或者列出shell變數。下面由我為大家整理了linux的set命令的詳細解釋的相關知識,希望對大家有幫助!

一、Linux中的set命令的詳細解釋

功能說明:設置shell。

語法:set [+-abCdefhHklmnpPtuvx]

補充說明:用set 命令可以設置各種shell選項或者列 出shell變數.單個選項設置常用的特性.在某些選項之後-o參數將特殊特性打開.在某些選項之後使用+o參數將關閉某些特性,不帶任何參數的set命 令將顯示shell的全部變數.除非遇到非法的選項,否則set總是返回ture.

參數:

allexport -a 從設置開始標記所有新的和修改過的用於輸出的變數

braceexpand -B 允許符號擴展,默認選項

emacs 在進行命令編輯的時候,使用內建的emacs編輯器, 默認選項

errexit -e 如果一個命令返回一個非0退出狀態值(失敗),就退出.

histexpand -H 在做臨時替換的時候允許使用!和!! 默認選項

history 允許命令行歷史,默認選項

ignoreeof 禁止coontrol-D的方式退出shell,必須輸入exit。

interactive-comments 在互動式模式下, #用來表示註解

keyword -k 為命令把關鍵字參數放在環境中

monitor -m 允許作業控制

noclobber -C 保護文件在使用重新動向的時候不被覆蓋

noexec -n 在腳本狀態下讀取命令但是不執行,主要為了檢查語法結構。

noglob -d 禁止路徑名擴展,即關閉通配符

notify -b 在後台作業以後通知客戶

nounset -u 在擴展一個沒有的設置的變數的時候, 顯示錯誤的信息

onecmd -t 在讀取並執行一個新的命令後退出

physical -P 如果被設置,則在使用pwd和cd命令時不使用符號連接的路徑 而是物理路徑

posix 改變shell行為以便符合POSIX要求

privileged 一旦被設置,shell不再讀取.profile文件和env文件 shell函數也不繼承任何環境

verbose -v 為調試打開verbose模式

vi 在命令行編輯的時候使用內置的vi編輯器

xtrace -x 打開調試回響模式

二、Linux中的set命令詳解實例

顯示環境變數

# set

BASH=/bin/bash

BASH_ARGC=()

BASH_ARGV=()

BASH_LINENO=()

BASH_SOURCE=()

BASH_VERSINFO=([0]="3" [1]="00" [2]="15" [3]="1" [4]="release" [5]="i386-redhat-linux-gnu")

BASH_VERSION='3.00.15(1)-release'

COLORS=/etc/DIR_COLORS.xterm

COLUMNS=99

DIRSTACK=()

EUID=0

GROUPS=()

G_BROKEN_FILENAMES=1

HISTFILE=/root/.bash_history

HISTFILESIZE=1000

HISTSIZE=1000

HOME=/root

HOSTNAME=hnlinux

HOSTTYPE=i386

IFS=$' '

INPUTRC=/etc/inputrc

KDEDIR=/usr

LANG=zh_CN.GB2312

LESSOPEN='|/usr/bin/lesspipe.sh %s'

LINES=34

L

MAIL=/var/spool/mail/root

MAILCHECK=60

OLDPWD=/home/uptech

OPTERR=1

OPTIND=1

OSTYPE=linux-gnu

PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin:/opt/crosstools/gcc-3.4.6-glibc-2.3.6/bin

PIPESTATUS=([0]="2")

PPID=26005

PROMPT_COMMAND='echo -ne "

三、Linux的set命令的相關擴展

set、env、export——Linux中的環境變數命令

Linux是一個多用戶的操作系統。每個用戶登錄系統後,都會有一個專用的運行環境。通常每個用戶默認的環境都是相同的,這個默認環境實際上就是一組環境 變數的定義。用戶可以對自己的運行環境進行定製,其方法就是修改相應的系統環境變數。

什麼是環境變數

環境變數是一個具有 特定名字的對象,它包含了一個或者多個應用程序所將使用到的信息。許多用戶(特別是那些剛接觸Linux的新手)發現這些變數有些怪異或者難以控制。其 實,這是個誤會:通過使用環境變數,你可以很容易的修改一個牽涉到一個或多個應用程序的配置信息。

常見的環境變數

對於 PATH和HOME等環境變數大家都不陌生。

PATH能夠指定命令的搜索路徑,那麼動態鏈接庫的路徑用什麼變數指定呢?或者就是在 PATH裡面?

比如有一個程序需要/usr/local/lib下面的一個庫文件,應該怎麼指定其路徑呢?

經常看到有些變數如 LD_LIBRARY_PATH,LIBPATH,CLASSPATH等,他們之間有什麼不同和關系?

除此之外,還有下面一些常見環境變 量。

◆ HISTSIZE是指保存歷史命令記錄的條數。

◆ LOGNAME是指當前用戶的登錄名。

◆ HOSTNAME是指主機的名稱,許多應用程序如果要用到主機名的話,通常是從這個環境變數中來取得的。

◆ SHELL是指當前用戶用的是哪種Shell。

◆ LANG/LANGUGE是和語言相關的環境變數,使用多種語言的用戶可以修改此環境變數。

◆ MAIL是指當前用戶的郵件存放目錄。

◆ PS1是基本提示符,對於root用戶是#,對於普通用戶是$。PS2是附屬提示符,默認是“>”。可以通過修改此環境變數來修改當前的命令符,比 如下列命令會將提示符修改成字元串“Hello,My NewPrompt ”。

❽ 如何進行Linux下多線程的調試

方法一:PS
在ps命令中,「-T」選項可以開啟線程查看。下面的命令列出了由進程號為<pid>的進程創建的所有線程。
1.$ ps -T -p <pid>

「SID」欄表示線程ID,而「CMD」欄則顯示了線程名稱。

方法二: Top
top命令可以實時顯示各個線程情況。要在top輸出中開啟線程查看,請調用top命令的「-H」選項,該選項會列出所有Linux線程。在top運行時,你也可以通過按「H」鍵將線程查看模式切換為開或關。
1.$ top -H

要讓top輸出某個特定進程<pid>並檢查該進程內運行的線程狀況:
$ top -H -p <pid>

閱讀全文

與linux調試命令相關的資料

熱點內容
安卓手機打開屏幕時間怎麼設置 瀏覽:379
php不讓網頁直接打開 瀏覽:728
為什麼程序員的網速總是那麼快 瀏覽:954
單片機一個led閃爍 瀏覽:473
pdf顯示空白 瀏覽:449
基岩版伺服器怎麼添加常載入區域 瀏覽:651
蘋果雲服務伺服器地址 瀏覽:162
blue引擎gm命令如何修改 瀏覽:49
編程高手箴言pdf 瀏覽:702
那狗n1用的app叫什麼名字 瀏覽:336
python定義浮點數 瀏覽:604
酷安加密門禁卡 瀏覽:101
為什麼蘋果比安卓拍攝效果好 瀏覽:341
android網路中文亂碼 瀏覽:656
演算法就是程序這句話對不 瀏覽:930
數學建模蟻群演算法 瀏覽:110
雲伺服器如何選擇區域 瀏覽:374
小米標簽加密後 瀏覽:96
什麼是spdif源碼 瀏覽:55
有做軟體的源碼網站嗎 瀏覽:75