多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當前位置:首頁 > 互聯(lián)網 > VxWorks操作系統(tǒng)shell命令與調試方法總結

VxWorks操作系統(tǒng)shell命令與調試方法總結

來源:程序員人生   發(fā)布時間:2014-09-24 06:27:22 閱讀次數(shù):8495次


VxWorks下的調試手段

主要介紹在Tornado集成開發(fā)環(huán)境下的調試方法,和利用支撐定位問題的步驟、思路。

1         Tornado的調試工具

嵌入式實時操作系統(tǒng)VxWorks和集成開發(fā)環(huán)境Tornado的組成結構如下圖1。分為主機和目標機系統(tǒng)。

圖1 集成開發(fā)環(huán)境結構圖

在Tornado下,調試相關操作在Debug菜單下,包括:

圖2 Debug菜單

簡單解釋各菜單項的功能

1.1        WindShell

1.1.1         簡介

Vxworks的Shell分為兩種:hostshell 和 target shell;

Tornado提供的WindShell建立了2者間的一個橋梁,從宿主機到目標機之間的一個命令 shell。WindSh 是一種非常受歡迎的開發(fā)工具,它具有很強的交互性和可操作性,允許用戶調用內存中的應用程序模塊或是 VxWorks模塊中的任何例程。它不但具有一般命令語言的功能,而且也具有 C 語言的設計特點,能夠解釋幾乎任何 C 語言表達式, 執(zhí)行大多數(shù) C 語言算子,解析符號表數(shù)據(jù)。對初用者來說,WindSh學習起來比較簡單,使用比較方便,對熟練用戶而言,則有較為高級的手段可以應用。

WindSh是一個駐留在主機內的C語言解釋器,通過它可運行下載到目標機上的所有函數(shù),包括VxWorks系統(tǒng)調用和應用函數(shù)。Tornado外殼還能解釋常規(guī)的工具命令語言TCL。

WindSh不僅可以解釋幾乎所有的C語言表達式,而且可以實現(xiàn)所有的調試功能。它主要有以下調試功能:下載軟件模塊;刪除軟件模塊;產生任務;刪除任務;設置斷點;刪除斷點;運行、單步、繼續(xù)執(zhí)行程序;查看內存、寄存器、變量;修改內存、寄存器、變量;查看任務列表、內存使用情況、CPU利用率;查看特定的對象(任務、信號量、消息隊列、內存分區(qū)、類);復位目標機等。

1.1.2         功能鍵

Tab

    補齊剩余部分

Ctrl+D 

l  顯示與之匹配的所有符號

-> CurM^D

_CurMaster  _CurModule  

l  補齊剩余部分: 

->CurMo^D

->CurModule

l  顯示命令摘要

->moduleShow ^D

moduleShow() - show the current status for all theloaded modules (WindSh)

STATUS moduleShow

    (

    char *moduleNameOrId /* name or ID of the module to show */

)

Ctrl+W

鍵入完整的命令后,繼續(xù)鍵入空格+ [Ctrl+W]。將會顯示html頁幫助信息.

Ctrl+H

   刪除一字符

Ctrl+U

   刪除一行

CTRL+C

   重起shell

CTRL+X

   Reboot

CTRL+S

   臨時掛起輸出

CTRL+Q

   恢復掛起

Esc   

在輸入和編輯模式間切換

輸入類似Vi編輯命令, 如[Esc + k]:顯示前一次輸入的命令

        h←j↓k↑l→

h()設置命令緩沖區(qū)長度。->h 500

 

1.1.3         特殊控制符

?

   C和TCL模式轉換符號, 在c模式下敲?進入tcl模式, 在tcl下敲?則進入c模式;

@

       在target還是在host上運行, 在指令前加上@則在target上運行, 否則在host上運行

       指令輸出重定向

指令輸入重定向

1.1.4         計算功能

數(shù)據(jù)轉換:鍵入整數(shù)或字符后回車可以顯示該整數(shù)的十進制及十六進制值。也可以鍵入字符常量或符號地址。

比如:

->0x54+64

value = 148 = 0x94

->x = (8 * 6) / 4

x = 0x20ff378: value = 12 = 0xc

->Nom = “Nelson”

new symbol “Nom” added to symbol table.

Nom = 0x23fe798: value = 37742496 = 0x23fe7a0 =

Nom + 0x8

 

1.1.5         環(huán)境變量

使用 ?shConfig 命令修改環(huán)境變量:

SH_GET_TASK_IO

    為調用函數(shù)設置I/O重定向。ON:重定向到WindSh;OFF:I/O顯示到目標機控制臺。

LD_PATH

為模塊設置搜索路徑,用“;”隔開。 例如:ld 命令提交后,Shell搜尋模塊的路徑順序為:首先在當前目錄,然后到LD_PATH設置的路徑。

LD_SEND_MODULES

設置load模式。

以下3個用不到

LD_CALL_XTORS

LD_COMMON_MATCH_ALL

DSM_HEX_MOD

1.1.6         內置指令

1.1.6.1        所有內置指令

tcl> setshellProcList

b bh bd bdall ccret e s so sysResume sysSuspend d l ld lkAddr lkup m mRegs unld agentMode Showbrowse checkStack classShow devs i intVecShow iStrict iosDevShow iosDrvShowiosFdShow memPartShow memShow moduleIdFigure moduleShow mqPxShow mqShowmsgQShow rBuffShow semPxSho w semShow show smMemPartShow smMemShowsysStatusShow taskShow trgShow version wdShow sp sp s taskIdDefaulttaskIdFigure td ti tr ts tt bootChange cd h help ls period printErrno printLogo pwd quit reboot repeat shellHistory shellPromptSet cplusXtorSetcplusStratShow cplus Ctors cplusDtors wvHostInfoShow evtBufferToFile hostShowicmpstatShow ifShow inetstatShow ipstatShow routestatShow taskCreateHookShowtaskDeleteHookShow taskSwitchHookShow taskRegs Show tw w taskWaitShowtcpstatShow tftpInfoShow udpstatShow

 

1.1.6.2        任務管理

sp

用缺省參數(shù)創(chuàng)建一個任務(priority=100 返回值為任務ID,或錯誤),立刻返回。任務的I/O不被重定向到shell。

如果直接敲例程名,回車,執(zhí)行完才返回。I/O被重定向。

sps

與上者不同在于啟動該任務后馬上將其掛起

tr

恢復一個掛起的任務

ts

掛起一個任務

td

刪除一個任務

period

創(chuàng)建一個周期調用函數(shù)的任務

period 5testPrn   每隔5秒調用testPrn,易于做調試打印。

repeat

創(chuàng)建一個重復調用函數(shù)的任務

repeat 10testFunc1   連續(xù)執(zhí)行10次testFunc1函數(shù),易于做測試用。

mRegs

修改任務的寄存器變量。比較有用的是修改pc值,使程序退回到具體位置再運行。      程序位置可以使用shift+F7(混合匯編方式顯示代碼)

-> mRegs"pc", s1u0

pc     : 0499efd7 - 0x499efd1

1.1.6.3        任務狀態(tài)信息

i   顯示系統(tǒng)信息:

  NAME     ENTRY      TID    PRI   STATUS     PC       SP     ERRNO DELAY

---------------------- -------- --- ---------- -------- -------- ------- -----

tExcTask   _excTask     4b79170   0 PEND         4276be 4b7908c   d0003     0

iStrict  類似于i,但只查詢目標機一次

 

ti  顯示相應任務的TCB信息:

-> ti tWdbTask

NAME    ENTRY       TID    PRI  STATUS      PC       SP    ERRNO  DELAY

---------------------- -------- --- ---------- -------- -------- ------- -----

tWdbTask  0x417cc4     4b70c08   3 READY        4276be 4b70ae4   d0003     0

stack: base 0x4b70c08  end 0x4b6ccc8 size 16176   high 3840   margin 12336

options: 0xe

VX_UNBREAKABLE VX_DEALLOC_STACK VX_FP_TASK

edi   = ffffffff   esi    = 4b70fb8   ebp    = 4b70aec   esp   =  4b70ae4

ebx   =        0   edx   =   4276be   ecx   =    10101   eax   =        0

eflags =     212   pc     =  4276be

taskShow

顯示任務TCB信息, 基本同ti

taskCreateHookShow

顯示任務創(chuàng)建調用例程列表

_fppCreateHook 0x177008 

_envCreateHook 0x156954 

___wdbTaskCreat 0x114718 

taskDeleteHookShow

顯示任務刪除調用例程列表

taskSwitchHookShow

顯示任務切換調用例程列表

_dbgTaskSwitch 0x180384 

_SwitchHook    0xde7b78 

w

顯示所有或者一個掛起任務的信息

-> w s1u1

  NAME      ENTRY      TID      STATUS  DELAY  OBJ_TYPE   OBJ_ID  OBJ_NAME

-------------------- -------- ---------- ----- ---------- -------- ------------

s1u1      _t2         4b65898 PEND           0 SEM_M       4b7ea48 N/A

tw

顯示某掛起任務的詳細信息。

-> tw s1u1

NAME       ENTRY      TID     STATUS   DELAY  OBJ_TYPE  OBJ_ID   OBJ_NAME

---------- ---------- -------- ---------- ----- ---------- --------------------

s1u1       _t2         4b65898 PEND           0 SEM_M       4b7ea48 N/A       

 

Semaphore Id        : 0x4b7ea48

Semaphore Type      : MUTEX    

Task Queueing       : FIFO     

Pended Tasks        : 1        

State               : Owner=0x4b6c960

taskWaitShow

同tw

taskRegsShow

顯示任務寄存器的內容

->taskRegsShow 0x1c615534 

edi   =        0  esi    = 1dd65514   ebp   = 1c61546c   esp    = 1c615458

ebx   =        1   edx   = 1dfccac8   ecx    =       7   eax    =       0

eflags =     246   pc     =  119604

CheckStack

顯示一個任務的使用堆棧的情況,沒有定義任務時顯示所有

-> checkStack tWdbTask

  NAME        ENTRY        TID    SIZE   CUR  HIGH MARGIN

------------ ------------ -------- ----- ----- -----------

tWdbTask    0x417cc4      4b70c08 16176   292 3840  12336

tt

顯示一個任務的調用狀況,解析堆棧

    -> tt tShell

    地址        函數(shù)名         偏移      被調用函數(shù)(函數(shù)參數(shù))

43ad37  _vxTaskEntry   +47 : _shell (1, 0,0, 0, 0, 0, 0, 0, 0, 0)

41c414  _shell         +13c: 41c438 ([1,0, 0, 0, 41c23c])

41c52e  _shell         +256: _ledRead(522efb8, 51e45e4, 80)

如果認為被掛起,可找出在哪個函數(shù)調用時失敗。

taskIdFigure

報告任務的ID,以及名稱

taskIdDefault

設置或者取得缺省的任務id

int taskIdDefault

(

int tid /* user-supplied task ID; if 0,return default */

)

taskPrioritySet

    實時改變任務運行的優(yōu)先級

1.1.6.4        一組調試指令

d  

顯示目標機內存, 可以替代內存觀察;

如: d  0x12345, 128, 1         顯示128個字節(jié)

          d 0x12345, 32,  4         顯示32個DWORD

          m 0x12345, 128, 1

      m  0x12345, 32,  4

m

修改內存

void m
(
void * adrs, /* address to change */
int    width /* width of unit to be modified (1, 2, 4, 8) */

)

lkup

顯示指定符號信息, 和以下指令使用可以找到該變量附近變量, 對于查找變量被更改很有益處

-> lkup "CurModule"

_CurModule               0x01fd3160 comm     (down.out)

-> lkup (“^_print”)

_printf   0x00029622 text (vxWorks)

_printErr 0x00029640 text (vxWorks)

_printExc 0x0002965e text (vxWorks)

value = 0 = 0x0

 

lkAddr

根據(jù)指定值搜索符號表,顯示的符號地址小于并最接近指定值

-> lkAddr 0x01fd3160

_CurUnit                 0x01fd315c comm     (down.out)

_CurModule               0x01fd3160 comm     (down.out)

_IsFsStarted             0x01fd3164 comm     (down.out)

_IntTaskSemaphore        0x01fd3168 comm     (down.out)

_gtSemTaskTable          0x01fd316c comm     (down.out)

_tR04ModuleReportState   0x01fd3174 comm     (down.out)

l

顯示從指定位置開始多少行的匯編

printError

將錯誤號翻譯為具體錯誤信息。前16位錯誤號為:module 在vwModNum.h中定義,對應不同頭文件。后16位錯誤號為:error number在相應的頭文件中定義。

-> printErrno 0x110001

0x110001 = S_memLib_NOT_ENOUGH_MEMORY

ld

加載模塊到系統(tǒng)

[syms[,noAbort][,"name"]]Load stdin, or file, into memory

  (syms = add symbols to table: -1 = none, 0 = globals, 1 = all)

unld

       卸載模塊

reboot

       reset network devices and transfercontrol to boot ROMs  重起, 有些mp板不能執(zhí)行;

bootChange

修改啟動行參數(shù)

boot device     :  fei

processor number    :  0

host name       :  host

file name       :  vxWorks

inet on ethernet (e)    :  168.2.11.41:ffff0000

inet on backplane (b)   :  

host inet (h)       :  168.2.111.1

gateway inet (g)    :  

user (u)        :  x86

ftp password (pw) (blank = use rsh) :  x86

flags (f)       :  

target name (tn)    :  

startup script (s)  :  

other (o)

1.1.6.5        系統(tǒng)信息查看

devs

列出目標機系統(tǒng)上的所有設備, host:是指映象文件所在目錄,有些上面為mars:

-> devs

drv name

  0 /null

  2 /pcConsole/0

  2 /pcConsole/1

  7 host:

  8 /vio

  9 /tgtsvr

  4 /HDisk

  3 prnpip

iosDevShow

基本同devs

iosDrvShow

顯示系統(tǒng)中的驅動狀態(tài)

drv    create    delete       open      close       read     write      ioctl

1    421db4          0    421db4     421ddc     42b76c    42b69c     421e08

2         0          0    424fd4          0     425004    425044     425130

3    426e88    426f04     427170     426e34    427228     427254     426ffc

4    415f40          0    415f40     416000     42b76c    42b69c     416074

5    41626c    41642c     416288     416520    4165d0     416670     416710

iosFdShow

顯示系統(tǒng)中的文件標識符

fdname                 drv

3/tyCo/0                1

4/vio/1                  4

5/vio/2                  4

6/vio/3                  4

intVecShow

查看中斷向量表,

void intVecShow

(

   int vector /* interrupt vector number or -1 to display the whole vectortable */

)

moduleShow

顯示系統(tǒng)中所有加載的模塊

MODULENAME  MODULE ID  GROUP #   TEXT START DATA START  BSS START

------------------------ -------------------- ---------- ---------- ----------

vxWorks.exe       0x365420          1  0x401000   0x43f000   0x442000

test.o             0xd32888          2  0x499efac   0x499eff4          

msgQShow

顯示隊列的使用狀況

Message Queue Id   : 0x1c710c0c 

Task Queueing      : FIFO     

Message Byte Len   : 8        

Messages Max       : 4000     

Messages Queued    : 0        

Receivers Blocked  : 1        

Send Timeouts      : 0        

Receive Timeouts   : 709968   

SemShow

顯示信號量的信息

STATUS semShow

    (

    SEM_ID semId,/* semaphore to display */

        int    level /* 0 = summary, 1 = details */

    )

->semShow NodeSemaphore ,0

Semaphore Id       : 0x1c7a443c 

Semaphore Type     : MUTEX    

Task Queueing      : FIFO     

Pended Tasks       : 0        

State              : NotOwned 

SemPxShow

顯示POSIX信號量的信息

wdShow

顯示看門狗的信息

mqPxShow

顯示POSIX消息隊列的信息

memPartShow

顯示分區(qū)塊及統(tǒng)計信息

memShow

顯示系統(tǒng)分區(qū)上空閑和已分配空間的總數(shù)等等

SUMMARY:

 status  bytes    blocks   avg block max block

 ------ ----------------- ---------- ----------

current

   free  443257168     140    3166122 442697252

  alloc  27726464     517      53629        -

cumulative

  alloc  50636892    5873       8621        -

hostShow

顯示host列表

hostname        inet address       aliases

--------        ------------       -------

vxTarget        168.2.11.9        

localhost       127.0.0.1         

host             168.2.111.1

arpShow

顯示arp列表

LINK LEVEL ARP TABLE

destination     gateway            flags  Refcnt Use           Interface

--------------------------------------------------------------------------

168.2.111.1     00:05:5d:e4:14:3b    405    0      6897          fei0

--------------------------------------------------------------------------

ifShow

顯示網口信息

fei (unit number 0):

    Flags:(0x8063) UP BROADCAST RUNNING ARP MULTICAST

    Type:ETHERNET_CSMACD

    Internetaddress: 168.2.11.9

    Broadcastaddress:   168.2.255.255

    Netmask0xffff0000 Subnetmask 0xffff0000

    Ethernetaddress is 00:d0:d0:10:0b:09

    Metric is 0

    MaximumTransfer Unit size is 1500

    11325 packetsreceived; 6965 packets sent

    4374 multicastpackets received

    11 multicastpackets sent

    0 inputerrors; 0 output errors

    0 collisions;0 dropped

lo (unit number 0):

    Flags:(0x8069) UP LOOPBACK RUNNING ARP MULTICAST

    Type:SOFTWARE_LOOPBACK

    Internetaddress: 127.0.0.1

    Netmask0xff000000 Subnetmask 0xff000000

    Metric is 0

    MaximumTransfer Unit size is 32768

    0 packetsreceived; 0 packets sent

    0 multicastpackets received

    0 multicastpackets sent

    0 inputerrors; 0 output errors

    0 collisions;0 dropped

ipstatShow

顯示ip信息

               total 7571

             badsum    0

           tooshort    0

           toosmall    0

            badhlen    0

             badlen    0

        infragments    0

        fragdropped    0

        fragtimeout    0

            forward    0

        cantforward    0

       redirectsent    0

    unknownprotocol 6996

          nobuffers    0

        reassembled    0

       outfragments    0

            noroute    0

icmpstatShow

顯示icmp信息

ICMP:

    7060 calls toicmp_error

    0 error notgenerated because old message was icmp

    Outputhistogram:

        destinationunreachable: 7060

    0 message withbad code fields

    0 message <minimum length

    0 bad checksum

    0 message withbad length

    0 messageresponse generated

routestatShow

       顯示路由信息

    routing:

    0 bad routingredirect

    0 dynamicallycreated route

    0 new gatewaydue to redirects

    12 destinationsfound unreachable

    0 use of a wildcard route

tcpstatShow

顯示tcp信息

TCP:

    11740 packets sent

        2840 data packets (137764 bytes)

        6 data packets (1867 bytes)retransmitted

        5642 ack-only packets (0 delayed)

        0 URG only packet

        0 window probe packet

        0 window update packet

        3254 control packets

    8485packets received

        44 acks (for 2429 bytes)

        2801 duplicate acks

        0 ack for unsent data

    2840 packets (2128 bytes) receivedin-sequence

        1 completely duplicate packet (29 bytes)

        0 packet with some dup. data  (0 byte duped)

        2 out-of-order packets (0 byte)

        0 packet (0 byte) of data after window

        0 window probe

        0 window update packet

        0 packet received after close

        0 discarded for bad checksum

        0 discarded for bad header offset field

        0 discarded because packet too short

    2953 connection requests

    0 connection accept

    2802 connections established (includingaccepts)

    2950 connections closed (including 2798drops)

    147 embryonic connections dropped

    2846 segments updated rtt (of 5797 attempts)

    304 retransmit timeouts

        0 connection dropped by rexmit timeout

    0 persist timeout

    147 keepalive timeouts

        0 keepalive probe sent

        147connections dropped by keepalive

udpstatShow

顯示udp信息

UDP:

       7759 total packets

       7757 input packets

       2 output packets

       0 incomplete header

       0 bad data length field

       0 bad checksum

       581 broadcasts received with no ports

       0 full socket

       7176 pcb cache lookups failed

       7176 pcb hash lookups failed

inetstatShow

顯示連接信息

Active Internetconnections (including servers)

PCB      Proto Recv-Q Send-Q  Local Address      Foreign Address    (state)

-------- ----------- ------  ----

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 一区二区免费看 | 曰韩一级 | 91亚洲精品一区二区自 | 欧洲区二区三区四区 | freexx性| 国产真实偷乱小说 | 亚洲视频免费 | 韩国午夜理伦三级网 | 亚洲一区二区三区精品影院 | 国产精品免费aⅴ片在线观看 | 在线a视频网站 | 成人精品视频 | 欧美午夜春性猛交xxxx | 久久一区二区精品综合 | 青青草原国产在线观看 | 国产精品永久免费视频观看 | 羞羞视频入口网站 | 小说亚洲 | 欧美国产日韩1区俺去了 | 国产亚洲一区二区三区在线观看 | 日本免费一级片 | 蜜芽一区二区国产精品 | 亚洲高清视频在线观看 | 在线免费观看一级毛片 | 大香焦伊人久久 | 看片久久| 97成人在线观看 | 90性后网| 香蕉在线精品一区二区 | 日本免费一区二区视频 | 精品国产乱码久久久久久一区二区 | 视频免费观看在线播放高清 | 国产97在线 | 亚洲 | 日韩第一色 | 欧美性猛交xxxx免费看 | 国产亚洲欧洲精品 | 成人小视频免费 | 成人私拍福利视频在线 | 老司机福利免费 | 中文字幕日韩欧美一区二区三区 | 亚洲无砖砖区免费 |