idbx 도구로 디버깅

idbx 도구를 사용하여 명령행에서 프로그램을 디버깅하는 데 관한 지시사항입니다.

이 태스크 정보

명령 프롬프트에서 "idbx" 명령을 호출하여 idbx 도구를 실행할 수 있습니다. 그러면 UI 워크벤치를 사용하지 않고 프로그램을 디버깅할 수 있습니다.

$ idbx testProg
명령 목록
assign <variable> = <expression>
변수에 표현식의 값을 지정합니다.
clear <line-number>
지정된 행 번호에서 중단점과 추적을 모두 제거합니다.
참고: delete도 참조하십시오.
cont <signal-number>
cont <signal-name>
중단된 지점에서 실행을 계속합니다. 신호가 지정되면 신호를 수신한 것과 동일하게 프로세스가 계속됩니다. 그렇지 않으면 프로세스가 중지되지 않은 것처럼 계속됩니다.
delete <status-number>
delete all
delete tskip [ for t<thread number> ]
지정된 개수의 추적 또는 중지나 지정 스레드의 남은 tskip 개수가 제거됩니다. 추적, 중지 및 남은 스레드 tskip 개수와 연관된 숫자는 "status" 명령으로 인쇄할 수 있습니다.
disable <status-number>
disable
지정된 개수의 추적 또는 중지를 사용 안함으로 설정합니다. 추적 및 중지와 연관된 개수는 "status" 명령으로 인쇄할 수 있습니다.
down
down <count>
up
up <count>
이름 분석에 사용하는 현재 함수를 스택 <count> 레벨의 위로 또는 아래로 이동하십시오. 기본 <count>는 1입니다.
enable <status-number>
enable all
지정된 개수의 추적 또는 중지를 사용하도록 설정합니다. 추적 및 중지와 연관된 개수는 "status" 명령으로 인쇄할 수 있습니다.
goto <line-number>
goto "<filename>" : <line-number>
gotoi <address>
프로그램 카운터를 <address> 또는 <line-number> 근처의 주소로 변경하십시오. 현재 함수의 밖에 goto가 필요한 경우 변수 unsafegoto를 설정해야 합니다.
help
help [> <filename> ]
help <command> [> <filename> ]
help <topic> [> <filename> ]
명령 또는 주제에 대한 정보를 인쇄합니다. (주제를 설명하는 문자열은 축약되어 있을 수 있습니다.) 긴 메시지는 "pg"별명을 사용하여 페이지를 지정할 수 있습니다. 예: "pg" (help set_variables).
참고: "pg"는 현재 지원되지 않습니다.
참고: 파일로의 경로 재지정은 현재 지원되지 않습니다.
list [ <source-line-number> [, <source-line-number> ]]
list <procedure>
첫 번째 행 번호에서 두 번째 포함된 행까지 현재 소스 파일의 행을 나열합니다. 행을 지정하지 않으면 다음 10개 행이 표시됩니다. 프로시저 또는 함수 이름이 지정되는 경우, n-k에서 n+k까지의 행이 표시되며 여기서 n은 프로시저 또는 함수의 첫 번째 명령문이며 k는 listwindow에서 정의합니다.
listi
listi [ <address> [ , <address> ]]
listi at <source-line-number>
listi <procedure>
현재 프로그램 카운터 위치 또는 지정 주소, 행 번호 또는 프로시저에서 지시사항을 나열합니다. 인쇄되는 지시사항의 개수는 dbx 내부 변수 listwindow가 제어합니다.
move <source-line-number>
list 명령으로 표시할 다음 행을 source_line_number로 변경합니다.
next
next <count>
다음 행을 실행합니다. count를 입력하면 다음 count 행을 실행합니다. 이 명령과 "step" 명령과의 차이는 행에 프로시저 또는 함수에 대한 호출이 포함된 경우 "step" 명령은 해당 블록 시작에서 중지하지만 "next" 명령은 중지하지 않는다는 점입니다.
nexti
nexti <count>
"next"에서와 같은 단일 단계이지만 소스 행이 아닌 단일 명령어를 수행합니다. count를 입력하면 nexti count 명령어를 실행합니다.
print <expression> [ , <expression> ]
print <procedure (<parameters>)
지정된 표현식의 값을 인쇄합니다. 일반 레지스터 및 부동 소수점 레지스터의 값 또한 이 명령을 사용하여 인쇄할 수 있습니다.
"print <procedure> (<parameters>)"는 프로시저와 연관된 오브젝트 코드를 수행하고 리턴값을 인쇄합니다.
이름은 우선 현재 함수의 정적 범위를 사용하여 분석되며 정적 범위 내에 정의된 이름이 없는 경우 동적 범위를 사용하여 분석됩니다. 정적 및 동적 검색으로 검색 결과가 나타나지 않는 경우 임의의 기호가 선택되어 메시지 "[using <qualified-name>]"이 인쇄됩니다. 이름 분석 프로시저는 블록 이름을 사용한 ID(예: "module.variable")로 대체될 수 있습니다. C의 경우 소스 파일을 ".c"가 없는 파일 이름으로 이름이 지정된 모듈로 취급합니다.
prompt
prompt "string"
dbx 프롬프트를 표시하거나 프롬프트를 "string"으로 변경합니다.
quit
dbx를 종료합니다(프로그램이 종료됨).
registers
모든 일반 레지스터, 시스템 제어 레지스터, 부동 소수점 레지스터 및 현재 명령어 레지스터의 컨텐츠를 인쇄합니다. 부동 소수점 레지스터를 표시하려면 "unset noflregs" dbx 하위 명령을 사용하십시오.
레지스터는 다음과 같은 사전 정의된 레지스터 이름을 사용하여 개별적으로 표시하거나 지정할 수 있습니다. 일반 레지스터는 r0 - $r31, 부동 소수점 레지스터는 fr0 - $fr31, 스택 포인터는 sp, 프로그램 카운터는 iar, 조건 레지스터는 cr, 링크 레지스터는 link입니다.
run [<arguments>] [< <filename> ] [> <filename> ]
[>> <filename> ] [>! <filename> ]
[2> <filename> ] [2>> <filename> ]
[>& <filename> ] ]>>& <filename> ]
rerun [<arguments>] [< <filename> ] [> <filename> ]
[>> <filename> ] [>! <filename> ]
[2> <filename> ] [2>> <filename> ]
[>& <filename> ] ]>>& <filename> ]
오브젝트 파일의 실행을 시작하거나 인수를 명령행 인수로 전달합니다. < or >는 쉘과 유사한 방식으로 입력 또는 출력의 경로를 재지정하는 데 사용할 수 있습니다. 인수 없이 "rerun"을 사용하면 이전 인수 목록이 프로그램에 전달됩니다. 그렇지 않으면 동일하게 실행됩니다.
참고: runrerun 명령에 대한 인수는 현재 지원되지 않습니다.
return
return <procedure>
<procedure>에 대한 리턴이 실행될 때까지 계속합니다. 지정된 것이 없는 경우에는 현재 프로시저가 리턴할 때까지 계속합니다.
set <name>
set <name> = <expression>
set 명령은 dbx 변수의 값을 정의합니다. 이러한 변수의 이름은 디버깅 중인 프로그램에 있는 이름과 충돌할 수 없으며 다른 명령 안의 해당 표현식으로 확장됩니다. set 변수 정의를 제거하려면 "unset"을 사용하십시오. 사전 정의된 set 변수의 정의를 보려면 "help set_variables"도 참조하십시오.
skip [<num>]
재개하고 다음 중단점을 무시합니다. "num"을 입력한 경우, 다음 "num" 중단점을 무시합니다.
status [> <filename> ]
status more [> <filename> ]
현재 활성 상태인 trace 및 stop 명령을 연관된 dbx 하위 명령 및 나머지 스레드 tskip 개수와 함께 표시합니다.
step
step <count>
한 개의 행을 실행합니다. count를 입력하면 다음 count 행을 실행합니다. 이 명령과 "next" 명령의 차이는 행에 프로시저 또는 함수에 대한 호출이 포함된 경우 "step" 명령은 해당 프로시저 또는 함수를 입력하지만 "next" 명령은 그렇지 않은 것입니다.
참고: "set_variables stepignore" 또한 참조하십시오.
stepi
stepi <count>
한 개의 명령어를 실행합니다. count를 입력하면 다음 count 명령어를 실행합니다.
!stop if <condition>
stop at <line-number> ![if <condition>]
stop in <procedure> ![if <condition>]
!stop <variable> [if <condition>]
!stop <variable> at <line-number> [if <condition>]
!stop <variable> in <procedure> [if <condition>]
!stop on load ["<module>"] [if <condition>]
!stop on load ["<module>(<member>)"] [if <condition>]
지정된 행에 도달하거나 프로시저 또는 함수를 입력하거나 변수를 변경하거나 모듈을 로드하거나 로드 해제하거나 조건이 true인 경우 실행을 중지합니다.
참고: ! 은 현재 지원되지 않습니다.
unset <name>
<name>의 정의를 제거합니다.
whatis <name>
지정된 이름의 선언을 인쇄합니다.
where [startframe endframe] [> <filename>]
시작 프레임에서 종료 프레임까지의 프레임 번호와 연관된 활성 프로시저 및 함수의 스택 추적을 인쇄합니다. 상세 스택 추적에 대해 stack_details를 설정합니다.
visual <hostname> <port-number>
IDBX 디버거를 지정된 UI 디먼의 호스트 및 포트에 있는 UI 워크벤치에 추가합니다.

피드백