真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

linux命令調(diào)試 linux調(diào)試程序的命令是什么

怎么在linux系統(tǒng)下調(diào)試程序

(1)假設(shè)要debug的進(jìn)程號為1000,運(yùn)行如下命令:

站在用戶的角度思考問題,與客戶深入溝通,找到南岔網(wǎng)站設(shè)計(jì)與南岔網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站制作、做網(wǎng)站、外貿(mào)營銷網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名注冊、網(wǎng)絡(luò)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋南岔地區(qū)。

$ gdb -p 1000

使用此命令即可使gdb附加到進(jìn)程。

(2)載入libpython腳本

如果你的gdb是redhat或fedora等廠商修改過的,會(huì)有--python選項(xiàng),使用此選項(xiàng)即可指定gdb啟動(dòng)時(shí)載入的Python擴(kuò)展腳本(此腳本是擴(kuò)展gdb的,不是我們需要debug的腳本)。

$ gdb --python /path/to/libpython .py -p 1000

如果安裝的是GNU的gdb,就需要打開gdb后手動(dòng)載入libpython.py腳本

(gdb) python

import sys

sys.path.insert(0, '/path/to/libpython.py' )

import libpython

end

(gdb)

這時(shí)就可以使用py-bt命令打印當(dāng)前線程的Python traceback了。libpython還提供很多命令,例如py-print打印變量,py-locals打印所有本地變量等等,詳細(xì)可打開libpython.py查看。

linux線上程序問題調(diào)試命令

根據(jù)這些可以查看系統(tǒng)調(diào)用的完整性,比如說服務(wù)器連接數(shù)一直漲,說明fd沒有close,close調(diào)用在上邊有缺失

strace -t -T -v -f -p 16705 -Te write 只看write系統(tǒng)調(diào)用

sudo gcore xxpid 生成dump文件

sudo dlv core binfile core.xxxx 調(diào)試coredump文件,查看調(diào)用棧、goroutines

查看系統(tǒng)級別日志 /var/log/messages

messages 日志是核心系統(tǒng)日志文件。它包含了系統(tǒng)啟動(dòng)時(shí)的引導(dǎo)消息,以及系統(tǒng)運(yùn)行時(shí)的其他狀態(tài)消息。IO 錯(cuò)誤、網(wǎng)絡(luò)錯(cuò)誤和其他系統(tǒng)錯(cuò)誤都會(huì)記錄到這個(gè)文件中。其他信息,比如某個(gè)人的身份切換為 root,也在這里列出。如果服務(wù)正在運(yùn)行,比如 DHCP 服務(wù)器,您可以在 messages 文件中觀察它的活動(dòng)。通常,/var/log/messages 是您在做故障診斷時(shí)首先要查看的文件。

tcpdump -i lo -nnA 'port 7076' and 'tcp[13] 4 != 0 ' 抓rst包,發(fā)送給7076端口或者是7076端口發(fā)出去的

mac osx系統(tǒng):sudo tcpdump -i lo0 -nnA 'port 3000'

Linux-hexdump命令調(diào)試event驅(qū)動(dòng)

hexdump: 查看文件的內(nèi)容,比如二進(jìn)制文件中包含的某些字符串,通常用來調(diào)試驅(qū)動(dòng)用

描述

我們以event1為例,當(dāng)我們insmod掛載了鍵盤驅(qū)動(dòng)后,出現(xiàn)一個(gè)event1設(shè)備,

此時(shí)沒有按鍵按下,所以event1里面的數(shù)據(jù)是沒有的,那么數(shù)據(jù)又是從來哪里來?

通過鍵盤驅(qū)動(dòng)的read函數(shù),若有按鍵按下,就會(huì)上傳按鍵數(shù)據(jù)給用戶層hexdump

因?yàn)殒I盤驅(qū)動(dòng)的input_handler 是:evdev_handler

所以鍵盤驅(qū)動(dòng)的read函數(shù)是: evdev_handler-evdev_fops-evdev_read

進(jìn)入evdev_read()函數(shù),如下圖所示:

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

我們來看看event的結(jié)構(gòu)體:input_event

把 time里的成員展開如下:

所以我們hexdump調(diào)試任何輸入子系統(tǒng)event XX驅(qū)動(dòng)時(shí),有信息就會(huì)打印上面數(shù)據(jù)

1.調(diào)試鍵盤驅(qū)動(dòng)

以按開發(fā)板的按鍵 KEY_L,為例(因?yàn)閿?shù)據(jù)是從低到高打印的,所以數(shù)據(jù)是反的):

linux shell死了如何調(diào)試

方法:

_hell提供了一些用于調(diào)試腳本的選項(xiàng),如:

?1.-n :讀一遍腳本中的命令但不執(zhí)行,用于檢查腳本中的語法錯(cuò)誤。

?2.-v :一邊執(zhí)行腳本,一邊將執(zhí)行過的腳本命令打印到標(biāo)準(zhǔn)錯(cuò)誤輸出。

?3.-x :提供跟蹤執(zhí)行信息,將執(zhí)行的每一條命令和結(jié)果依次打印出來。該選項(xiàng)有三種常見的使用方法:

?1.在命令行提供參數(shù)。如:itcast@itcast$ sh -x ./script.sh

?2.在腳本開頭提供參數(shù)。如:#! /bin/sh -x

_誚瘧局杏_et命令啟用或禁用參數(shù)。如:set -x 和 set +x分別表示啟用和禁用-x參數(shù),這樣可以只對腳本中的某一段進(jìn)行跟蹤調(diào)試。


文章名稱:linux命令調(diào)試 linux調(diào)試程序的命令是什么
當(dāng)前網(wǎng)址:http://weahome.cn/article/doggjjp.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部