Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
GDB Manual.pdf
Скачиваний:
10
Добавлен:
28.03.2015
Размер:
1.58 Mб
Скачать

gLAWA 14: iNFORMACIQ O KONFIGURACII

147

14.3.13.3 zAGRUZKA NA Sparclet

kOGDA WY USTANOWILI SOEDINENIE K CELI Sparclet, WY MOVETE ISPOLXZOWATX KOMANDU GDB load DLQ ZAGRUZKI FAJLA S RABO^EJ MA[INY NA CELEWU@. iMQ FAJLA I SME]ENIE ZAGRUZKI DOLVNO BYTX ZADANO KOMANDE load W KA^ESTWE ARGUMENTA. tAK KAK FORMAT FAJLA aout, PROGRAMMA DOLVNA BYTX ZAGRUVENA PO NA^ALXNOMU ADRESU. ~TOBY OPREDELITX, ^EMU RAWNA \TA WELI^INA, WY MOVETE ISPOLXZOWATX objdump. sME]ENIE ZAGRUZKI|\TO SME]ENIE, KOTOROE DOBAWLQETSQ K VMA (Virtual Memory Address2) KAVDOGO RAZDELA FAJLA. nAPRIMER, ESLI PROGRAMMA `prog' BYLA SKOMPONOWANA S ADRESOM TEKSTA 0x1201000, SEGMENTOM DANNYH PO ADRESU 0x12010160 I SEGMENTOM STEKA PO ADRESU 0x12010170, WWEDITE W GDB:

(gdbslet) load prog 0x12010000

Loading section .text, size 0xdb0 vma 0x12010000

eSLI KOD ZAGRUVAETSQ PO ADRESU, OTLI^NOMU OT TOGO, PO KOTOROMU PROGRAMMA BYLA SKOMPONOWANA, WAM MOVET POTREBOWATXSQ ISPOLXZOWATX KOMANDY section I add-symbol- file, ^TOBY SOOB]ITX GDB, KUDA OTOBRAZITX TABLICU SIMWOLOW.

14.3.13.4 wYPOLNENIE I OTLADKA

tEPERX WY MOVETE NA^ATX OTLAVIWATX ZADA^U, ISPOLXZUQ KOMANDY GDB DLQ UPRAWLENIQ WYPOLNENIEM, b, step, run, I TAK DALEE. wSE TAKIE KOMANDY PERE^ISLENY W \TOM RUKOWODSTWE.

(gdbslet) b main

Breakpoint 1 at 0x12010000: file prog.c, line 3. (gdbslet) run

Starting program: prog

Breakpoint 1, main (argc=1, argv=0xeffff21c) at prog.c:3 3 char *symarg = 0;

(gdbslet) step

4 char *execarg = "hello!"; (gdbslet)

14.3.14 Fujitsu Sparclite

target sparclite USTR

pLATY Fujitsu sparclite, ISPOLXZUEMYE TOLXKO S CELX@ ZAGRUZKI. ~TOBY OTLAVIWATX PROGRAMMU, WY DOLVNY ISPOLXZOWATX DOPOLNITELXNU@ KOMANDU. nAPRIMER, target remote USTR, ISPOLXZUQ STANDARTNYJ UDALENNYJ PROTOKOL GDB.

14.3.15 Tandem ST2000

GDB MOVET BYTX ISPOLXZOWAN S TELEFONNYM KOMMUTATOROM Tandem ST2000, PODDERVIWA@]IM PROTOKOL Tandem STDBUG.

dLQ SOEDINENIQ WA[EGO ST2000 S RABO^EJ MA[INOJ, SMOTRITE RUKOWODSTWO PROIZWODITELQ. pOSLE TOGO, KAK ST2000 FIZI^ESKI PODKL@^EN, WY MOVETE WYPOLNITX:

target st2000 USTR SKOROSTX

^TOBY USTANOWITX EGO KAK WA[U OTLADO^NU@ SREDU. uSTR|\TO OBY^NO IMQ POSLEDOWATELXNOGO USTROJSTWA, TAKOE KAK `/dev/ttya', SOEDINENNOGO S ST2000 ^EREZ POSLEDOWATELXNU@ LINI@. wMESTO \TOGO, WY MOVETE UKAZATX USTR KAK TCP-SOEDINENIE (NAPRIMER, K POSLEDOWATELXNOJ LINII, PRISOEDINENNOJ ^EREZ TERMINALXNYJ KONCENTRATOR), ISPOLXZUQ SINTAK-

SIS IMQ-MA[INY:NOMER-PORTA.

2 WIRTUALXNYJ ADRES PAMQTI (pRIM. PEREWOD^IKA)

148

oTLADKA S POMO]X@ GDB

kOMANDY load I attach NE OPREDELENY DLQ \TOJ CELI; WY DOLVNY ZAGRUZITX WA[U PROGRAMMU NA ST2000 TAKVE, KAK WY \TO OBY^NO DELAETE DLQ AWTONOMNYH DEJSTWIJ. GDB ^ITAET OTLADO^NU@ INFORMACI@ (NAPRIMER, SIMWOLY) IZ OTDELXNOJ, OTLADO^NOJ WERSII PROGRAMMY, KOTORAQ DOSTUPNA NA WA[EM RABO^EM KOMPX@TERE.

sLEDU@]IE WSPOMOGATELXNYE KOMANDY GDB DOSTUPNY DLQ OBLEG^ENIQ RABOTY W SREDE

ST2000:

st2000 KOMANDA

pOSLATX KOMANDU MONITORU STDBUG. dOSTUPNYE KOMANDY OPISANY W RUKOWODSTWE PROIZWODITELQ.

connect sOEDINQET UPRAWLQ@]IJ TERMINAL S KOMANDNYM MONITOROM STDBUG. kOGDA WY ZAKON^ILI WZAIMODEJSTWIE S STDBUG, WWOD ODNOJ IZ DWUH POSLEDOWATELXNOSTEJ SIMWOLOW WOZWRATIT WAS NAZAD K PRIGLA[ENI@ GDB: hRETi~. (Return, ZA KOTORYM SLEDUET TILXDA I TO^KA) ILI hRETi~hC-di (Return, ZA KOTORYM SLEDUET TILXDA I control-D).

14.3.16 Zilog Z8000

bUDU^I SKONFIGURIROWANNYM DLQ OTLADKI CELEJ Zilog Z8000, GDB WKL@^AET IMITATOR

Z8000.

dLQ SEMEJSTWA Z8000, `target sim' IMITIRUET LIBO Z8002 (NE SEGMENTIROWANNYJ WARIANT ARHITEKTURY Z8000), LIBO Z8001 (SEGMENTIROWANNYJ WARIANT). iMITATOR RASPOZNAET PODHODQ]U@ ARHITEKTURU IZU^AQ OB_EKTNYJ KOD.

target sim ARG

oTLADKA PROGRAMM NA IMITIRUEMOM cp. eSLI IMITATOR PODDERVIWAET PARAMETRY USTANOWKI, UKAVITE IH W ARG.

pOSLE OPREDELENIQ \TOJ CELI, WY MOVETE OTLAVIWATX PROGRAMMY DLQ IMITIROWANNOGO cp TAKIM VE OBRAZOM, KAK PROGRAMMY DLQ WA[EGO RABO^EGO KOMPX@TERA; ISPOLXZUJTE KOMANDU file DLQ ZAGRUZKI OBRAZA NOWOJ PROGRAMMY, KOMANDU run DLQ ZAPUSKA WA[EJ PROGRAMMY, I TAK DALEE.

pOMIMO TOGO, ^TO DOSTUPNY WSE OBY^NYE MA[INNYE REGISTRY (SM. rAZDEL 8.10 [rEGISTRY], S. 74), IMITATOR Z8000 PREDOSTAWLQET TRI SPECIALXNO NAZWANNYH REGISTRA S DOPOLNITELXNOJ INFORMACIEJ:

cycles s^ITAET TAKTOWYE IMPULXSY S IMITATORE.

insts s^ITAET INSTRUKCII, WYPOLNENNYE W IMITATORE.

time wREMQ WYPOLNENIQ W [ESTIDESQTYH DOLQH SEKUNDY.

wY MOVETE SSYLATXSQ NA \TI ZNA^ENIQ W WYRAVENIQH GDB S POMO]X@ OBY^NYH SOGLA[ENIJ; NAPRIMER, `b fputc if $cycles>5000' USTANAWLIWAET USLOWNU@ TO^KU OSTANOWA, KOTORAQ SRABATYWAET TOLXKO POSLE KAK MINIMUM 5000 IMITIROWANNYH TAKTOWYH IMPULXSOW.

14.4 aRHITEKTURY

|TOT RAZDEL OPISYWAET SWOJSTWA ARHITEKTUR, KOTORYE WOZDEJSTWU@T NA WSE PRIMENENIQ GDB S DANNOJ ARHITEKTUROJ, KAK PRI ^ISTOJ OTLADKE, TAK I PRI KROSS-OTLADKE.

14.4.1 A29K

gLAWA 14: iNFORMACIQ O KONFIGURACII

149

set rstack_high_address ADRES

w PROCESSORAH SEMEJSTWA AMD 29000, REGISTRY SOHRANQ@TSQ W OTDELXNOM STEKE REGISTROW. dLQ OTLAD^IKA NE SU]ESTWUET SPOSOBA OPREDELITX RAZMER \TOGO STEKA. oBY^NO, GDB PROSTO PODRAZUMEWAET, ^TO STEK \DOSTATO^NO BOLX[OJ". |TO MOVET PRIWESTI K TOMU, ^TO GDB POPYTAETSQ OBRATITXSQ NESU]ESTWU@]EJ OBLASTI PAMQTI. w SLU^AE NEOBHODIMOSTI, WY MOVETE RE[ITX \TU PROBLEMU, UKAZAW KONE^NYJ ADRES STEKA REGISTROW S POMO]X@ KOMANDY set rstack_high_ address. aRGUMENT DOLVEN BYTX ADRESOM, KOTORYJ WY, WEROQTNO, ZAHOTITE NA^ATX S `0x', ^TOBY ZADATX EGO W [ESTNADCATERI^NOM WIDE.

show rstack_high_address

oTOBRAZITX TEKU]EE OGRANI^ENIE NA STEK REGISTROW DLQ PROCESSOROW SEMEJSTWA

AMD 29000.

14.4.2 Alpha

sMOTRITE SLEDU@]IJ RAZDEL.

14.4.3 MIPS

kOMPX@TERY, BAZIRU@]IESQ NA ARHITEKTURAH Alpha I MIPS, ISPOLXZU@T NEOBY^NYJ KADR STEKA, KOTORYJ INOGDA TREBUET OT GDB POISKA W OB_EKTNOM KODE W OBRATNOM NAPRAWLENII, ^TOBY NAJTI NA^ALO FUNKCII.

~TOBY SOKRATITX WREMQ OTWETA (OSOBENNO DLQ WSTROENNYH PRILOVENIJ, GDE GDB MOVET BYTX OGRANI^EN MEDLENNOJ POSLEDOWATELXNOJ LINIEJ DLQ \TOGO POISKA), WY MOVETE ZAHOTETX OGRANI^ITX OBLASTX POISKA, ISPOLXZUQ ODNU IZ \TIH KOMAND:

set heuristic-fence-post PREDEL

oGRANI^ITX GDB DLQ ISSLEDOWANIQ NE BOLEE PREDELA BAJT PRI POISKE NA^ALA FUNKCII. zNA^ENIE 0 (PO UMOL^ANI@) OZNA^AET NEOGRANI^ENNYJ POISK. oDNAKO, ISKL@^AQ 0, ^EM BOLX[E PREDEL, TEM BOLX[E BAJT heuristic-fence-post DOLVEN PROSMOTRETX, I, SLEDOWATELXNO, TEM DOLX[E ON BUDET WYPOLNQTXSQ.

show heuristic-fence-post

oTOBRAZITX TEKU]EE ZNA^ENIE DANNOGO PREDELA.

|TI KOMANDY DOSTUPNY TOLXKO KOGDA GDB SKONFIGURIROWAN DLQ OTLADKI PROGRAMM NA PROCESSORAH Alpha ILI MIPS.

150

oTLADKA S POMO]X@ GDB

gLAWA 15: uPRAWLENIE GDB

151

15 uPRAWLENIE GDB

wY MOVETE IZMENQTX SPOSOBY WZAIMODEJSTWIQ GDB S WAMI, ISPOLXZUQ KOMANDU set. dLQ KOMAND, UPRAWLQ@]IH SPOSOBAMI OTOBRAVENIQ DANNYH GDB, SMOTRITE rAZDEL 8.7 [pARAMETRY WYWODA], S. 68. dRUGIE USTANOWKI OPISANY ZDESX.

15.1 pRIGLA[ENIE

GDB DEMONSTRIRUET SWO@ GOTOWNOSTX S^ITATX KOMANDU, WYWODQ STROKU, NAZYWAEMU@ PRIGLA[ENIEM. oBY^NO \TO `(gdb)'. wY MOVETE IZMENITX STROKU PRIGLA[ENIQ KOMANDOJ set prompt. nAPRIMER, PRI OTLADKE GDB S POMO]X@ GDB, POLEZNO IZMENITX PRIGLA[ENIE W ODNOM IZ SEANSOW TAK, ^TOBY WY WSEGDA MOGLI PONQTX, S KAKIM IZ NIH WY OB]AETESX.

zAME^ANIE: set prompt NE DOBAWLQET PROBELY POSLE USTANOWLENNOGO WAMI PRIGLA[ENIQ. |TO POZWOLQET USTANAWLIWATX PRIGLA[ENIE, ZAKAN^IWA@]EESQ PROBELOM ILI NET.

set prompt NOWOE-PRIGL

uKAZYWAET GDB, ^TO S \TOGO MOMENTA NADO ISPOLXZOWATX W KA^ESTWE STpOKI PRIGLA[ENIQ NOWOE-PRIGL.

show prompt

pE^ATAET STROKU W FORME: `Gdb's prompt is: WA[E-PRIGL'

15.2 rEDAKTIROWANIE KOMAND

GDB ^ITAET WHODNYE KOMANDY ^EREZ INTERFEJS readline. |TA BIBLIOTEKA gnu OBESPE^IWAET SOGLASOWANNOE POWEDENIE DLQ PROGRAMM, KOTORYE PREDOSTAWLQ@T POLXZOWATEL@ INTERFEJS KOMANDNOJ STROKI. pREIMU]ESTWAMI QWLQ@TSQ STILI REDAKTIROWANIQ KOMANDNOJ STROKI gnu Emacs ILI vi, csh-PODOBNAQ PODSTANOWKA ISTORII I SOHRANENIE I POWTORNOE ISPOLXZOWANIE ISTORII KOMAND MEVDU SEANSAMI OTLADKI.

wY MOVETE UPRAWLQTX POWEDENIEM REDAKTIROWANIQ KOMANDNOJ STROKI W GDB KOMANDOJ set.

set editing set editing on

wKL@^AET REDAKTIROWANIE KOMANDNOJ STROKI (WKL@^ENO PO UMOL^ANI@).

set editing off

oTKL@^AET REDAKTIROWANIE KOMANDNOJ STROKI.

show editing

pOKAZYWAET, WKL@^ENO REDAKTIROWANIE KOMANDNOJ STROKI ILI NET.

15.3 iSTORIQ KOMAND

GDB MOVET OTSLEVIWATX KOMANDY, KOTORYE WY WWODITE WO WREMQ SEANSOW OTLADKI, ^TOBY WY MOGLI TO^NO ZNATX, ^TO PROISHODILO. iSPOLXZUJTE SLEDU@]IE KOMANDY DLQ UPRAWLENIQ WOZMOVNOSTQMI ISTORII KOMAND GDB.

set history filename IMQ-FAJLA

uSTANAWLIWAET IMQ FAJLA ISTORII KOMAND GDB W IMQ-FAJLA. |TO FAJL, OTKUDA GDB ^ITAET ISHODNYJ SPISOK ISTORII KOMAND I KUDA ON ZAPISYWAET ISTORI@ KOMAND PRI WYHODE IZ DANNOGO SEANSA. wY MOVETE OBRA]ATXSQ K \TOMU SPISKU ^EREZ RASKRYWANIE ISTORII ILI S POMO]X@ SIMWOLOW REDAKTIROWANIQ

152

oTLADKA S POMO]X@ GDB

ISTORII KOMAND, PERE^ISLENNYH NIVE. pO UMOL^ANI@, \TOT FAJL ESTX ZNA^E- NIE PEREMENNOJ SREDY GDBHISTFILE, ILI, ESLI \TA PEREMENNAQ NE USTANOWLENA, `./.gdb_history' (`./_gdb_history' W MS-DOS).

set history save set history save on

zAPISATX ISTORI@ KOMAND W FAJL, IMQ KOTOROGO MOVET BYTX OPREDELENO KOMANDOJ set history filename. pO UMOL^ANI@, \TA WOZMOVNOSTX OTKL@^ENA.

set history save off

pREKRATITX ZAPISX ISTORII KOMAND W FAJL.

set history size RAZMER

uSTANOWITX ^ISLO KOMAND, KOTORYE GDB HRANIT W SWOEM SPISKE ISTORII. zNA- ^ENIE PO UMOL^ANI@ BERETSQ IZ PEREMENNOJ SREDY HISTSIZE, ILI PRIRAWNIWAETSQ 256, ESLI \TA PEREMENNAQ NE USTANOWLENA.

rASKRYWANIE ISTORII NAZNA^AET SPECIALXNOE ZNA^ENIE ZNAKU !.

tAK KAK ! QWLQETSQ TAKVE OPERATOROM LOGI^ESKOGO OTRICANIQ W sI, RASKRYWANIE ISTORII PO UMOL^ANI@ OTKL@^ENO. eSLI WY RE[ITE WKL@^ITX RASKRYWANIE ISTORII KOMANDOJ set history expansion on, WY DOLVNY BUDETE SNABDITX ! (KOGDA ON ISPOLXZUETSQ KAK LOGI- ^ESKOE OTRICANIE W WYRAVENII) POSLEDU@]IM PROBELOM ILI SIMWOLOM TABULQCII, ^TOBY PREDOHRANITX EGO OT RASKRYWANIQ. sREDSTWA ISTORII Readline NE DELA@T POPYTKI PODSTANOWKI NA STROKAH != I !(, DAVE KOGDA RASKRYWANIE ISTORII WKL@^ENO.

wOT KOMANDY UPRAWLENIQ RASKRYWANIEM ISTORII:

set history expansion on set history expansion

wKL@^ITX RASKRYWANIE ISTORII. rASKRYWANIE PO UMOL^ANI@ OTKL@^ENO.

set history expansion off

oTKL@^ITX RASKRYWANIE ISTORII.

bIBLIOTEKA Readline POSTAWLQETSQ WMESTE S BOLEE POLNOJ DOKUMENTACIEJ PO WOZMOVNOSTQM REDAKTIROWANIQ I RASKRYWANIQ ISTORII. pOLXZOWATELI, NEZNAKOMYE S gnu Emacs ILI vi, MOGUT PO^ITATX EE.

show history

show history filename show history save show history size

show history expansion

|TI KOMANDY OTOBRAVA@T SOSTOQNIE PARAMETROW ISTORII GDB. pROSTO show history POKAZYWAET WSE ^ETYRE SOSTOQNIQ.

show commands

oTOBRAZITX POSLEDNIE DESQTX KOMAND W ISTORII.

show commands n

wYWESTI DESQTX KOMAND, RASPOLOVENNYH WOKRUG KOMANDY S NOMEROM n.

show commands +

wYWESTI DESQTX KOMAND, RASPOLOVENNYH SRAZU POSLE POSLEDNIH WYWEDENNYH.

gLAWA 15: uPRAWLENIE GDB

153

15.4 rAZMER \KRANA

oPREDELENNYE KOMANDY GDB MOGUT WYWODITX BOLX[OE KOLI^ESTWO INFORMACII NA \KRAN. ~TOBY POMO^X WAM WS@ EE PRO^ITATX, GDB PRIOSTANAWLIWAET WYWOD I ZAPRA[I- WAET WWOD W KONCE KAVDOJ STRANICY WYWODA. nAVMITE hRETi, KOGDA WY HOTITE PRODOLVITX WYWOD, ILI q DLQ UNI^TOVENIQ OSTAW[EGOSQ WYWODA. tAKVE, USTANOWKA [IRINY \KRANA OPREDELQET, KOGDA PERENOSITX STROKI WYWODA. w ZAWISIMOSTI OT TOGO, ^TO WYWODITSQ, GDB PYTAETSQ RAZBITX STpOKU W UDOBO^ITAEMOM MESTE, WMESTO TOGO ^TOBY PROSTO PRODOLVITX EE NA SLEDU@]U@ STRO^KU.

oBY^NO GDB UZNAET RAZMER \KRANA IZ PROGRAMMY DRAJWERA TERMINALA. nAPRIMER, W Unix GDB ISPOLXZUET BAZU DANNYH termcap, WMESTE SO ZNA^ENIEM PEREMENNOJ SREDY TERM I USTANOWKAMI stty rows I stty cols. eSLI \TO NEPRAWILXNO, WY MOVETE ZAMENITX \TI USTANOWKI KOMANDAMI set height I set width:

set height lpp show height set width cpl show width

|TI KOMANDY set OPREDELQ@T WYSOTU \KRANA W lpp STROK I [IRINU W cpl ZNAKOW. sOOTWETSTWU@]IE KOMANDY show OTOBRAVA@T TEKU]IE USTANOWKI.

eSLI WY OPREDELITE WYSOTU W NOLX STROK, GDB NE BUDET OSTANAWLIWATXSQ PRI WYWODE, NEZAWISIMO OT TOGO, NASKOLXKO ON DLINNYJ. |TO POLEZNO, ESLI WYWOD OSU]ESTWLQETSQ W FAJL ILI BUFER REDAKTORA.

aNALOGI^NO, WY MOVETE OPREDELITX `set width 0', ^TOBY ZAPRETITX GDB PERENOSITX STROKI WYWODA.

15.5 ~ISLA

wY WSEGDA MOVETE WWODITX W GDB ^ISLA W WOSXMERI^NOJ, DESQTI^NOJ, ILI [ESTNADCATERI^NOJ SISTEME W SOOTWETSTWII c OBY^NYMI SOGLA[ENIQMI: WOSXMERI^NYE ^ISLA NA^INA- @TSQ S `0', DESQTI^NYE ^ISLA OKAN^IWA@TSQ NA `.' I [ESTNADCATERI^NYE ^ISLA NA^INA@TSQ S `0x'. ~ISLA, KOTORYE NE NA^INA@TSQ NI c ODNOGO IZ \TIH ZNAKOW, PO UMOL^ANI@ S^ITA@TSQ DESQTI^NYMI; ANALOGI^NO, OTOBRAVENIE ^ISEL PO UMOL^ANI@|ESLI NE OPREDELEN NIKAKOJ KONKRETNYJ FORMAT|OSU]ESTWLQETSQ PO OSNOWANI@ 10. kOMANDOJ set radix WY MOVETE IZMENQTX OSNOWANIE, USTANAWLIWAEMOE PO UMOL^ANI@ DLQ WWODA I WYWODA.

set input-radix OSNOWANIE

uSTANOWITX OSNOWANIE PO UMOL^ANI@ DLQ ^ISLOWOGO WWODA. pODDERVIWAEMYE WARIANTY DLQ OSNOWANIQ|8, 10 ILI 16. sAMO OSNOWANIE DOLVNO BYTX OPREDELENO LIBO NEDWUSMYSLENNO, LIBO S ISPOLXZOWANIEM TEKU]EGO OSNOWANIQ SISTEMY S^ISLENIQ PO UMOL^ANI@; NAPRIMER, L@BAQ IZ KOMAND

set radix 012 set radix 10. set radix 0xa

USTANAWLIWAET DESQTI^NOE OSNOWANIE. s DRUGOJ STORONY, `set radix 10' OSTAWLQET OSNOWANIE SISTEMY S^ISLENIQ BEZ IZMENENIJ NEZAWISIMO OT TOGO, KAKIM ONO BYLO.

set output-radix OSNOWANIE

uSTANOWITX OSNOWANIE PO UMOL^ANI@ DLQ ^ISLOWOGO WYWODA. pODDERVIWAEMYE WARIANTY DLQ OSNOWANIQ|8, 10 ILI 16. sAMO OSNOWANIE DOLVNO BYTX OPREDELENO LIBO NEDWUSMYSLENNO, LIBO S ISPOLXZOWANIEM TEKU]EGO OSNOWANIQ SISTEMY S^ISLENIQ PO UMOL^ANI@.

154

oTLADKA S POMO]X@ GDB

show input-radix

oTOBRAZITX TEKU]EE OSNOWANIE PO UMOL^ANI@ DLQ ^ISLOWOGO WWODA.

show output-radix

oTOBRAZITX TEKU]EE OSNOWANIE PO UMOL^ANI@ DLQ ^ISLOWOGO WYWODA.

15.6 nEOBQZATELXNYE PREDUPREVDENIQ I SOOB]ENIQ

pO UMOL^ANI@, GDB NI^EGO NE SOOB]AET O SWOEJ WNUTRENNEJ DEQTELXNOSTI. eSLI WY RABOTAETE NA MEDLENNOJ MA[INE, TO WY MOVETE ZAHOTETX ISPOLXZOWATX KOMANDU set verbose. oNA WELIT GDB SOOB]ATX WAM, KOGDA ON WYPOLNQET DLINNU@ WNUTRENN@@ OPERACI@, ^TOBY WY NE DUMALI, ^TO ON ZAWIS.

w NASTOQ]EE WREMQ, set verbose UPRAWLQET TOLXKO SOOB]ENIQMI O ^TENII TABLIC SIMWOLOW ISHODNOGO FAJLA; SMOTRITE rAZDEL 12.1 [kOMANDY DLQ ZADANIQ FAJLOW], S. 105, OPI-

SANIE symbol-file.

set verbose on

rAZRE[AET GDB WYWODITX OPpEDELENNYE INFORMACIONNYE SOOB]ENIQ.

set verbose off

oTKL@^AET WYWOD GDB OPpEDELENNYH INFORMACIONNYH SOOB]ENIJ.

show verbose

sOOB]AET, USTANOWLENO set verbose W on ILI off.

pO UMOL^ANI@, ESLI GDB STALKIWAETSQ S O[IBKAMI W TABLICE SIMWOLOW OB_EKTNOGO FAJLA, ON NE SOOB]AET OB \TOM; NO ESLI WY OTLAVIWAETE KOMPILQTOR, \TA INFORMACIQ MOVET WAM PRIGODITXSQ (SM. rAZDEL 12.2 [o[IBKI ^TENIQ FAJLOW S SIMWOLAMI], S. 108).

set complaints PREDEL

pOZWOLQET GDB WYWODITX PREDEL SOOB]ENIJ O KAVDOM TIPE NEOBY^NYH SIMWOLOW PREVDE, ^EM PEpESTATX SOOB]ATX O PROBLEME. uSTANOWITE PREDEL W NOLX DLQ PODAWLENIQ WSEH SOOB]ENIJ, ILI O^ENX BOLX[IM, ^TOBY PREDOTWRATITX PODAWLENIE SOOB]ENIJ.

show complaints

wYWODIT OGRANI^ENIE GDB NA WYWOD SOOB]ENIJ O SIMWOLAH.

pO UMOL^ANI@ GDB OSMOTRITELEN, I ZADAET, KAK INOGDA KAVETSQ, MNOVESTWO GLUPYH WOPROSOW, ^TOBY PODTWERDITX OPREDELENNYE KOMANDY. nAPRIMER, ESLI WY PYTAETESX WYPOLNITX PROGRAMMU, KOTORAQ UVE WYPOLNQETSQ:

(gdb) run

The program being debugged has been started already. Start it from the beginning? (y or n)

eSLI WY NEUKLONNO VELAETE SAMI RAZBIRATXSQ S POSLEDSTWIQMI WA[IH SOBSTWENNYH KOMAND, WY MOVETE OTKL@^ITX \TU \WOZMOVNOSTX":

set confirm off

oTKL@^AET ZAPROSY PODTWERVDENIJ.

set confirm on

wKL@^AET ZAPROSY PODTWERVDENIJ (PO UMOL^ANI@).

show confirm

pOKAZYWAET, WYWODQTSQ LI ZAPROSY PODTWERVDENIJ.

gLAWA 15: uPRAWLENIE GDB

155

15.7 nEOBQZATELXNYE SOOB]ENIQ O WNUTRENNIH SOBYTIQH

set debug arch

wKL@^AET I OTKL@^AET WYWOD OTLADO^NOJ INFORMACII gdbarch. pO UMOL^ANI@ OTKL@^ENO.

show debug arch

oTOBRAVAET TEKU]EE SOSTOQNIE WYWODA OTLADO^NOJ INFORMACII gdbarch.

set debug event

wKL@^AET I OTKL@^AET WYWOD OTLADO^NOJ INFORMACII O SOBYTIQH GDB. pO UMOL^ANI@ OTKL@^ENO.

show debug event

oTOBRAVAET TEKU]EE SOSTOQNIE WYWODA OTLADO^NOJ INFORMACII O SOBYTIQH

GDB.

set debug expression

wKL@^AET I OTKL@^AET WYWOD OTLADO^NOJ INFORMACII O WYRAVENIQH GDB. pO UMOL^ANI@ OTKL@^ENO.

show debug expression

oTOBRAVAET TEKU]EE SOSTOQNIE WYWODA OTLADO^NOJ INFORMACII O WYRAVENIQH

GDB.

set debug overload

wKL@^AET I WYKL@^AET WYWOD GDB OTLADO^NOJ INFORMACII O PEREGRUVENNYH SIMWOLAH sI++. |TO WKL@^AET TAKU@ INFORMACI@, KAK UPORQDO^IWANIE FUNKCIJ, I TAK DALEE. pO UMOL^ANI@ OTKL@^ENO.

show debug overload

oTOBRAVAET TEKU]EE SOSTOQNIE WYWODA GDB OTLADO^NOJ INFORMACII O PEREGRUVENNYH SIMWOLAH sI++.

set debug remote

wKL@^AET I WYKL@^AET WYWOD OT^ETA O WSEH PAKETAH, POSLANNYH WPERED I NAZAD PO POSLEDOWATELXNOJ LINII UDALENNOJ MA[INE. iNFORMACIQ PE^ATAETSQ W STANDARTNYJ WYHODNOJ POTOK GDB. pO UMOL^ANI@ OTKL@^ENO.

show debug remote

wYWODIT SOSTOQNIE WYWODA UDALENNYH PAKETOW.

set debug serial

wKL@^AET I WYKL@^AET WYWOD GDB OTLADO^NOJ INFORMACII O POSLEDOWATELXNOM SOEDINENII. pO UMOL^ANI@ OTKL@^ENO.

show debug serial

oTOBRAVAET TEKU]EE SOSTOQNIE WYWODA GDB OTLADO^NOJ INFORMACII O POSLEDOWATELXNOM SOEDINENII.

set debug target

wKL@^AET I WYKL@^AET WYWOD GDB OTLADO^NOJ INFORMACII O CELI. |TA WKL@- ^AET INFORMACI@ O TOM, ^TO PROISHODIT NA UROWNE CELI GDB. pO UMOL^ANI@ OTKL@^ENO.

show debug target

oTOBRAVAET TEKU]EE SOSTOQNIE WYWODA GDB OTLADO^NOJ INFORMACII O CELI.

set debug varobj

wKL@^AET I OTKL@^AET WYWOD GDB OTLADO^NOJ INFORMACII O PEREMENNYH OB_EKTAH. pO UMOL^ANI@ OTKL@^ENO.

156

oTLADKA S POMO]X@ GDB

show debug varobj

oTOBRAVAET TEKU]EE SOSTOQNIE WYWODA GDB OTLADO^NOJ INFORMACII O PEREMENNYH OB_EKTAH.

gLAWA 16: fIKSIROWANNYE POSLEDOWATELXNOSTI KOMAND

157

16 fIKSIROWANNYE POSLEDOWATELXNOSTI KOMAND

kROME KOMAND TO^KI OSTANOWA (SM. rAZDEL 5.1.7 [kOMANDY TO^KI OSTANOWA], S. 41), GDB PREDOSTAWLQET DWA SPOSOBA SOHRANITX POSLEDOWATELXNOSTI KOMAND DLQ WYPOLNENIQ CELIKOM: OPREDELQEMYE POLXZOWATELEM KOMANDY I KOMANDNYE FAJLY.

16.1 kOMANDY, OPREDELQEMYE POLXZOWATELEM

kOMANDA, OPREDELQEMAQ POLXZOWATELEM|\TO POSLEDOWATELXNOSTX KOMAND GDB, KOTOROJ WY NAZNA^AETE IMQ, KAK NOWOJ KOMANDE. |TO OSU]ESTWLQETSQ KOMANDOJ define. pOLXZOWATELXSKIE KOMANDY MOGUT IMETX DO 10 PARAMETROW, RAZDELENNYH PROBELAMI. wNUTRI KOMANDY POLXZOWATELQ, DOSTUP K PARAMETRAM PROIZWODITSQ POSREDSTWOM $arg0. . .$arg9. wOT PROSTOJ PRIMER:

define adder

print $arg0 + $arg1 + $arg2 dLQ WYPOLNENIQ KOMANDY ISPOLXZUJTE:

adder 1 2 3

|TOT PRIMER OPREDELQET KOMANDU adder, KOTORAQ PE^ATAET SUMMU TREH SWOIH PARAMETROW. oBRATITE WNIMANIE, ^TO PARAMETRY QWLQ@TSQ TEKSTOWYMI PODSTANOWKAMI, TAK ^TO ONI MOGUT SSYLATXSQ NA PEREMENNYE, ISPOLXZOWATX SLOVNYE WYRAVENIQ ILI DAVE WYPOLNQTX WYZOWY POD^INENNYH FUNKCIJ.

define IMQ-KOMANDY

oPREDELITX KOMANDU S IMENEM IMQ-KOMANDY. eSLI KOMANDA S TAKIM IMENEM UVE IMEETSQ, U WAS ZAPRA[IWAETSQ PODTWERVDENIE NA EE PEREOPREDELENIE.

oPREDELENIE KOMANDY SOSTOIT IZ DRUGIH KOMANDNYH STROK GDB, KOTORYE ZADA@TSQ POSLE KOMANDY define. kONEC \TIH KOMAND OTME^AETSQ STpOKOJ, SODERVA]EJ end.

if iMEET ODIN ARGUMENT|WY^ISLQEMOE WYRAVENIE. kOMANDA SOPROWOVDAETSQ POSLEDOWATELXNOSTX@ KOMAND, KOTORYE WYPOLNQ@TSQ, ESLI WYRAVENIE ISTINNO (OTLI^NO OT NULQ). zATEM MOVET SLEDOWATX NEOBQZATELXNAQ STpOKA else, SOPROWOVDAEMAQ POSLEDOWATELXNOSTX@ KOMAND, KOTORYE WYPOLNQ@TSQ TOLXKO PRI LOVNOM ZNA^ENII DANNOGO WYRAVENIQ. kONEC SPISKA OTME^AETSQ STpOKOJ, SODERVA]EJ end.

while sINTAKSIS PODOBEN if: KOMANDA IMEET ODIN PARAMETR, KOTORYJ QWLQETSQ WY^ISLQEMYM WYRAVENIEM I DOLVEN SOPROWOVDATXSQ KOMANDAMI, PO ODNOJ W STpOKE, KOTORYE ZAWER[A@TSQ end. wYPOLNENIE KOMAND POWTORQETSQ, POKA WYRAVENIE ISTINNO.

document IMQ-KOMANDY

oPISYWAET OPREDELENNU@ POLXZOWATELEM KOMANDU IMQ-KOMANDY, TAK, ^TOBY K NEJ MOVNO BYLO OBRA]ATXSQ POSREDSTWOM help. kOMANDA IMQ-KOMANDY DOLVNA BYTX OPREDELENA RANEE. |TA KOMANDA S^ITYWAET STpOKI DOKUMENTACII TO^NO TAK VE, KAK define S^ITYWAET STpOKI OPREDELENIQ KOMANDY, DO STROKI end. pOSLE ZAWER[ENIQ KOMANDY document, NAPISANNAQ WAMI DOKUMENTACIQ BUDET OTOBRAVATXSQ KOMANDOJ help DLQ KOMANDY IMQ-KOMANDY.

wY MOVETE ISPOLXZOWATX KOMANDU document NEODNOKRATNO, ^TOBY IZMENITX DOKUMENTACI@ KOMANDY. pEREOPREDELENIE KOMANDY POSREDSTWOM define NE IZMENQET DOKUMENTACII.

help user-defined

pERE^ISLITX WSE OPREDELENNYE POLXZOWATELEM KOMANDY, WMESTE S PERWOJ STROKOJ DOKUMENTACII (ESLI ONA ESTX).

158

oTLADKA S POMO]X@ GDB

show user

show user IMQ-KOMANDY

wYWESTI KOMANDY GDB, ISPOLXZOWAW[IESQ DLQ OPREDELENIQ IMQ-KOMANDY (NO NE EE DOKUMENTACI@). eSLI IMQ-KOMANDY NE ZADANO, WYWESTI SODERVIMOE WSEH OPREDELENNYH POLXZOWATELEM KOMAND.

pRI WYPOLNENII KOMAND, OPREDELENNYH POLXZOWATELEM, KOMANDY OPREDELENIQ NE PE^ATA- @TSQ. o[IBKA W L@BOJ IZ NIH OSTANAWLIWAET WYPOLNENIE WSEJ OPREDELENNOJ POLXZOWATELEM KOMANDY.

pRI ISPOLXZOWANII W INTERAKTIWNOM REVIME, KOMANDY, OBY^NO ZAPRA[IWA@]IE PODTWERVDENIE, WYPOLNQ@TSQ BEZ ZAPROSA, ESLI ONI ISPOLXZUETSQ WNUTRI OPREDELENNOJ POLXZOWATELEM KOMANDY. mNOGIE KOMANDY GDB, KOTORYE OBY^NO PE^ATA@T SOOB]ENIQ O SWOIH DEJSTWIQH, OPUSKA@T IH PRI ISPOLXZOWANII W KOMANDE, OPREDELENNOJ POLXZOWATELEM.

16.2 oPREDELQEMYE POLXZOWATELEM KOMANDY-LOWU[KI

wY MOVETE OPREDELQTX LOWU[KI, KOTORYE QWLQ@TSQ SPECIALXNYM WIDOM OPREDELQEMYH POLXZOWATELEM KOMAND. wSQKIJ RAZ, KOGDA WY WYPOLNQETE KOMANDU `foo', PERED NEJ WYPOLNQETSQ OPREDELENNAQ POLXZOWATELEM KOMANDA `hook-foo' (BEZ PARAMETROW), ESLI ONA SU]E- STWUET.

kROME TOGO, SU]ESTWUET PSEWDOKOMANDA `stop'. oPREDELENIE (`hook-stop') WELIT WYPOLNQTXSQ SWQZANNYM S NEJ KOMANDAM PRI KAVDOM OSTANOWE WA[EJ PROGRAMMY: PERED WYPOLNENIEM KOMAND TO^EK OSTANOWA, PERED WYWODOM NA \KRAN SOOB]ENIJ ILI KADROW STEKA.

nAPRIMER, ^TOBY IGNORIROWATX SIGNALY SIGALRM WO WREMQ WYPOLNENIQ W PO[AGOWOM REVIME, NO OBRABATYWATX IH PRI NORMALXNOM WYPOLNENII, WY MOVETE OPREDELITX:

define hook-stop handle SIGALRM nopass end

define hook-run handle SIGALRM pass end

define hook-continue handle SIGLARM pass end

wY MOVETE OPREDELITX LOWU[KU DLQ L@BOJ ODNOSLOWNOJ KOMANDY GDB, NO NE DLQ SINONIMOW KOMANDY; WAM SLEDUET OPREDELITX LOWU[KU DLQ BAZOWOGO IMENI KOMANDY, NAPRIMER, backtrace, NO NE bt. eSLI WO WREMQ WYPOLNENIQ WA[EJ LOWU[KI WOZNIKAET O[IBKA, WYPOLNENIE KOMAND GDB OSTANAWLIWAETSQ, I ON WYDAET PRIGLA[ENIE (DO TOGO, KAK WWEDENNAQ WAMI KOMANDA NA^NET WYPOLNQTXSQ).

eSLI WY POPYTAETESX OPREDELITX LOWU[KU, NE SOOTWETSTWU@]U@ NIKAKOJ IZWESTNOJ KOMANDE, WY POLU^ITE PREDUPREVDENIE OT KOMANDY define.

16.3 kOMANDNYE FAJLY

kOMANDNYJ FAJL DLQ GDB|\TO FAJL, SOSTOQ]IJ IZ STROK S KOMANDAMI GDB. tAKIE FAJLY MOGUT TAKVE WKL@^ATX KOMMENTARII (STROKI, NA^INA@]IESQ S #). pUSTAQ STROKA W KOMANDNOM FAJLE NI^EGO NE DELAET; ONA NE OZNA^AET POWTORENIE POSLEDNEJ KOMANDY, KAK \TO BYLO BY PRI WWODE S TERMINALA.

gLAWA 16: fIKSIROWANNYE POSLEDOWATELXNOSTI KOMAND

159

kOGDA WY WYZYWAETE GDB, ON AWTOMATI^ESKI WYPOLNQET KOMANDY IZ SWOIH FAJLOW INICIALIZACII. |TO FAJLY, NAZYWA@]IESQ `.gdbinit' W Unix I `gdb.ini' W DOS/Windows. wO WREMQ STARTA, GDB DELAET SLEDU@]EE:

1.S^ITYWAET FAJL INICIALIZACII (ESLI ON SU]ESTWUET) W WA[EM DOMA[NEM KATALOGE1.

2.oBRABATYWAET KL@^I I OPERANDY KOMANDNOJ STROKI.

3.s^ITYWAET FAJL INICIALIZACII (ESLI ON SU]ESTWUET) W TEKU]EM RABO^EM KATALOGE.

4.s^ITYWAET KOMANDNYE FAJLY, ZADANNYE S POMO]X@ KL@^A `-x'.

fAJL INICIALIZACII W WA[EM DOMA[NEM KATALOGE MOVET USTANAWLIWATX PARAMETRY (TAKIE KAK `set complaints'), KOTORYE WLIQ@T NA POSLEDU@]U@ OBRABOTKU KL@^EJ I OPERANDOW KOMANDNOJ STROKI. fAJLY INICIALIZACII NE WYPOLNQ@TSQ, ESLI WY ISPOLXZUETE KL@^ `-nx' SM. rAZDEL 2.1.2 [wYBOR REVIMOW], S. 11.

w NEKOTORYH KONFIGURACIQH GDB, FAJLU INICIALIZACII PRISWAIWAETSQ DRUGOE IMQ (OBY^NO \TO SREDY, GDE SPECIALIZIROWANNAQ FORMA GDB DOLVNA SOSU]ESTWOWATX S DRUGIMI FORMAMI, SLEDOWATELXNO DOLVNO BYTX OTLI^NOE IMQ DLQ FAJLA INICIALIZACII SPECIALIZIROWANNOJ WERSII). sLEDU@]IE SREDY ISPOLXZU@T SPECIALXNYE IMENA FAJLOW INICIALIZACII:

VxWorks (os REALXNOGO WREMENI Wind River Systems): `.vxgdbinit'

OS68K (os REALXNOGO WREMENI Enea Data Systems): `.os68gdbinit'

ES-1800 (\MULQTOR Ericsson Telecom AB M68000): `.esgdbinit'

wY TAKVE MOVETE ZAPROSITX WYPOLNENIE KOMANDNOGO FAJLA S POMO]X@ KOMANDY source:

source IMQ-FAJLA

wYPOLNITX KOMANDNYJ FAJL IMQ-FAJLA.

sTROKI KOMANDNOGO FAJLA WYPOLNQ@TSQ POSLEDOWATELXNO, PRI \TOM ONI NE WYWODQTSQ. o[IBKA W L@BOJ KOMANDE ZAWER[AET WYPOLNENIE WSEGO KOMANDNOGO FAJLA.

kOMANDY, ZAPRA[IWA@]IE PODTWERVDENIE W INTERAKTIWNOM REVIME, PRI WYPOLNENII W KOMANDNOM FAJLE WYPOLNQ@TSQ BEZ ZAPROSOW. mNOGIE KOMANDY GDB, OBY^NO WYWODQ]IE SOOB]ENIQ O SWOIH DEJSTWIQH, OPUSKA@T \TI SOOB]ENIQ PRI WYZOWE IZ KOMANDNYH FAJLOW.

16.4 kOMANDY DLQ UPRAWLQEMOGO WYWODA

wO WREMQ WYPOLNENIQ KOMANDNOGO FAJLA ILI OPREDELENNOJ POLXZOWATELEM KOMANDY, NORMALXNYJ WYWOD GDB PODAWLQETSQ; EDINSTWENYJ POQWLQ@]IJSQ WYWOD|TOT, KOTORYJ PROIZWODITSQ QWNO KOMANDAMI IZ OPREDELENIQ. w \TOM RAZDELE OPISYWA@TSQ TRI KOMANDY, POLEZNYE DLQ POLU^ENIQ IMENNO TAKOGO WYWODA, KOTORYJ WY HOTITE.

echo TEKST

nAPE^ATATX TEKST. nEPE^ATNYE ZNAKI MOGUT BYTX WKL@^ENY W TEKST PRI POMO]I \KRANIRU@]IH POSLEDOWATELXNOSTEJ sI, TAKIH KAK `\n' DLQ PEREHODA NA NOWU@ STROKU. pEREHOD NA NOWU@ STROKU NE PE^ATAETSQ, ESLI WY EGO NE UKAVETE. w DOPOLNENIE K STANDARTNYM \KRANIRU@]IM POSLEDOWATELXNOSTQM sI, OBRATNAQ KOSAQ ^ERTA, ZA KOTOROJ SLEDUET PROBEL, OBOZNA^AET PROBEL. |TO POLEZNO DLQ OTOBRAVENIQ STROKI S PROBELAMI W NA^ALE ILI KONCE, POSKOLXKU W PROTIWNOM SLU^AE NA^ALXNYE I KONE^NYE PROBELY UDALQ@TSQ IZ WSEH ARGUMENTOW. ~TOBY NAPE^ATATX ` and foo = ', ISPOLXZUJTE KOMANDU `echo \ and foo = \ '.

oBRATNAQ KOSAQ ^ERTA W KONCE TEKSTA MOVET ISPOLXZOWATXSQ, KAK I W sI, DLQ PRODOLVENIQ KOMANDY NA POSLEDU@]IE STROKI. nAPRIMER,

1w SISTEMAH DOS/Windows, DOMA[NIM KATALOGOM S^ITAETSQ TOT, KOTORYJ UKAZYWAET PEREMENNAQ SREDY

HOME.

160

oTLADKA S POMO]X@ GDB

echo wOT PRIMER TEKSTA,\n\ KOTORYJ ZANIMAET\n\ NESKOLXKO STROK.\n

PROIZWODIT TAKOJ VE WYWOD KAK

echo wOT PRIMER TEKSTA,\n echo KOTORYJ ZANIMAET\n echo NESKOLXKO STROK.\n

output WYRAVENIE

nAPE^ATATX ZNA^ENIE WYRAVENIQ I NI^EGO KROME NEGO: NIKAKIH NOWYH STROK, NIKAKIH `$nn = '. zNA^ENIE TAKVE NE ZANOSITSQ W ISTORI@ ZNA^ENIJ. sM. rAZDEL 8.1 [wYRAVENIQ], S. 61, DLQ DOPOLNITELXNOJ INFORMACII O WYRAVENIQH.

output/FORMAT WYRAVENIE

wYWESTI ZNA^ENIE WYRAVENIQ W FORMATE FORMAT. wY MOVETE ISPOLXZOWATX TE VE FORMATY, ^TO I DLQ print. sM. rAZDEL 8.4 [fORMATY WYWODA], S. 64, DLQ POLU^ENIQ BOLX[EJ INFORMACII.

printf STROKA, WYRAVENIQ...

nAPE^ATATX ZNA^ENIQ WYRAVENIJ, PRI^EM FORMAT WYWODA ZADAET STROKA. wYRAVENIQ RAZDELQ@TSQ ZAPQTYMI I MOGUT BYTX LIBO ^ISLAMI, LIBO UKAZATELQMI. iH ZNA^ENIQ PE^ATA@TSQ TAK, KAK OPREDELQET STROKA, W TO^NOSTI, KAK ESLI BY WA[A PROGRAMMA WYPOLNQLA PODPROGRAMMU sI

printf (STROKA, WYRAVENIQ...);

nAPRIMER, WY MOVETE NAPE^ATATX DWA [ESTNADCATERI^NYH ZNA^ENIQ: printf "foo, bar-foo = 0x%x, 0x%x\n", foo, bar-foo

eDINSTWENYE \KRANIRU@]IE POSLEDOWATELXNOSTI S OBRATNOJ KOSOJ ^ERTOJ, KOTORYE WY MOVETE ISPOLXZOWATX W STROKE FORMATA|PROSTYE POSLEDOWATELXNOSTI, SOSTOQ]IE IZ OBRATNOJ KOSOJ ^ERTY, ZA KOTOROJ SLEDUET BUKWA.

gLAWA 17: iSPOLXZOWANIE GDB POD UPRAWLENIEM gnu Emacs

161

17iSPOLXZOWANIE GDB POD UPRAWLENIEM gnu

Emacs

sPECIALXNYJ INTERFEJS POZWOLQET WAM ISPOLXZOWATX gnu Emacs DLQ PROSMOTRA (I REDAKTIROWANIQ) ISHODNYH FAJLOW PROGRAMMY, KOTORU@ WY OTLAVIWAETE S POMO]X@ GDB.

~TOBY ISPOLXZOWATX \TOT INTERFEJS, ISPOLXZUJTE KOMANDU M-x gdb W Emacs. w KA^E- STWE ARGUMENTA ZADAJTE WYPOLNQEMYJ FAJL, KOTORYJ WY HOTITE OTLADITX. |TA KOMANDA WYZYWAET GDB KAK PODPROCESS Emacs S WWODOM I WYWODOM ^EREZ ZANOWO SOZDANNYJ BUFER.

pOD UPRAWLENIEM Emacs, GDB ISPOLXZUETSQ TO^NO TAK VE, KAK OBY^NO, ZA ISKL@^ENIEM DWUH MOMENTOW:

wESX \TERMINALXNYJ" WWOD I WYWOD PROISHODIT ^EREZ BUFER Emacs.

|TO OTNOSITSQ KAK K KOMANDAM GDB I IH WYWODU, TAK I K WWODU I WYWODU, PROIZWODIMYMI OTLAVIWAEMOJ PROGRAMMOJ.

|TO POLEZNO, POTOMU ^TO WY MOVETE KOPIROWATX TEKST PREDYDU]IH KOMAND I WWODITX IH SNOWA; WY DAVE MOVETE ISPOLXZOWATX TAKIM OBRAZOM ^ASTI WYWODA.

wSE SREDSTWA REVIMA OBOLO^KI Emacs DOSTUPNY DLQ WZAIMODEJSTWIQ S WA[EJ PROGRAMMOJ. w ^ASTNOSTI, WY MOVETE POSYLATX SIGNALY OBY^NYM PUTEM| NAPRIMER, C-c C-c DLQ PRERYWANIQ, C-c C-z DLQ OSTANOWKI.

GDB OTOBRAVAET ISHODNYJ KOD ^EREZ Emacs.

kAVDYJ RAZ, KOGDA GDB OTOBRAVAET KADR STEKA, Emacs AWTOMATI^ESKI NAHODIT ISHODNYJ FAJL DLQ NEGO I POME]AET STRELKU (`=>') NA LEWOM KRAE TEKU]EJ STROKI. Emacs ISPOLXZUET OTDELXNYJ BUFER DLQ OTOBRAVENIQ ISHODNOGO TEKSTA, I RAZDELQET \KRAN, ^TOBY OTOBRAZITX KAK SEANS GDB, TAK I ISHODNYJ TEKST.

tEM NE MENEE, QWNYE KOMANDY GDB list I search PROIZWODQT WYWOD KAK OBY^NO, NO U WAS WEROQTNO NE BUDET PRI^IN ISPOLXZOWATX IH IZ Emacs.

pREDUPREVDENIE: eSLI KATALOG, W KOTOROM NAHODITSQ WA[A PROGRAMMA, NE QWLQETSQ TEKU]IM, Emacs LEGKO MOVET O[IBITXSQ PRI OPREDELENII MESTONAHOVDENIQ ISHODNYH FAJLOW; W \TOM SLU^AE WSPOMOGATELXNYJ BUFER S ISHODNYM TEKSTOM NE POQWLQETSQ. GDB MOVET ISKATX PROGRAMMY, ISPOLXZUQ PEREMENNU@ SREDY PATH, TAK ^TO SEANSY WWODA I WYWODA PROISHODQT NORMALXNO; NO Emacs NE POLU^AET DOSTATO^NO INFORMACII OT GDB, ^TOBY NAJTI ISHODNYE FAJLY W TAKOJ SITUACII. ~TOBY IZBEVATX \TOJ PROBLEMY, LIBO ZAPUSKAJTE REVIM GDB IZ KATALOGA, GDE NAHODITSQ WA[A PROGRAMMA, LIBO UKAVITE ABSOL@TNOE IMQ FAJLA, KOGDA BUDET ZAPRO[EN PARAMETR DLQ M-x gdb.

pODOBNAQ PUTANICA MOVET WOZNIKNUTX, ESLI WY ISPOLXZUETE KOMANDU GDB file, ^TOBY PEREKL@^ITXSQ K OTLADKE PROGRAMMY, NAHODQ]EJSQ W KAKOM-NIBUDX DRUGOM MESTE, IZ SU]ESTWU@]EGO BUFERA GDB W Emacs.

pO UMOL^ANI@, M-x gdb WYZYWAET PROGRAMMU S IMENEM `gdb'. eSLI WAM NUVNO WYZWATX GDB POD DRUGIM IMENEM (NAPRIMER, ESLI WY HRANITE NESKOLXKO KONFIGURACIJ POD RAZLI^- NYMI IMENAMI), WY MOVETE USTANOWITX PEREMENNU@ Emacs gdb-command-name; NAPRIMER, USTANOWKA

(setq gdb-command-name "mygdb")

(KOTOROJ PRED[ESTWUET M-: ILI ESC :, ILI ESLI ONA WWEDENA W BUFER *scratch* ILI W WA[EM FAJLE `.emacs'), ZASTAWIT Emacs WYZWATX PROGRAMMU \mygdb".

w BUFERE WWODA-WYWODA GDB, WY MOVETE ISPOLXZOWATX SLEDU@]IE SPECIALXNYE KOMANDY Emacs W DOPOLNENIE K STANDARTNYM KOMANDAM REVIMA OBOLO^KI:

C-h m oPISYWAET WOZMOVNOSTI REVIMA GDB Emacs.

M-s wYPOLNITX DO DRUGOJ STROKI ISHODNOGO TEKSTA, PODOBNO KOMANDE GDB step; TAKVE OBNOWLQET OKNO OTOBRAVENIQ DLQ POKAZA TEKU]EGO FAJLA I POLOVENIQ W NEM.

162

oTLADKA S POMO]X@ GDB

M-n wYPOLNITX DO SLEDU@]EJ STROKI ISHODNOGO TEKSTA W \TOJ FUNKCII, PROPUSKAQ WSE WYZOWY FUNKCIJ, PODOBNO KOMANDE GDB next. zATEM OBNOWITX OKNO OTOBRAVENIQ, ^TOBY POKAZATX TEKU]IJ FAJL I POLOVENIE W NEM.

M-i wYPOLNITX ODNU INSTRUKCI@, PODOBNO KOMANDE GDB stepi; OBNOWLQET OKNO OTOBRAVENIQ.

M-x gdb-nexti

wYPOLNITX DO SLEDU@]EJ INSTRUKCII, ISPOLXZUQ KOMANDU GDB nexti; OBNOWLQET OKNO OTOBRAVENIQ.

C-c C-f wYPOLNITX DO WYHODA IZ WYBRANNOGO KADRA STEKA, PODOBNO KOMANDE GDB finish.

M-c pRODOLVITX WYPOLNENIE WA[EJ PROGRAMMY, PODOBNO KOMANDE GDB continue. pREDUPREVDENIE: w Emacs WERSII 19, \TA KOMANDA WYZYWAETSQ POSREDSTWOM C-c C-p.

M-u pODNQTXSQ WWERH PO STEKU NA ^ISLO KADROW, ZADANNOE ^ISLOWYM PARAMETROM, PODOBNO KOMANDE GDB up (SM. RAZDEL \~ISLOWYE ARGUMENTY" W rUKOWODSTWO PO gnu Emacs).

pREDUPREVDENIE: w Emacs WERSII 19, \TA KOMANDA WYZYWAETSQ POSREDSTWOM C-c C-u.

M-d sPUSTITXSQ WNIZ PO STEKU NA ^ISLO KADROW, ZADANNOE ^ISLOWYM PARAMETROM, ANALOGI^NO KOMANDE GDB down.

pREDUPREVDENIE: w Emacs WERSII 19, \TA KOMANDA WYZYWAETSQ POSREDSTWOM C-c C-d.

C-x & pRO^ITATX ^ISLO W POZICII KURSORA I WSTAWITX EGO W KONEC BUFERA WWODAWYWODA GDB. nAPRIMER, ESLI WY HOTITE DISASSEMBLIROWATX KOD PO ADRESU, OTOBRAVENNOMU RANEE, NABERITE disassemble; ZATEM PEREMESTITE KURSOR NA IZOBRAVENIE ADRESA I ZADAJTE ARGUMENT DLQ disassemble, NABRAW C-x &.

wY MOVETE I DALX[E NASTRAIWATX \TO, OPREDELQQ \LEMENTY SPISKA gdb-print- command; ESLI ON OPREDELEN, WY MOVETE FORMATIROWATX ILI KAK-LIBO INA^E OBRABATYWATX ^ISLA, ZADAWAEMYE C-x &, PERED IH WSTAWKOJ W BUFER. ~ISLOWOJ ARGUMENT K C-x & POKAZYWAET, ^TO WAM NUVNO SPECIALXNOE FORMATIROWANIE, A TAKVE DEJSTWUET KAK INDEKS DLQ WYBORA \LEMENTA IZ SPISKA. eSLI \LEMENT SPISKA QWLQETSQ STROKOJ, TO WSTAWLQEMOE ^ISLO FORMATIRUETSQ S ISPOLXZOWANIEM FUNKCII Emacs format; W PROTIWNOM SLU^AE, ^ISLO PEREDAETSQ KAK PARAMETR SOOTWETSTWU@]EMU \LEMENTU SPISKA.

w L@BOM ISHODNOM FAJLE, KOMANDA Emacs C-x SPC (gdb-break) WELIT GDB USTANOWITX TO^KU OSTANOWA NA STROKE ISHODNOGO TEKSTA, W KOTOROJ NAHODITSQ TO^KA.

eSLI WY SLU^AJNO UDALITE BUFER OTOBRAVENIQ ISHODNOGO TEKSTA, EGO MOVNO LEGKO WERNUTX OBRATNO, WWEDQ KOMANDU f W BUFERE GDB, ^TOBY ZAPROSITX OTOBRAVENIE KADRA; KOGDA WYPOLNENIE PROISHODIT POD UPRAWLENIEM Emacs, \TO PRI NEOBHODIMOSTI SOZDAET ISHODNYJ BUFER ZANOWO, ^TOBY POKAZATX WAM TEKU]IJ KADR.

iSHODNYE FAJLY, OTOBRAVAEMYE W Emacs, NAHODQTSQ W OBY^NYH BUFERAH Emacs, KOTORYE POLU^A@T DOSTUP K ISHODNYM FAJLAM OBY^NYM SPOSOBOM. pRI VELANII WY MOVETE REDAKTIROWATX FAJLY W \TIH BUFERAH; NO POMNITE, ^TO GDB WZAIMODEJSTWUET S Emacs W TERMINAH NOMEROW STROK. eSLI WY DOBAWITE ILI UDALITE STROKI IZ TEKSTA, IZWESTNYE GDB NOMERA STROK BOLX[E NE BUDUT SOOTWETSTWOWATX KODU.

gLAWA 18: pRIME^ANIQ GDB

163

18 pRIME^ANIQ GDB

|TA GLAWA OPISYWAET PRIME^ANIQ W GDB. pRIME^ANIQ RAZRABOTANY DLQ SOGLASOWANIQ GDB S GRAFI^ESKIMI INTERFEJSAMI POLXZOWATELQ ILI DRUGIMI ANALOGI^NYMI PROGRAMMAMI, KOTORYE HOTQT WZAIMODEJSTWOWATX S GDB NA OTNOSITELXNO WYSOKOM UROWNE.

18.1 ~TO TAKOE PRIME^ANIE?

~TOBY SOZDAWATX PRIME^ANIQ, ZAPUSTITE GDB S KL@^EM --annotate=2.

pRIME^ANIQ NA^INA@TSQ S SIMWOLA NOWOJ STROKI, DWUH SIMWOLOW `control-z' I IMENI PRIME^ANIQ. eSLI NET DOPOLNITELXNOJ INFORMACII, SWQZANNOJ S PRIME^ANIEM, NEPOSREDSTWENNO ZA EGO IMENEM SLEDUET SIMWOL NOWOJ STROKI. eSLI DOPOLNITELXNAQ INFORMACIQ ESTX, ZA IMENEM PRIME^ANIQ SLEDUET PROPUSK, DOPOLNITELXNAQ INFORMACIQ I SIMWOL NOWOJ STROKI. dOPOLNITELXNAQ INFORMACIQ NE MOVET SODERVATX SIMWOLA NOWOJ STROKI.

l@BOJ WYWOD, NE NA^INA@]IJSQ S SIMWOLA NOWOJ STROKI I DWUH `control-z', OZNA^A- ET BUKWALXNYJ WYWOD GDB. w NASTOQ]EE WREMQ GDB NE NUVNO WYWODITX DWA `control-z' WSLED ZA SIMWOLOM NOWOJ STROKI, NO ESLI \TO PONADOBITSQ, PRIME^ANIQ MOGUT BYTX RAS[I- RENY `\KRANIRU@]IM' PRIME^ANIEM, KOTOROE OZNA^AET WYWOD \TIH TREH SIMWOLOW.

wOT PROSTOJ PRIMER ZAPUSKA GDB S PRIME^ANIQMI:

$ gdb -annotate=2 GNU GDB 5.0

Copyright 2000 Free Software Foundation, Inc.

GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions.

Type "show copying" to see the conditions.

There is absolutely no warranty for GDB. Type "show warranty" for details.

This GDB was configured as "sparc-sun-sunos4.1.3"

^Z^Zpre-prompt (gdb) ^Z^Zprompt quit

^Z^Zpost-prompt

$

zDESX `quit' QWLQETSQ DLQ GDB WWODOM; OSTALXNOE|WYWOD GDB. tRI STROKI, NA^INA@- ]IESQ S `^Z^Z' (GDE `^Z' OZNA^AET ZNAK `control-z'), SUTX PRIME^ANIQ; OSTALXNOE QWLQETSQ WYWODOM GDB.

18.2 pREFIKS server

~TOBY PODATX KOMANDU GDB, NE OKAZYWAQ WLIQNIQ NA OPREDELENNYE ASPEKTY SOSTOQNIQ, WIDIMYE DLQ POLXZOWATELEJ, NA^NITE EE S `server '. |TO OZNA^AET, ^TO DANNAQ KOMANDA NE WOZDEJSTWUET NA ISTORI@ KOMAND, A TAKVE NE WLIQET NA PONQTIE GDB O TOM, KAKU@ KOMANDU POWTORQTX, ESLI W PUSTOJ STROKE NAVATA KLAWI[A hRETi.

pREFIKS server NE WLIQET NA ZAPISX ZNA^ENIJ W ISTORI@ ZNA^ENIJ; ^TOBY NAPE^ATATX ZNA^ENIE, NE ZANOSQ EGO W ISTORI@, ISPOLXZUJTE KOMANDU output WMESTO print.

164

oTLADKA S POMO]X@ GDB

18.3 zNA^ENIQ

kOGDA ZNA^ENIE WYWODITSQ W RAZLI^NYH KONTEKSTAH, GDB ISPOLXZUET PRIME^ANIQ, ^TOBY OTDELITX EGO OT OKRUVA@]EGO TEKSTA.

eSLI ZNA^ENIE WYWODITSQ S POMO]X@ print I DOBAWLQETSQ W ISTORI@ ZNA^ENIJ, PRIME- ^ANIE WYGLQDIT TAK:

^Z^Zvalue-history-begin NOMER-W-ISTORII FLAGI-ZNA^ENIQ STROKA-ISTORII

^Z^Zvalue-history-value

ZNA^ENIE

^Z^Zvalue-history-end

GDE NOMER-W-ISTORII|NOMER, KOTORYJ ZNA^ENIE POLU^AET W ISTORII, STROKA-ISTORII| STROKA, TAKAQ KAK `$5 = ', KOTORAQ PREDSTAWLQET ZNA^ENIE POLXZOWATEL@, ZNA^ENIE QWLQETSQ WYWODOM, SOOTWETSTWU@]IM SAMOMU ZNA^ENI@, A FLAGI-ZNA^ENIQ|`*' DLQ ZNA^ENIQ, KOTOROE MOVET BYTX RAZYMENOWANO, I `-', ESLI NET.

eSLI ZNA^ENIE NE DOBAWLQETSQ W ISTORI@ ZNA^ENIJ (\TO MOVET BYTX ILI NEWERNOE ^ISLO S PLAWA@]EJ TO^KOJ, ILI ONO WYWODITSQ KOMANDOJ output), PRIME^ANIE WYGLQDIT POHOVIM OBRAZOM:

^Z^Zvalue-begin FLAGI-ZNA^ENIQ ZNA^ENIE

^Z^Zvalue-end

kOGDA GDB WYWODIT ARGUMENT FUNKCII (NAPRIMER, W WYWODE KOMANDY backtrace), ON DELAET TAKIE PRIME^ANIQ:

^Z^Zarg-begin

IMQ-ARGUMENTA

^Z^Zarg-name-end

STROKA-RAZDELITELX

^Z^Zarg-value FLAGI-ZNA^ENIQ ZNA^ENIE

^Z^Zarg-end

GDE IMQ-ARGUMENTA ESTX IMQ ARGUMENTA, STROKA-RAZDELITELX|TEKST (TAKOJ KAK `='), KOTORYJ OTDELQET IMQ OT ZNA^ENIQ DLQ UDOBSTWA POLXZOWATELQ, A FLAGI-ZNA^ENIQ I ZNA^ENIE IME@T TAKOJ VE SMYSL, ^TO I W PRIME^ANII value-history-begin.

pRI WYWODE STRUKTURY, GDB DELAET SLEDU@]IE PRIME^ANIQ:

^Z^Zfield-begin FLAGI-ZNA^ENIQ IMQ-POLQ

^Z^Zfield-name-end

STROKA-RAZDELITELX

^Z^Zfield-value

ZNA^ENIE

^Z^Zfield-end

GDE IMQ-POLQ ESTX IMQ POLQ, STROKA-RAZDELITELX|TEKST (TAKOJ KAK `='), KOTORYJ OTDELQET IMQ OT ZNA^ENIQ DLQ UDOBSTWA POLXZOWATELQ, A FLAGI-ZNA^ENIQ I ZNA^ENIE IME@T TOT VE SMYSL, ^TO I W PRIME^ANII value-history-begin.

pRI WYWODE MASSIWA, GDB DELAET SLEDU@]IE PRIME^ANIQ:

^Z^Zarray-section-begin INDEKS-W-MASSIWE FLAGI-ZNA^ENIQ

GDE INDEKS-W-MASSIWE|INDEKS PERWOGO ANNOTIRUEMOGO \LEMENTA, A FLAGI-ZNA^ENIQ IME- @T TAKOJ VE SMYSL, ^TO I W PRIME^ANII value-history-begin. zA \TIM SLEDUET PROIZWOLXNOE ^ISLO \LEMENTOW. |LEMENT MOVET BYTX LIBO ODINO^NYM

gLAWA 18: pRIME^ANIQ GDB

165

`,' PROPUSK

; OPUSKAETSQ DLQ PERWOGO \LEMENTA

ZNA^ENIE

 

^Z^Zelt

 

LIBO POWTORQ@]IMSQ

 

`,' PROPUSK ; OPUSKAETSQ DLQ PERWOGO \LEMENTA

ZNA^ENIE

^Z^Zelt-rep ^ISLO-POWTORENIJ STROKA-POWTORENIJ

^Z^Zelt-rep-end

w OBOIH SLU^AQH, ZNA^ENIE QWLQETSQ WYWODOM ZNA^ENIQ \LEMENTA, A PROPUSK MOVET SODERVATX PROBELY, SIMWOLY TABULQCII I NOWOJ STROKI. w SLU^AE POWTORQ@]IHSQ \LEMENTOW, ^ISLO-POWTORENIJ PREDSTAWLQET ^ISLO POSLEDOWATELXNYH \LEMENTOW MASSIWA, KOTORYE SODERVAT DANNOE ZNA^ENIE, A STROKA-POWTORENIJ QWLQETSQ STROKOJ, KOTORAQ PREDNAZNA^ENA DLQ UWEDOMLENIQ POLXZOWATELQ O TOM, ^TO WYWODQTSQ POWTORQ@]IESQ \LEMENTY.

pOSLE TOGO, KAK WYWEDENY WSE \LEMENTY MASSIWA, PRIME^ANIE K MASSIWU ZAKAN^IWAETSQ TAK:

^Z^Zarray-section-end

18.4 kADRY

kOGDA GDB PE^ATAET KADR, ON DELAET K NEMU PRIME^ANIQ. nAPRIMER, \TO PRIMENQETSQ K KADRAM, WYWODIMYM PRI OSTANOWKE GDB, W REZULXTATE WYWODA KOMANDAMI, TAKIMI KAK backtrace ILI up, I TAK DALEE.

pRIME^ANIQ K KADRU NA^INA@TSQ S

^Z^Zframe-begin UROWENX ADRES

STROKA-UROWNQ

GDE UROWENX|\TO NOMER KADRA (0 DLQ SAMOGO WNUTRENNEGO KADRA, DRUGIE KADRY IME- @T POLOVITELXNYE NOMERA), ADRES|\TO ADRES KODA, WYPOLNQ@]EGOSQ W DANNOM KADRE, A STROKA-UROWNQ|STROKA, PREDNAZNA^ENNAQ DLQ PEREDA^I UROWNQ POLXZOWATEL@. aDRES IMEET FORMU `0x', ZA KOTORYM SLEDUET ODNA ILI BOLEE [ESTNADCATERI^NYH CIFR W NIVNEM REGISTRE (ZAMETXTE, ^TO \TO NE ZAWISIT OT QZYKA). kADR ZAKAN^IWAETSQ TAK:

^Z^Zframe-end

mEVDU \TIMI KOMMENTARIQMI NAHODITSQ OSNOWNOE TELO KADRA, KOTOROE MOVET SOSTOQTX

IZ

^Z^Zfunction-call

STROKA-WYZOWA-FUNKCII

GDE STROKA-WYZOWA-FUNKCII QWLQETSQ TEKSTOM, PREDNAZNA^ENNYM DLQ UWEDOMLENIQ POLXZOWATELQ, ^TO \TOT KADR SWQZAN S WYZOWOM FUNKCII, KOTORYJ GDB SDELAL W OTLAVIWAEMOJ PROGRAMME.

^Z^Zsignal-handler-caller

STROKA-WYZOWA-OBRABOT^IKA-SIGNALA

GDE STROKA-WYZOWA-OBRABOT^IKA-SIGNALA|TEKST, PREDNAZNA^ENNYJ DLQ UWEDOMLENIQ POLXZOWATELQ, ^TO \TOT KADR SWQZAN S TEM MEHANIZMOM, KOTORYJ ISPOLXZOWALSQ OPERACIONNOJ SISTEMOJ PRI WYZOWE OBRABOT^IKA SIGNALA (\TO TOT KADR, IZ KOTOROGO PROIZO[EL WYZOW OBRABOT^IKA, A NE KADR DLQ SAMOGO OBRABOT^IKA).

166

oTLADKA S POMO]X@ GDB

oBY^NYJ KADR.

|TO MOVET, WOZMOVNO (W ZAWISIMOSTI OT TOGO, S^ITAETSQ LI \TO INFORMACIEJ, INTERESNOJ DLQ POLXZOWATELQ), NA^INATXSQ S

^Z^Zframe-address

ADRES

^Z^Zframe-address-end

STROKA-RAZDELITELX

ZDESX ADRES|\TO ADRES, GDE PROISHODIT WYPOLNENIE W KADRE (TOT VE ADRES, ^TO I W PRIME^ANII frame-begin, NO WYWEDENNYJ W FORME, PREDNAZNA^ENNOJ DLQ POLXZOWATELQ|W ^ASTNOSTI, SINTAKSIS RAZLI^AETSQ W ZAWISIMOSTI OT QZYKA), A STROKA-RAZDELITELX QWLQETSQ STROKOJ, PREDNAZNA^ENNOJ DLQ OTDELENIQ \TOGO ADRESA OT TOGO, ^TO ZA NIM SLEDUET DLQ UDOBSTWA POLXZOWATELQ.

zATEM IDET

^Z^Zframe-function-name

IMQ-FUNKCII

^Z^Zframe-args

ARGUMENTY

GDE IMQ-FUNKCII ESTX IMQ FUNKCII, WYPOLNQ@]EJSQ W KADRE, ILI `??', ESLI ONO NE IZWESTNO, A ARGUMENTY|\TO ARGUMENTY K KADRU, SO SKOBKAMI WOKRUG NIH (KAVDYJ ARGUMENT ANNOTIRUETSQ TAKVE INDIWIDUALXNO, SM. rAZDEL 18.3 [pRIME^ANIQ K ZNA^E-

NIQM], S. 164).

eSLI DOSTUPNA INFORMACIQ OB ISHODNYH TEKSTAH, PE^ATAETSQ SSYLKA NA NIH:

^Z^Zframe-source-begin

WWODNAQ-ISHODNAQ-STROKA

^Z^Zframe-source-file

IMQ-FAJLA

^Z^Zframe-source-file-end

:

^Z^Zframe-source-line

NOMER-STROKI

^Z^Zframe-source-end

GDE WWODNAQ-ISHODNAQ-STROKA OTDELQET SSYLKU OT PRED[ESTWUE]EGO EJ TEKSTA, DLQ UDOBSTWA POLXZOWATELQ, IMQ-FAJLA|\TO IMQ ISHODNOGO FAJLA, NOMER-STROKI|NOMER STROKI W \TOM FAJLE (PERWAQ STROKA IMEET NOMER 1).

eSLI GDB PE^ATAET NEKOTORU@ INFORMACI@ O TOM, OTKUDA POQWILSQ \TOT KADR (KAKAQ BIBLIOTEKA, KAKOJ SEGMENT ZAGRUZKI, I TAK DALEE; W NASTOQ]EE WREMQ REALIZOWANO TOLXKO NA RS/6000), ON DELAET TAKIE PRIME^ANIQ:

^Z^Zframe-where

INFORMACIQ

zATEM, ESLI ISHODNYJ TEKST DEJSTWITELXNO DOLVEN BYTX OTOBRAVEN DLQ \TOGO KADRA (NAPRIMER, \TO NE WERNO DLQ WYWODA OT KOMANDY backtrace), TOGDA WYWODITSQ PRIME- ^ANIE source (SM. rAZDEL 18.11 [pRIME^ANIQ K ISHODNOMU TEKSTU], S. 170). w OTLI^IE OT BOLX[INSTWA PRIME^ANIJ, \TOT WYWOD PROIZWODITSQ WMESTO OBY^NOGO TEKSTA, KOTORYJ BYL BY NAPE^ATAN, A NE W DOPOLNENIE K NEMU.

18.5 oTOBRAVENIQ

kOGDA GDB WELQT OTOBRAZITX ^TO-TO S POMO]X@ KOMANDY display, K REZULXTATU OTOBRAVENIQ DELA@TSQ PRIME^ANIQ:

gLAWA 18: pRIME^ANIQ GDB

167

^Z^Zdisplay-begin

NOMER

^Z^Zdisplay-number-end

RAZDELITELX-NOMEROW

^Z^Zdisplay-format

FORMAT

^Z^Zdisplay-expression

WYRAVENIE

^Z^Zdisplay-expression-end

RAZDELITELX-WYRAVENIJ

^Z^Zdisplay-value

ZNA^ENIE

^Z^Zdisplay-end

ZDESX NOMER|\TO NOMER OTOBRAVENIQ, RAZDELITELX-NOMEROW PREDNAZNA^EN DLQ OTDELENIQ NOMEROW OT TOGO, ^TO SLEDUET ZATEM DLQ POLXZOWATELQ, FORMAT WKL@^AET INFORMACI@ O TOM, KAK OTOBRAVAETSQ ZNA^ENIE, TAKU@ KAK RAZMER, FORMAT I TAK DALEE, WYRAVENIE| \TO OTOBRAVAEMOE WYRAVENIE, RAZDELITELX-WYRAVENIJ PREDNAZNA^EN DLQ OTDELENIQ WYRAVENIQ OT SLEDU@]EGO ZA NIM TEKSTA DLQ POLXZOWATELQ, I ZNA^ENIE|\TO DEJSTWITELXNOE ZNA^ENIE, KOTOROE OTOBRAVAETSQ.

18.6 pRIME^ANIQ KO WWODU GDB

kOGDA GDB WYWODIT PRIGLA[ENIE DLQ WWODA, ON DELAET K \TOMU PRIME^ANIQ, TAK ^TO STANOWITSQ WOZMOVNYM UZNATX, KOGDA POSYLATX DANNYE, KOGDA ZAKON^EN WYWOD OT DANNOJ KOMANDY, I TAK DALEE.

kAVDYJ IZ RAZLI^NYH WIDOW WWODA IMEET RAZLI^NYJ TIP WWODA. kAVDYJ TIP WWODA IMEET TRI PRIME^ANIQ: PRIME^ANIE pre-, OBOZNA^A@]EE NA^ALO KAVDOGO WYWODIMOGO PRIGLA[ENIQ, PROSTOE PRIME^ANIE, OBOZNA^A@]EE KONEC PRIGLA[ENIQ, I ZATEM PRIME^ANIE post-, OBOZNA^A@]EE KONEC L@BOGO \HO, KOTOROE MOVET BYTX ASSOCIIROWANO (A MOVET I NE BYTX) SO WWODOM. nAPRIMER, HARAKTERNOJ ^ERTOJ TIPA WWODA prompt QWLQ@TSQ SLEDU@]IE PRIME^ANIQ:

^Z^Zpre-prompt ^Z^Zprompt ^Z^Zpost-prompt

sU]ESTWU@T SLEDU@]IE TIPY WWODA:

prompt kOGDA GDB ZAPRA[IWAET KOMANDU (GLAWNOE PRIGLA[ENIE GDB).

commands kOGDA GDB ZAPRA[IWAET NABOR KOMAND, KAK W KOMANDE commands. pRIME^ANIQ POWTORQ@TSQ DLQ KAVDOJ WWEDENNOJ KOMANDY.

overload-choice

kOGDA GDB HO^ET, ^TOBY POLXZOWATELX WYBRAL ODNU IZ NESKOLXKIH PEREGRUVENNYH FUNKCIJ.

query kOGDA GDB HO^ET, ^TOBY POLXZOWATELX PODTWERDIL POTENCIALXNO OPASNOE DEJSTWIE.

prompt-for-continue

kOGDA GDB ZAPRA[IWAET U POLXZOWATELQ NAVATIE WWODA DLQ PRODOLVENIQ. zAME^ANIE: NE OVIDAJTE, ^TO \TO BUDET RABOTATX HORO[O; ISPOLXZUJTE WMESTO \TOGO set height 0 DLQ OTKL@^ENIQ PRIGLA[ENIJ. |TO PROISHODIT POTOMU, ^TO PRI NALI^II PRIME^ANIJ PODS^ET STROK PROISHODIT NEWERNO.

168

oTLADKA S POMO]X@ GDB

18.7 o[IBKI

^Z^Zquit

|TO PRIME^ANIE POQWLQETSQ NEPOSREDSTWENNO PERED TEM, KAK GDB OTWE^AET NA PRERYWANIE.

^Z^Zerror

|TO PRIME^ANIE POQWLQETSQ SRAZU PERED TEM, KAK GDB OTWE^AET NA O[IBKU.

pRIME^ANIQ WYHODA I O[IBKI OBOZNA^A@T, ^TO L@BOE PRIME^ANIE, W SEREDINE KOTOROGO NAHODILSQ GDB, MOGUT WNEZAPNO OBORWATXSQ. nAPRIMER, ESLI ZA PRIME^ANIEM value- history-begin SLEDUET error, TO NE NUVNO OVIDATX SOOTWETSTWU@]IJ value-history-end. oDNAKO, NE SLEDUET TAKVE OVIDATX, ^TO EGO TO^NO NE BUDET; PRIME^ANIE OB O[IBKE NE OBQZATELXNO OZNA^AET, ^TO GDB NEMEDLENNO WOZWRA]AETSQ W NA^ALO NA SAMYJ WERHNIJ UROWENX.

pRIME^ANI@ K O[IBKE ILI WYHODU MOVET PRED[ESTWOWATX

^Z^Zerror-begin

wESX WYWOD MEVDU \TIM I PRIME^ANIEM K O[IBKE ILI WYHODU QWLQETSQ SOOB]ENIEM OB O[IBKE.

pOKA PRIME^ANIJ K PREDUPREVDA@]IM SOOB]ENIQM NE DELAETSQ.

18.8 iNFORMACIQ O TO^KE OSTANOWA

k WYWODU, PROIZWODIMOMU KOMANDOJ info breakpoints, DELA@TSQ SLEDU@]IE PRIME^A- NIQ:

^Z^Zbreakpoints-headers

\LEMENT-ZAGOLOWKA

^Z^Zbreakpoints-table

GDE \LEMENT-ZAGOLOWKA IMEET TOT VE SINTAKSIS, ^TO I \LEMENT (SMOTRITE NIVE), NO WMESTO DANNYH, ON SODERVIT STROKI, KOTORYE PREDNAZNA^ENY DLQ RAZ_QSNENIQ POLXZOWATEL@ ZNA^ENIJ KAVDOGO POLQ. zATEM SLEDUET PROIZWOLXNOE ^ISLO \LEMENTOW. eSLI POLE NE PODHODIT K \TOMU \LEMENTU, ONO OPUSKAETSQ. pOLQ MOGUT SODERVATX ZAWER[A@]IE PROPUSKI. kAVDOE POLE SOSTOIT IZ:

^Z^Zrecord ^Z^Zfield 0

NOMER

^Z^Zfield 1

TIP

^Z^Zfield 2

POLOVENIE

^Z^Zfield 3

WKL@^ENA

^Z^Zfield 4

ADRES

^Z^Zfield 5

^TO

^Z^Zfield 6

KADR

^Z^Zfield 7

USLOWIE

^Z^Zfield 8

S^ET^IK-IGNORIROWANIJ

^Z^Zfield 9

gLAWA 18: pRIME^ANIQ GDB

169

KOMANDY

zAMETXTE, ^TO ADRES PREDNAZNA^EN DLQ ISPOLXZOWANIQ POLXZOWATELEM|SINTAKSIS RAZLI- ^AETSQ W ZAWISIMOSTI OT QZYKA.

wYWOD ZAKAN^IWAETSQ TAK:

^Z^Zbreakpoints-table-end

18.9 sOOB]ENIQ O NEDOSTOWERNOSTI

sLEDU@]IE PRIME^ANIQ GOWORQT O TOM, ^TO OPREDELENNYE KUSKI INFORMACII, OPISYWA- @]IE SOSTOQNIE, MOGLI IZMENITXSQ.

^Z^Zframes-invalid

kADRY (NAPRIMER, WYWOD KOMANDY backtrace) MOGLI IZMENITXSQ.

^Z^Zbreakpoints-invalid

tO^KI OSTANOWA MOGLI IZMENITXSQ. nAPRIMER, POLXZOWATELX TOLXKO ^TO DOBAWIL ILI UDALIL TO^KU OSTANOWA.

18.10 wYPOLNENIE PROGRAMMY

kOGDA PROGRAMMA NA^INAET WYPOLNQTXSQ WSLEDSTWIE KOMANDY GDB, TAKOJ KAK step ILI continue, WYWODITSQ

^Z^Zstarting

kOGDA PROGRAMMA OSTANAWLIWAETSQ, WYWODITSQ

^Z^Zstopped

pERED PRIME^ANIEM stopped, MNOVESTWO PRIME^ANIJ OPISYWA@T, KAK PROGRAMMA OSTANOWILASX.

^Z^Zexited KOD-WYHODA

pROGRAMMA ZAWER[ILASX, I KOD-WYHODA QWLQETSQ KODOM WYHODA (NOLX PRI USPE[- NOM ZAWER[ENII, W PROTIWNOM SLU^AE NE NOLX).

^Z^Zsignalled

pROGRAMMA ZAWER[ILASX PO SIGNALU. pOSLE ^Z^Zsignalled, PRIME^ANIQ PRODOLVA@TSQ:

WSTUPITELXNYJ-TEKST

^Z^Zsignal-name

IMQ

^Z^Zsignal-name-end

TEKST-W-SEREDINE

^Z^Zsignal-string

STROKA

^Z^Zsignal-string-end

ZAKL@^ITELXNYJ-TEKST

GDE IMQ QWLQETSQ IMENEM SIGNALA, TAKIM KAK SIGILL ILI SIGSEGV, A STROKA PREDSTAWLQET OB_QSNENIE SIGNALA, TAKOE KAK Illegal Instruction ILI

Segmentation fault. wSTUPITELXNYJ-TEKST, TEKST-W-SEREDINE I ZAKL@^ITELX-

NYJ TEKST ISPOLXZU@TSQ DLQ UDOBSTWA POLXZOWATELQ I NE IME@T OPREDELENNOGO FORMATA.

170

oTLADKA S POMO]X@ GDB

^Z^Zsignal

sINTAKSIS \TOGO PRIME^ANIQ TAKOJ VE, KAK DLQ signalled, NO GDB SOOB]AET, ^TO PROGRAMMA LI[X POLU^ILA SIGNAL, A NE TO, ^TO ONA OSTANOWILASX IZ-ZA NEGO.

^Z^Zbreakpoint NOMER

pROGRAMMA DOSTIGLA TO^KI OSTANOWA S NOMEROM NOMER.

^Z^Zwatchpoint NOMER

pROGRAMMA DOSTIGLA TO^KI NABL@DENIQ S NOMEROM NOMER.

18.11 wYWOD ISHODNOGO TEKSTA

sLEDU@]IE PRIME^ANIQ ISPOLXZU@TSQ WMESTO WYWODA ISHODNOGO TEKSTA:

^Z^Zsource IMQ-FAJLA:STROKA:SIMWOL:middle:ADRES

GDE IMQ-FAJLA UKAZYWAET ABSOL@TNOE IMQ FAJLA, STROKA|\TO NOMER STROKI W \TOM FAJLE (PERWAQ STROKA IMEET NOMER 1), SIMWOL|POZICIQ SIMWOLA W FAJLE (PERWYJ SIMWOL W ISHODNOM FAJLE IMEET NOMER 0) (DLQ BOLX[INSTWA OTLADO^NYH FORMATOW \TO BUDET OBQZATELXNO UKAZYWATX NA NA^ALO STROKI), middle ESTX `middle', ESLI ADRES NAHODITSQ W SEREDINE STROKI, ILI `beg', ESLI ADRES NAHODITSQ W NA^ALE STROKI, A ADRES QWLQETSQ ADRESOM W CELEWOJ PROGRAMME, ASSOCIIROWANNYM S WYWODIMYM ISHODNYM TEKSTOM. aDRES ZAPISAN W FORME `0x', ZA KOTORYM SLEDUET ODNA ILI NESKOLXKO [ESTNADCATERI^NYH CIFR W NIVNEM REGISTRE (ZAMETXTE, ^TO \TO NE ZAWISIT OT QZYKA).

18.12 pRIME^ANIQ, KOTORYE MOGUT PONADOBITXSQ S BUDU]EM

-target-invalid

CELX MOGLA IZMENITXSQ (REGISTRY, SODERVIMOE PAMQTI ILI STATUS WYPOLNENIQ). dLQ \FFEKTIWNOSTI WYPOLNENIQ, MY MOVEM ZAHOTETX OPREDELQTX `register-invalid' I `all-register-invalid' S BOLX[EJ TO^NOSTX@

-SISTEMATI^ESKIE PRIME^ANIQ K PARAMETRAM set/show (WKL@^AQ SOOB]ENIQ O NEDOSTOWERNOSTI).

-ANALOGI^NO, `info' WOZWRA]AET SPISOK KANDIDATOW NA SOOB]ENIE O NEDOSTOWERNOSTI.

gLAWA 19: iNTERFEJS gdb/mi

171

19 iNTERFEJS gdb/mi

nAZNA^ENIE I CELX

gdb/mi QWLQETSQ POSTRO^NYM, MA[INNO-ORIENTIROWANNYM TEKSTOWYM INTERFEJSOM K GDB. oN PREDNAZNA^EN SPECIALXNO DLQ PODDERVKI RAZRABOTKI SISTEM, KOTORYE ISPOLXZU- @T OTLAD^IK LI[X KAK ODNU MALENXKU@ KOMPONENTU BOLX[OJ SISTEMY.

|TA GLAWA QWLQETSQ SPECIFIKACIEJ INTERFEJSA gdb/mi. oNA NAPISANA W FORME SPRAWO^NOGO RUKOWODSTWA.

zAMETXTE, ^TO gdb/mi WSE E]E NAHODITSQ W STADII RAZRABOTKI, TAK ^TO NEKOTORYE OPISANNYE NIVE WOZMOVNOSTI QWLQ@TSQ NEPOLNYMI I MOGUT BYTX IZMENENY.

sISTEMA OBOZNA^ENIJ I TERMINOLOGIQ

|TA GLAWA ISPOLXZUET SLEDU@]U@ SISTEMU OBOZNA^ENIJ:

| RAZDELQET DWE ALXTERNATIWY.

[ NE^TO ] UKAZYWAET, ^TO NE^TO QWLQETSQ NEOBQZATELXNYM: ONO MOVET BYTX ZADANO, A MOVET I NET.

( GRUPPA )* OZNA^AET, ^TO GRUPPA W SKOBKAH MOVET POWTORQTXSQ NOLX I BOLEE RAZ.

( GRUPPA )+ OZNA^AET, ^TO GRUPPA W SKOBKAH MOVET POWTORQTXSQ ODIN I BOLEE RAZ.

"STROKA" OBOZNA^AET TEKST STROKA.

wYRAVENIQ PRIZNATELXNOSTI

w ALFAWITNOM PORQDKE: eLENA zANNONI, |NDR@ kAGNI, fERNANDO nASSER I sTAN {EBS.

19.1 sINTAKSIS KOMAND gdb/mi

19.1.1 wHODNOJ SINTAKSIS gdb/mi

KOMANDA 7!

KOMANDA-cli | KOMANDA-mi

KOMANDA-cli 7!

[ LEKSEMA ] KOMANDA-cli nl, GDE KOMANDA-cli ESTX L@BAQ SU]ESTWU@]AQ KOMANDA

GDB CLI.

KOMANDA-mi 7!

[ LEKSEMA ] "-" DEJSTWIE ( " " KL@^ )* [ " --" ] ( " " PARAMETR )* nl

LEKSEMA 7!

"L@BAQ POSLEDOWATELXNOSTX CIFR"

KL@^ 7! "-" PARAMETR [ " " PARAMETR ]

PARAMETR 7!

NEPUSTAQ-POSLEDOWATELXNOSTX | STROKA-SI

DEJSTWIE 7!

L@BOE IZ DEJSTWIJ, OPISANNYH W \TOJ GLAWE

172

oTLADKA S POMO]X@ GDB

NEPUSTAQ-POSLEDOWATELXNOSTX 7!

 

WSE ^TO UGODNO, NE SODERVA]EE SPECIALXNYH ZNAKOW, TAKIH KAK "-", nl, """ I,

 

KONE^NO, " "

STROKA-SI 7!

 

""" SODERVIMOE-SEMIBITNOJ-STROKI-iso-SI """

nl 7!

CR | CR-LF

zAME^ANIQ:

kOMANDY CLI WSE E]E OBRABATYWA@TSQ INTERPRETATOROM mi; IH WYWOD OPISAN NIVE.

lEKSEMA, ESLI PRISUTSTWUET, PEREDAETSQ NAZAD, KOGDA WYPOLNENIE KOMANDY ZAWER[AETSQ.

nEKOTORYE KOMANDY mi DOPUSKA@T NEOBQZATELXNYE ARGUMENTY KAK ^ASTX SPISKA PARAMETROW. kAVDYJ KL@^ IDENTIFICIRUETSQ PRED[ESTWU@]EJ EMU ^ERTOJ `-', I ZA NIM MOVET SLEDOWATX W KA^ESTWE PARAMETRA NEOBQZATELXNYJ ARGUMENT. kL@^I POQWLQ@T- SQ W NA^ALE SPISKA PARAMETROW I MOGUT BYTX OTDELENY OT OBY^NYH PARAMETROW PRI POMO]I `-' (\TO POLEZNO, KOGDA NEKOTORYE PARAMETRY NA^INA@TSQ S ^ERTY).

pRAGMATI^ESKIE SOOBRAVENIQ:

mY HOTIM POLU^ITX PROSTOJ DOSTUP K SU]ESTWU@]EMU SINTAKSISU CLI (DLQ OTLADKI).

mY HOTIM, ^TOBY RABOTA mi BYLA LEGKO ZAMETNA.

19.1.2 wYHODNOJ SINTAKSIS gdb/mi

wYWOD gdb/mi SOSTOIT IZ NULQ ILI BOLEE WNEO^EREDNYH ZAPISEJ, ZA KOTORYMI MOVET SLEDOWATX ODNA REZULXTIRU@]AQ ZAPISX. |TA ZAPISX OTNOSITSQ K SAMOJ POSLEDNEJ KOMANDE. pOSLEDOWATELXNOSTX WYWODIMYH ZAPISEJ ZAWER[AETSQ `(gdb)'.

eSLI WHODNAQ KOMANDA NA^INALASX S PREFIKSA LEKSEMA, TO SOOTWETSTWU@]IJ WYWOD DLQ \TOJ KOMANDY TAKVE BUDET NA^INATXSQ S TOGO VE PREFIKSA LEKSEMA.

WYWOD 7! ( WNEO^EREDNAQ-ZAPISX )* [ REZULXTIRU@]AQ-ZAPISX ] "(gdb)" nl

REZULXTIRU@]AQ-ZAPISX 7!

[ LEKSEMA ] "^" REZULXTIRU@]IJ-KLASS ( "," REZULXTAT )* nl

WNEO^EREDNAQ-ZAPISX 7!

ASINHR-ZAPISX | POTO^N-ZAPISX

ASINHR-ZAPISX 7!

ASINHR-WYWOD-WYPOLN | ASINHR-WYWOD-STATUSA | ASINHR-WYWOD-UWEDOML

ASINHR-WYWOD-WYPOLN 7!

[ LEKSEMA ] "*" ASINHR-WYWOD

ASINHR-WYWOD-STATUSA 7!

[ LEKSEMA ] "+" ASINHR-WYWOD

ASINHR-WYWOD-UWEDOML 7!

[ LEKSEMA ] "=" ASINHR-WYWOD

ASINHR-WYWOD 7!

ASINHR-KLASS ( "," REZULXTAT )* nl

REZULXT-KLASS 7!

"done" | "running" | "connected" | "error" | "exit"

ASINHR-KLASS 7!

"stopped" | DRUGOE (GDE DRUGOE BUDET DOBAWLENO PO NEOBHODIMOSTI|\TO WSE E]E NAHODITSQ W STADII RAZRABOTKI).

gLAWA 19: iNTERFEJS gdb/mi

173

REZULXTAT 7!

[ STROKA "=" ] ZNA^ENIE

ZNA^ENIE 7!

KONSTANTA | "{" REZULXTAT ( "," REZULXTAT )* "}"

KONSTANTA 7!

STROKA-SI

POTO^N-ZAPISX 7!

KONSOLXN-POTO^N-WYWOD | CELEW-POTO^N-WYWOD | VURN-POTO^N-WYWOD

KONSOLXN-POTO^N-WYWOD 7! "~" STROKA-SI

CELEW-POTO^N-WYWOD 7! "@" STROKA-SI

VURN-POTO^N-WYWOD 7! "&" STROKA-SI

nl 7! CR | CR-LF

LEKSEMA 7!

L@BAQ POSLEDOWATELXNOSTX CIFR.

kROME TOGO, SLEDU@]EE WSE E]E NAHODITSQ W STADII RAZRABOTKI:

ZAPROS |TO DEJSTWIE POKA NE OPREDELENO.

zAME^ANIQ:

wSE WYHODNYE POSLEDOWATELXNOSTI ZAKAN^IWA@TSQ ODNOJ STROKOJ, SODERVA]EJ TO^KU.

lEKSEMA BERETSQ IZ SOOTWETSTWU@]EGO ZAPROSA. eSLI WYPOLNENIE KOMANDY PRERYWAETSQ KOMANDOJ `-exec-interrupt', LEKSEMA, ASSOCIIROWANNAQ S SOOB]ENIEM `*stopped', QWLQETSQ LEKSEMOJ ISHODNOJ WYPOLNQEMOJ KOMANDY, A NE LEKSEMOJ KOMANDY PRERYWANIQ.

aSINHR-WYWOD-STATUSA SODERVIT POSLEDU@]U@ INFORMACI@ SOSTOQNIQ O WYPOLNENII MEDLENNOJ OPERACII. oNA MOVET BYTX OTBRO[ENA. wESX WYWOD SOSTOQNIQ NA^INAETSQ S PREFIKSA `+'.

aSINHR-WYWOD-WYPOLN SODERVIT ASINHRONNOE IZMENENIQ SOSTOQNIQ NA CELI (OSTANOWLENA, ZAPU]ENA, IS^EZLA). wESX ASINHRONNYJ WYWOD NA^INAETSQ S PREFIKSA `*'.

aSINHR-WYWOD-UWEDOML SODERVIT SOPROWOVDA@]U@ INFORMACI@, KOTORU@ DOLVEN OBRABOTATX KLIENT (NAPRIMER, INFORMACI@ O NOWOJ TO^KE OSTANOWA). wESX UWEDOMITELXNYJ WYWOD NA^INAETSQ S PREFIKSA `='.

kONSOLXN-POTO^N-WYWOD QWLQETSQ WYWODOM, KOTORYJ DOLVEN BYTX OTOBRAVEN NA KONSOLI BEZ IZMENENIJ. oN QWLQETSQ TEKSTOWYM OTWETOM NA KOMANDU CLI. wESX KONSOLXNYJ WYWOD NA^INAETSQ S PREFIKSA `~'.

cELEW-POTO^N-WYWOD QWLQETSQ WYWODOM, PROIZWEDENNYM CELEWOJ PROGRAMMOJ. wESX CELEWOJ WYWOD NA^INAETSQ S PREFIKSA `@'.

vURN-POTO^N-WYWOD QWLQETSQ WYHODNYM TEKSTOM, PROISHODQ]IM OT WNUTRENNEJ REALIZACII GDB, NAPRIMER, SOOB]ENIQ, KOTORYE DOLVNY BYTX OTOBRAVENY KAK ^ASTX VURNALA O[IBOK. wESX VURNALXNYJ WYWOD NA^INAETSQ S PREFIKSA `&'.

sM. rAZDEL 19.3.2 [pOTO^NYE ZAPISI gdb/mi], S. 175, DLQ BOLEE PODROBNOJ INFORMACII O RAZLI^NYH WYWODIMYH ZAPISQH.

sM. rAZDEL 19.15 [~ERNOWIK IZMENENIJ K WYHODNOMU SINTAKSISU gdb/mi], S. 222, DLQ PREDLAGAEMYH IZMENENIJ K WYHODNOMU SINTAKSISU.

174

oTLADKA S POMO]X@ GDB

19.1.3 pROSTYE PRIMERY WZAIMODEJSTWIQ S gdb/mi

|TOT PODRAZDEL PREDSTAWLQET NESKOLXKO PROSTYH PRIMEROW WZAIMODEJSTWIQ S ISPOLXZOWANIEM INTERFEJSA gdb/mi. w \TIH PRIMERAH, `->' OZNA^AET, ^TO SLEDU@]AQ STROKA PEREDAETSQ gdb/mi W KA^ESTWE WWODA, A `<-' OZNA^AET WYWOD, POLU^ENNYJ OT gdb/mi.

oSTANOW CELI

wOT PRIMER OSTANOWA POD^INENNOGO PROCESSA:

-> -stop <- (gdb)

I ZATEM:

<- *stop,reason="stop",address="0x123",source="a.c:123" <- (gdb)

pROSTAQ KOMANDA CLI

wOT PRIMER PROSTOJ KOMANDY CLI, PEREDAWAEMOJ EMU ^EREZ gdb/mi.

-> print 1+2 <- ~3\n

<- (gdb)

kOMANDA S POBO^NYMI \FFEKTAMI

-> -symbol-file xyz.exe

<- *breakpoint,nr="3",address="0x123",source="a.c:123" <- (gdb)

pLOHAQ KOMANDA

wOT ^TO PROISHODIT, ESLI WY PEREDAETE NESU]ESTWU@]U@ KOMANDU:

-> -rubbish

<- error,"Rubbish not found" <- (gdb)

19.2 sOWMESTIMOSTX gdb/mi S CLI

~TOBY POMO^X POLXZOWATELQM, ZNAKOMYM S SU]ESTWU@]IM W GDB INTERFEJSOM CLI, gdb/mi PRINIMAET SU]ESTWU@]IE KOMANDY CLI. kAK OPREDELENO SINTAKSISOM, TAKIE KOMANDY MOGUT BYTX NEPOSREDSTWENNO WWEDENY W INTERFEJS gdb/mi, I GDB BUDET OTWE^ATX.

|TOT MEHANIZM PREDOSTAWLQETSQ DLQ POMO]I RAZRABOT^IKAM KLIENTOW gdb/mi, A NE KAK NADEVNYJ INTERFEJS K CLI. tAK KAK KOMANDA INTERPRETIRUETSQ W SREDE, KOTORAQ PODRAZUMEWAET POWEDENIE gdb/mi, TO^NYE REZULXTATY TAKIH KOMAND W KONE^NOM ITOGE SKOREE WSEGO STANUT NEUDOBOWARIMOJ SMESX@ WYWODA gdb/mi I CLI.

19.3 wYHODNYE ZAPISI gdb/mi

gLAWA 19: iNTERFEJS gdb/mi

175

19.3.1 rEZULXTIRU@]IE ZAPISI gdb/mi

w DOPOLNENIE K MNOVESTWU WNEO^EREDNYH UWEDOMLENIJ, OTWET NA KOMANDU gdb/mi WKL@- ^AET ODIN IZ SLEDU@]IH UKAZATELEJ REZULXTATA:

"^done" [ "," REZULXTATY ]

sINHRONNAQ OPERACIQ PRO[LA USPE[NO, WOZWRA]AEMYMI ZNA^ENIQMI QWLQ@TSQ

REZULXTATY.

"^running"

aSINHRONNAQ OPERACIQ BYLA USPE[NO NA^ATA. cELX WYPOLNQETSQ.

"^error" "," STROKA-SI

oPERACIQ ZAWER[ILASX S O[IBKOJ. sTROKA-SI SODERVIT SOOTWETSTWU@]EE SOOB- ]ENIE OB O[IBKE.

19.3.2 pOTO^NYE ZAPISI gdb/mi

GDB HRANIT ^ISLO WYHODNYH POTOKOW: KONSOLX, CELX I VURNAL. wYWOD, PREDNAZNA- ^ENNYJ DLQ \TIH POTOKOW, PROPUSKAETSQ ^EREZ INTERFEJS gdb/mi PRI POMO]I POTO^NYH ZAPISEJ.

kAVDAQ POTO^NAQ ZAPISX NA^INAETSQ S UNIKALXNOGO PREFIKSNOGO SIMWOLA, KOTORYJ IDENTIFICIRUET SWOJ POTOK (SM. rAZDEL 19.1.2 [wYHODNOJ SINTAKSIS gdb/mi], S. 172). pOMIMO PREFIKSA, KAVDAQ POTO^NAQ ZAPISX SODERVIT STROKU-WYWOD. |TO LIBO PROSTOJ TEKST (S PODRAZUMEWAEMYM ZNAKOM NOWOJ STROKI), ILI sI-STROKA W KAWY^KAH (KOTORAQ NE SODERVIT PODRAZUMEWAEMOGO ZNAKA NOWOJ STROKI).

"~" STROKA-WYWOD

kONSOLXNYJ POTOK WYWODA SODERVIT TEKST, KOTORYJ DOLVEN BYTX OTOBRAVEN W KONSOLXNOM OKNE CLI. oN SODERVIT TEKSTOWYE OTWETY NA KOMANDY CLI.

"@" STROKA-WYWOD

cELEWOJ POTOK WYWODA SODERVIT PROIZWOLXNYJ TEKSTOWYJ WYWOD OT WYPOLNQEMOJ CELI.

"&" STROKA-WYWOD

vURNALXNYJ POTOK SODERVIT OTLADO^NYE SOOB]ENIQ, KOTORYE SOZDAET SAM

GDB.

19.3.3 wNEO^EREDNYE ZAPISI gdb/mi

wNEO^EREDNYE ZAPISI ISPOLXZU@TSQ DLQ UWEDOMLENIQ KLIENTA gdb/mi O PROIZO[ED[IH DOPOLNITELXNYH IZMENENIQH. |TI IZMENENIQ MOGUT LIBO ISHODITX OT gdb/mi (NAPRIMER, IZMENENNAQ TO^KA OSTANOWA), LIBO BYTX REZULXTATOM DEJSTWIJ CELI (NAPRIMER, CELX OSTANOWILASX).

nIVE PRIWEDEN PREDWARITELXNYJ SPISOK WOZMOVNYH WNEO^EREDNYH ZAPISEJ.

"*" "stop"

19.4 fORMAT OPISANIQ KOMAND gdb/mi

oSTAW[IESQ RAZDELY OPISYWA@T BLOKI KOMAND. kAVDYJ BLOK KOMAND SHEMATI^NO ANALOGI^EN \TOMU RAZDELU.

zAMETXTE, ^TO RAZBIENIQ STROK W PRIMERAH PRISUTSTWU@T TOLXKO DLQ UDOBSTWA ^TENIQ. oNI NE POQWLQ@TSQ W REALXNOM WYWODE. u^TITE TAKVE, ^TO KOMANDY S NEDOSTUPNYMI PRIMERAMI (n.p.) E]E NE REALIZOWANY.

176

oTLADKA S POMO]X@ GDB

mOTIWACIQ

mOTIWACIQ DLQ \TOGO NABORA KOMAND.

wWEDENIE

kRATKOE WWEDENIE W \TOT NABOR KOMAND W CELOM.

kOMANDY

dLQ KAVDOJ KOMANDY W BLOKE, OPISANO SLEDU@]EE:

kRATKOE OPISANIE

-command ARG...

kOMANDA GDB

sOOTWETSTWU@]AQ KOMANDA CLI GDB.

rEZULXTAT

wNEO^EREDNYE SOOB]ENIQ

pRIME^ANIQ

pRIMER

19.5 kOMANDY gdb/mi DLQ TABLICY TO^EK OSTANOWA

|TOT RAZDEL OPISYWAET KOMANDY gdb/mi DLQ UPRAWLENIQ TO^KAMI OSTANOWA.

kOMANDA -break-after

kRATKOE OPISANIE

-break-after NOMER ^ISLO

tO^KA OSTANOWA S NOMEROM NOMER NE SRABATYWAET, POKA ONA NE BUDET DOSTIGNUTA ^ISLO RAZ. ~TOBY UWIDETX, KAK \TO OTRAVAETSQ NA WYWODE KOMANDY `-break-list', SMOTRITE NIVE OPISANIE KOMANDY `-break-list'.

kOMANDA GDB

sOOTWETSTWU@]EJ KOMANDOJ GDB QWLQETSQ `ignore'.

gLAWA 19: iNTERFEJS gdb/mi

177

pRIMER

(gdb) -break-insert main

^done,bkpt={number="1",addr="0x000100d0",file="hello.c",line="5"}

(gdb) -break-after 1 3

~

^done

(gdb) -break-list

^done,BreakpointTable={hdr={"Num","Type","Disp","Enb","Address","What"},

bkpt={number="1",type="breakpoint",disp="keep",enabled="y",

addr="0x000100d0",func="main",file="hello.c",line="5",times="0",

ignore="3"}}

(gdb)

kOMANDA -break-condition

kRATKOE OPISANIE

-break-condition NOMER WYRAV

tO^KA OSTANOWA NOMER OSTANOWIT PROGRAMMU, TOLXKO ESLI USLOWIE WYRAV ISTINO. uSLOWIE STANOWITSQ ^ASTX@ WYWODA `-break-list' (SMOTRITE NIVE OPISANIE KOMANDY

`-break-list').

kOMANDA GDB

sOOTWETSTWU@]EJ KOMANDOJ GDB QWLQETSQ `condition'.

pRIMER

(gdb) -break-condition 1 1 ^done

(gdb) -break-list

^done,BreakpointTable={hdr={"Num","Type","Disp","Enb","Address","What"},

bkpt={number="1",type="breakpoint",disp="keep",enabled="y",

addr="0x000100d0",func="main",file="hello.c",line="5",cond="1",

times="0",ignore="3"}}

(gdb)

kOMANDA -break-delete

kRATKOE OPISANIE

-break-delete ( TO^KA-OSTANOWA )+

uDALITX TO^KI OSTANOWA, ^XI NOMERA UKAZANY W SPISKE ARGUMENTOW. |TO, O^EWIDNO, OTRAVAETSQ NA SPISKE TO^EK OSTANOWA.

178

oTLADKA S POMO]X@ GDB

kOMANDA GDB

sOOTWETSTWU@]EJ KOMANDOJ GDB QWLQETSQ `delete'.

pRIMER

(gdb) -break-delete 1 ^done

(gdb) -break-list

^done,BreakpointTable={}

(gdb)

kOMANDA -break-disable

kRATKOE OPISANIE

-break-disable ( TO^KA-OSTANOWA )+

oTKL@^ITX UPOMQNUTYE TO^KI-OSTANOWA. dLQ UKAZANNYH TO^EK-OSTANOWA POLE `enabled' W SPISKE TO^EK OSTANOWA TEPERX USTANOWLENO W `n'.

kOMANDA GDB

sOOTWETSTWU@]EJ KOMANDOJ GDB QWLQETSQ `disable'.

pRIMER

(gdb) -break-disable 2 ^done

(gdb) -break-list

^done,BreakpointTable={hdr={"Num","Type","Disp","Enb","Address","What"},

bkpt={number="2",type="breakpoint",disp="keep",enabled="n",

addr="0x000100d0",func="main",file="hello.c",line="5",times="0"}}

(gdb)

kOMANDA -break-enable

kRATKOE OPISANIE

-break-enable ( TO^KA-OSTANOWA )+ wKL@^ITX (RANEE OTKL@^ENNYE) TO^KI-OSTANOWA.

kOMANDA GDB

sOOTWETSTWU@]EJ KOMANDOJ GDB QWLQETSQ `enable'.

gLAWA 19: iNTERFEJS gdb/mi

179

pRIMER

(gdb) -break-enable 2 ^done

(gdb) -break-list

^done,BreakpointTable={hdr={"Num","Type","Disp","Enb","Address","What"},

bkpt={number="2",type="breakpoint",disp="keep",enabled="y",

addr="0x000100d0",func="main",file="hello.c",line="5",times="0"}}

(gdb)

kOMANDA -break-info

kRATKOE OPISANIE

-break-info TO^KA-OSTANOWA

pOLU^ITX INFORMACI@ OB ODNOJ TO^KE OSTANOWA.

kOMANDA GDB

sOOTWETSTWU@]EJ KOMANDOJ GDB QWLQETSQ `info break TO^KA-OSTANOWA'.

pRIMER

n.p.

kOMANDA -break-insert

kRATKOE OPISANIE

-break-insert [ -t ] [ -h ] [ -r ]

[ -c USLOWIE ] [ -i S^ET^IK-IGNORIROWANIJ ] [ -p NITX ] [ STROKA | ADRES ]

sTROKA, ESLI UKAZANA, MOVET BYTX ODNOJ IZ:

FUNKCIQ

IMQ-FAJLA:NOMER-STROKI

IMQ-FAJLA:FUNKCIQ

*ADRES

wOT WOZMOVNYE NEOBQZATELXNYE PARAMETRY \TOJ KOMANDY:

`-t' wSTAWITX WREMENNU@ TO^KU OSTANOWA.

`-h' wSTAWITX APPARATNU@ TO^KU OSTANOWA.

`-c USLOWIE'

sDELATX TO^KU OSTANOWA USLOWNOJ S ZADANNYM USLOWIEM.

`-i S^ET^IK-IGNORIROWANIJ'

iNICIALIZIROWATX S^ET^IK-IGNORIROWANIJ.

`-r' wSTAWITX OBY^NU@ TO^KU OSTANOWA WO WSEH FUNKCIQH, ^XI IMENA UDOWLETWORQ@T DANNOMU REGULQRNOMU WYRAVENI@. dRUGIE FLAGI K REGULQRNOMU WYRAVENI@ NEPRIMENIMY.

180

oTLADKA S POMO]X@ GDB

rEZULXTAT

rEZULXTAT IMEET FORMU:

^done,bkptno="NOMER",func="IMQ-FUNKCII", file="IMQ-FAJLA",line="NOM-STROKI"

GDE NOMER QWLQETSQ NOMEROM \TOJ TO^KI OSTANOWA W GDB, IMQ-FUNKCII|IMQ FUNKCII, W KOTOROJ BYLA WSTAWLENA TO^KA OSTANOWA, IMQ-FAJLA|IMQ ISHODNOGO FAJLA, W KOTOROM NAHODITSQ \TA FUNKCIQ, A NOM-STROKI QWLQETSQ NOMEROM STROKI ISHODNOGO TEKSTA W \TOM FAJLE.

zAME^ANIE: \TOT FORMAT MOVET IZMENQTXSQ.

kOMANDA GDB

sOOTWETSTU@]IMI KOMANDAMI GDB QWLQ@TSQ `break', `tbreak', `hbreak', `thbreak' I

`rbreak'.

pRIMER

(gdb) -break-insert main

^done,bkpt={number="1",addr="0x0001072c",file="recursive2.c",line="4"}

(gdb)

-break-insert -t foo ^done,bkpt={number="2",addr="0x00010774",file="recursive2.c",line="11"} (gdb)

-break-list ^done,BreakpointTable={hdr={"Num","Type","Disp","Enb","Address","What"}, bkpt={number="1",type="breakpoint",disp="keep",enabled="y", addr="0x0001072c", func="main",file="recursive2.c",line="4",times="0"}, bkpt={number="2",type="breakpoint",disp="del",enabled="y", addr="0x00010774",func="foo",file="recursive2.c",line="11",times="0"}} (gdb)

-break-insert -r foo.* ~int foo(int, int);

^done,bkpt={number="3",addr="0x00010774",file="recursive2.c",line="11"}

(gdb)

kOMANDA -break-list

kRATKOE OPISANIE

-break-list

oTOBRAVAET SPISOK USTANOWLENNYH TO^EK OSTANOWA, POKAZYWAQ SLEDU@]IE POLQ:

`Number' NOMER TO^KI OSTANOWA

`Type' TIP TO^KI OSTANOWA: `breakpoint' ILI `watchpoint'

`Disposition'

\TA TO^KA OSTANOWA DOLVNA BYTX UDALENA ILI OTKL@^ENA PRI SRABATYWANII: `keep' ILI `nokeep'

`Enabled' WKL@^ENA TO^KA OSTANOWA ILI NET: `y' ILI `n'

gLAWA 19: iNTERFEJS gdb/mi

181

`Address' MESTOPOLOVENIE W PAMQTI, GDE USTANOWLENA TO^KA OSTANOWA

`What' LOGI^ESKOE POLOVENIE TO^KI OSTANOWA, WYRAVENNOE IMENEM FUNKCII, IMENEM

FAJLA, NOMEROM STROKI

`Times' ~ISLO RAZ, KOTOROE TO^KA OSTANOWA SRABATYWALA

eSLI TO^EK OSTANOWA ILI NABL@DENIQ NET, POLE BreakpointTable QWLQETSQ PUSTYM SPISKOM.

kOMANDA GDB

sOOTWETSTWU@]EJ KOMANDOJ GDB QWLQETSQ `info break'.

pRIMER

(gdb) -break-list

^done,BreakpointTable={hdr={"Num","Type","Disp","Enb","Address","What"},

bkpt={number="1",type="breakpoint",disp="keep",enabled="y",

addr="0x000100d0",func="main",file="hello.c",line="5",times="0"},

bkpt={number="2",type="breakpoint",disp="keep",enabled="y",

addr="0x00010114",func="foo",file="hello.c",line="13",times="0"}}

(gdb)

wOT PRIMER REZULXTATA, KOGDA TO^EK OSTANOWA NET:

(gdb) -break-list

^done,BreakpointTable={}

(gdb)

kOMANDA -break-watch

kRATKOE OPISANIE

-break-watch [ -a | -r ]

sOZDATX TO^KU NABL@DENIQ. s KL@^EM `-a' BUDET SOZDANA TO^KA NABL@DENIQ ZA DOSTUPOM, TO ESTX TAKAQ TO^KA NABL@DENIQ, KOTORAQ SRABATYWAET LIBO PRI ^TENII, LIBO PRI ZAPISI W OPREDELENNOE MESTOPOLOVENIE W PAMQTI. s KL@^EM `-r' SOZDANNAQ TO^KA NABL@- DENIQ BUDET TO^KOJ NABL@DENIQ ZA ^TENIEM, TO ESTX ONA BUDET SRABATYWATX TOLXKO KOGDA K OPREDELENNOMU MESTOPOLOVENI@ W PAMQTI OSU]ESTWLQETSQ DOSTUP NA ^TENIE. bEZ \TIH KL@^EJ BUDET SOZDANA OBY^NAQ TO^KA NABL@DENIQ, TO ESTX ONA BUDET SRABATYWATX, KOGDA K MESTOPOLOVENI@ W PAMQTI OSU]ESTWLQETSQ DOSTUP DLQ ZAPISI. sM. rAZDEL 5.1.2 [uSTANOWKA TO^EK NABL@DENIQ], S. 35.

zAMETXTE, ^TO `-break-list' WYDAST EDINYJ SPISOK USTANOWLENNYH TO^EK NABL@DENIQ I

OSTANOWA.

kOMADA GDB

sOOTWETSTWU@]IMI KOMANDAMI GDB QWLQ@TSQ `watch', `awatch' I `rwatch'.

182

oTLADKA S POMO]X@ GDB

pRIMER

uSTANOWKA TO^KI NABL@DENIQ ZA PEREMENNOJ W FUNKCII main:

(gdb) -break-watch x

^done,wpt={number="2",exp="x"}

(gdb) -exec-continue ^running

^done,reason="watchpoint-trigger",wpt={number="2",exp="x"}, value={old="-268439212",new="55"}, frame={func="main",args={},file="recursive2.c",line="5"} (gdb)

uSTANOWKA TO^KI NABL@DENIQ ZA LOKALXNOJ PEREMENNOJ FUNKCII. GDB DWAVDY OSTANOWIT WYPOLNENIE PROGRAMMY: SNA^ALA PRI IZMENENII ZNA^ENIQ PEREMENNOJ, ZATEM PRI WYHODE TO^KI NABL@DENIQ IZ OBLASTI WIDIMOSTI.

(gdb) -break-watch C

^done,wpt={number="5",exp="C"}

(gdb) -exec-continue ^running

^done,reason="watchpoint-trigger", wpt={number="5",exp="C"},value={old="-276895068",new="3"}, frame={func="callee4",args={}, file="../../../devo/gdb/testsuite/gdb.mi/basics.c",line="13"} (gdb)

-exec-continue ^running

^done,reason="watchpoint-scope",wpnum="5", frame={func="callee3",args={{name="strarg", value="0x11940 \"A string argument.\""}},

file="../../../devo/gdb/testsuite/gdb.mi/basics.c",line="18"} (gdb)

sPISOK TO^EK OSTANOWA I NABL@DENIQ, W RAZNYH MESTAH WYPOLNENIQ PROGRAMMY. zAMETXTE, ^TO KAK TOLXKO TO^KA NABL@DENIQ WYHODIT IZ OBLASTI WIDIMOSTI, ONA UDALQETSQ.

(gdb) -break-watch C

^done,wpt={number="2",exp="C"}

(gdb) -break-list

^done,BreakpointTable={hdr={"Num","Type","Disp","Enb","Address","What"},

bkpt={number="1",type="breakpoint",disp="keep",enabled="y",

addr="0x00010734",func="callee4", file="../../../devo/gdb/testsuite/gdb.mi/basics.c",line="8",times="1"}, bkpt={number="2",type="watchpoint",disp="keep", enabled="y",addr="",what="C",times="0"}}

(gdb) -exec-continue ^running

^done,reason="watchpoint-trigger",wpt={number="2",exp="C"},

gLAWA 19: iNTERFEJS gdb/mi

183

value={old="-276895068",new="3"}, frame={func="callee4",args={}, file="../../../devo/gdb/testsuite/gdb.mi/basics.c",line="13"} (gdb)

-break-list ^done,BreakpointTable={hdr={"Num","Type","Disp","Enb","Address","What"}, bkpt={number="1",type="breakpoint",disp="keep",enabled="y", addr="0x00010734",func="callee4", file="../../../devo/gdb/testsuite/gdb.mi/basics.c",line="8",times="1"}, bkpt={number="2",type="watchpoint",disp="keep", enabled="y",addr="",what="C",times="-5"}}

(gdb) -exec-continue ^running

^done,reason="watchpoint-scope",wpnum="2", frame={func="callee3",args={{name="strarg", value="0x11940 \"A string argument.\""}},

file="../../../devo/gdb/testsuite/gdb.mi/basics.c",line="18"} (gdb)

-break-list ^done,BreakpointTable={hdr={"Num","Type","Disp","Enb","Address","What"}, bkpt={number="1",type="breakpoint",disp="keep",enabled="y", addr="0x00010734",func="callee4", file="../../../devo/gdb/testsuite/gdb.mi/basics.c",line="8",times="1"}} (gdb)

19.6 uPRAWLENIE DANNYMI gdb/mi

|TOT RAZDEL OPISYWAET KOMANDY gdb/mi DLQ UPRAWLENIQ DANNYMI: ISSLEDOWANIE PAMQTI I REGISTROW, WY^ISLENIE WYRAVENIJ, I TAK DALEE.

kOMANDA -data-disassemble

kRATKOE OPISANIE

-data-disassemble

[ -s NA^-ADR -e KON-ADR ]

| [ -f IMQ-FAJLA -l NOM-STROKI [ -n ST ] ] - REVIM

gDE:

`NA^-ADR' NA^ALXNYJ ADRES (ILI $pc)

`KON-ADR' KONE^NYJ ADRES

`IMQ-FAJLA'

IMQ FAJLA DLQ DISASSEMBLIROWANIQ

`NOM-STROKI'

NOMER STROKI, W RAJONE KOTOROJ PROWODITX DISASSEMBLIROWANIE

`ST' ^ISLO STROK DISASSEMBLIROWANIQ, KOTOROE NEOBHODIMO PROIZWESTI. eSLI RAWNO -1 I KON-ADR NE UKAZAN, TO BUDET DISASSEMBLIROWANA CELAQ FUNKCIQ. eSLI

184

oTLADKA S POMO]X@ GDB

KON-ADR UKAZAN I NE RAWEN NUL@, I ST MENX[E, ^EM KOLI^ESTWO STROK DISASSEMBLIROWANIQ MEVDU NA^-ADR I KON-ADR, OTOBRAVA@TSQ TOLXKO ST STROK. eSLI ST BOLX[E, ^EM ^ISLO STROK MEVDU NA^-ADR I KON-ADR, OTOBRAVA@TSQ TOLXKO STROKI DO KON-ADR.

`REVIM' LIBO 0 (OZNA^AET TOLXKO REZULXTAT DISASSEMBLIROWANIQ), LIBO 1 (OZNA^AET SMESX ISHODNOGO TEKSTA I REZULXTATA DISASSEMBLIROWANIQ).

rEZULXTAT

wYWOD DLQ KAVDOJ INSTRUKCII SOSTOIT IZ ^ETYREH POLEJ:

aDRES

iMQ-fUNKCII

sME]ENIE

iNSTRUKCIQ

zAMETXTE, ^TO TO, ^TO WKL@^ENO W POLE INSTRUKCII, NE OBRABATYWAETSQ NEPOSREDSTWENNO gdb/mi, TO ESTX IZMENITX EGO FORMAT NEWOZMOVNO.

kOMANDA GDB

nEPOSREDSTWENNOGO OTOBRAVENIQ \TOJ KOMANDY W CLI NET.

pRIMER

dISASSEMBLIROWANIE OT TEKU]EGO ZNA^ENIQ $pc DO $pc + 20:

(gdb)

-data-disassemble -s $pc -e "$pc + 20" - 0 ^done,

asm_insns={ {address="0x000107c0",func-name="main",offset="4", inst="mov 2, %o0"}, {address="0x000107c4",func-name="main",offset="8", inst="sethi %hi(0x11800), %o2"}, {address="0x000107c8",func-name="main",offset="12", inst="or %o2, 0x140, %o1\t! 0x11940 <_lib_version+8>"}, {address="0x000107cc",func-name="main",offset="16", inst="sethi %hi(0x11800), %o2"}, {address="0x000107d0",func-name="main",offset="20", inst="or %o2, 0x168, %o4\t! 0x11968 <_lib_version+48>"}} (gdb)

dISASSEMBLIROWANIE WSEJ FUNKCII main. sTROKA 32 QWLQETSQ ^ASTX@ main.

-data-disassemble -f basics.c -l 32 - 0 ^done,asm_insns={ {address="0x000107bc",func-name="main",offset="0", inst="save %sp, -112, %sp"}, {address="0x000107c0",func-name="main",offset="4", inst="mov 2, %o0"}, {address="0x000107c4",func-name="main",offset="8", inst="sethi %hi(0x11800), %o2"},

[...] {address="0x0001081c",func-name="main",offset="96",inst="ret "},

gLAWA 19: iNTERFEJS gdb/mi

185

{address="0x00010820",func-name="main",offset="100",inst="restore "}} (gdb)

dISASSEMBLIROWANIE 3 INSTRUKCIJ OT NA^ALA main:

(gdb)

-data-disassemble -f basics.c -l 32 -n 3 - 0 ^done,asm_insns={ {address="0x000107bc",func-name="main",offset="0", inst="save %sp, -112, %sp"}, {address="0x000107c0",func-name="main",offset="4", inst="mov 2, %o0"}, {address="0x000107c4",func-name="main",offset="8", inst="sethi %hi(0x11800), %o2"}}

(gdb)

dISASSEMBLIROWANIE 3 INSTRUKCIJ OT NA^ALA main W SME[ANOM REVIME:

(gdb)

-data-disassemble -f basics.c -l 32 -n 3 - 1 ^done,asm_insns={ src_and_asm_line={line="31",

file="/kwikemart/marge/ezannoni/flathead-dev/devo/gdb/ \ testsuite/gdb.mi/basics.c",line_asm_insn={

{address="0x000107bc",func-name="main",offset="0", inst="save %sp, -112, %sp"}}},

src_and_asm_line={line="32", file="/kwikemart/marge/ezannoni/flathead-dev/devo/gdb/ \

testsuite/gdb.mi/basics.c",line_asm_insn={ {address="0x000107c0",func-name="main",offset="4", inst="mov 2, %o0"}, {address="0x000107c4",func-name="main",offset="8", inst="sethi %hi(0x11800), %o2"}}}}

(gdb)

kOMANDA -data-evaluate-expression

kRATKOE OPISANIE

-data-evaluate-expression WYRAV

wY^ISLITX WYRAVENIE WYRAV. wYRAVENIE MOVET SODERVATX POD^INENNYJ WYZOW FUNKCII. wYZOW FUNKCII BYDET WYPOLNEN SINHRONNO. eSLI WYRAVENIE SODERVIT PROBELY, ONO DOLVNO BYTX ZAKL@^ENO W DWOJNYE KAWY^KI.

kOMANDA GDB

sOOTWETSTWU@]IMI KOMANDAMI GDB QWLQ@TSQ `print', `output' I `call'. w gdbtk ESTX SOOTWETSTWU@]AQ KOMANDA `gdb_eval'.

pRIMER

w SLEDU@]EM PRIMERE ^ISLA, PRED[ESTWU@]IE KOMANDAM, SUTX LEKSEMY. dLQ IH OPISANIQ, SM. rAZDEL 19.1 [sINTAKSIS KOMAND gdb/mi], S. 171. oBRATITE WNIMANIE NA TO, KAK gdb/mi WOZWRA]AET TE VE LEKSEMY W SWOEM WYWODE.

186

oTLADKA S POMO]X@ GDB

211-data-evaluate-expression A 211^done,value="1"

(gdb) 311-data-evaluate-expression &A 311^done,value="0xefffeb7c" (gdb) 411-data-evaluate-expression A+3 411^done,value="4"

(gdb)

511-data-evaluate-expression "A + 3" 511^done,value="4"

(gdb)

kOMANDA -data-list-changed-registers

kRATKOE OPISANIE

-data-list-changed-registers

wYWODIT SPISOK REGISTROW, KOTORYE IZMENILISX.

kOMANDA GDB

GDB NE IMEET PRQMOGO ANALOGA \TOJ KOMANDY; SOOTWETSTWU@]EJ KOMANDOJ gdbtk QWLQ-

ETSQ `gdb_changed_register_list'.

pRIMER

nA PLATE PPC MBX:

(gdb) -exec-continue ^running

(gdb) *stopped,reason="breakpoint-hit",bkptno="1",frame={func="main", args={},file="try.c",line="5"}

(gdb) -data-list-changed-registers

^done,changed-registers={"0","1","2","4","5","6","7","8","9", "10","11","13","14","15","16","17","18","19","20","21","22","23", "24","25","26","27","28","30","31","64","65","66","67","69"} (gdb)

kOMANDA -data-list-register-names

kRATKOE OPISANIE

-data-list-register-names [ ( NOM-REG )+ ]

pOKAZATX SPISOK IMEN REGISTROW TEKU]EJ CELI. eSLI ARGUMENTY NE ZADANY, POKAZYWAETSQ SPISOK IMEN WSEH REGISTROW. eSLI W KA^ESTWE ARGUMENTOW ZADANY CELYE ^ISLA, KOMANDA NAPE^ATAET SPISOK IMEN REGISTROW, SOOTWETSTWU@]IH ARGUMENTAM.

gLAWA 19: iNTERFEJS gdb/mi

187

kOMANDA GDB

w GDB NET KOMANDY, KOTORAQ SOOTWETSTWUET `-data-list-register-names'. w gdbtk SOOTWETSTWU@]EJ KOMANDOJ QWLQETSQ `gdb_regnames'.

pRIMER

dLQ PLATY PPC MBX:

(gdb) -data-list-register-names

^done,register-names={"r0","r1","r2","r3","r4","r5","r6","r7", "r8","r9","r10","r11","r12","r13","r14","r15","r16","r17","r18", "r19","r20","r21","r22","r23","r24","r25","r26","r27","r28","r29", "r30","r31","f0","f1","f2","f3","f4","f5","f6","f7","f8","f9", "f10","f11","f12","f13","f14","f15","f16","f17","f18","f19","f20", "f21","f22","f23","f24","f25","f26","f27","f28","f29","f30","f31", "pc","ps","cr","lr","ctr","xer"}

(gdb) -data-list-register-names 1 2 3

^done,register-names={"r1","r2","r3"} (gdb)

kOMANDA -data-list-register-values

kRATKOE OPISANIE

-data-list-register-values FMT [ ( NOM-REG )*]

oTOBRAZITX SODERVIMOE REGISTROW. fMT QWLQETSQ FORMATOM, W SOOTWETSTWII S KOTORYM DOLVNO BYTX WOZWRA]ENO SODERVIMOE REGISTROW, ZA KOTORYM SLEDUET NEOBQZATELXNYJ SPISOK ^ISEL, UKAZYWA@]IH REGISTRY, PODLEVA]IE OTOBRAVENI@. oTSUTSTWIE SPISKA ^ISEL OZNA^AET, ^TO DOLVNO BYTX WOZWRA]ENO SODERVIMOE WSEH REGISTROW.

wOT DOPUSTIMYE FORMATY DLQ FMT:

x{ESTNADCATERI^NYJ

owOSXMERI^NYJ

tdWOI^NYJ

ddESQTI^NYJ

rbEZ PREOBRAZOWANIQ

NnATURALXNYJ

kOMANDA GDB

sOOTWETSTWU@]IMI KOMANDAMI GDB QWLQ@TSQ `info reg', `info all-reg' I (W gdbtk) `gdb_fetch_registers'.

188

oTLADKA S POMO]X@ GDB

pRIMER

dLQ PLATY PPC MBX (IMEJTE WWIDU: PERENOSY STROK DANY TOLXKO DLQ UDOBSTWA ^TENIQ, ONI NE POQWLQ@TSQ W REALXNOM WYWODE):

(gdb)

-data-list-register-values r 64 65 ^done,register-values={{number="64",value="0xfe00a300"}, {number="65",value="0x00029002"}}

(gdb) -data-list-register-values x

^done,register-values={{number="0",value="0xfe0043c8"}, {number="1",value="0x3fff88"},{number="2",value="0xfffffffe"}, {number="3",value="0x0"},{number="4",value="0xa"}, {number="5",value="0x3fff68"},{number="6",value="0x3fff58"}, {number="7",value="0xfe011e98"},{number="8",value="0x2"}, {number="9",value="0xfa202820"},{number="10",value="0xfa202808"}, {number="11",value="0x1"},{number="12",value="0x0"}, {number="13",value="0x4544"},{number="14",value="0xffdfffff"}, {number="15",value="0xffffffff"},{number="16",value="0xfffffeff"}, {number="17",value="0xefffffed"},{number="18",value="0xfffffffe"}, {number="19",value="0xffffffff"},{number="20",value="0xffffffff"}, {number="21",value="0xffffffff"},{number="22",value="0xfffffff7"}, {number="23",value="0xffffffff"},{number="24",value="0xffffffff"}, {number="25",value="0xffffffff"},{number="26",value="0xfffffffb"}, {number="27",value="0xffffffff"},{number="28",value="0xf7bfffff"}, {number="29",value="0x0"},{number="30",value="0xfe010000"}, {number="31",value="0x0"},{number="32",value="0x0"}, {number="33",value="0x0"},{number="34",value="0x0"}, {number="35",value="0x0"},{number="36",value="0x0"}, {number="37",value="0x0"},{number="38",value="0x0"}, {number="39",value="0x0"},{number="40",value="0x0"}, {number="41",value="0x0"},{number="42",value="0x0"}, {number="43",value="0x0"},{number="44",value="0x0"}, {number="45",value="0x0"},{number="46",value="0x0"}, {number="47",value="0x0"},{number="48",value="0x0"}, {number="49",value="0x0"},{number="50",value="0x0"}, {number="51",value="0x0"},{number="52",value="0x0"}, {number="53",value="0x0"},{number="54",value="0x0"}, {number="55",value="0x0"},{number="56",value="0x0"}, {number="57",value="0x0"},{number="58",value="0x0"}, {number="59",value="0x0"},{number="60",value="0x0"}, {number="61",value="0x0"},{number="62",value="0x0"}, {number="63",value="0x0"},{number="64",value="0xfe00a300"}, {number="65",value="0x29002"},{number="66",value="0x202f04b5"}, {number="67",value="0xfe0043b0"},{number="68",value="0xfe00b3e4"}, {number="69",value="0x20002b03"}}

(gdb)

kOMANDA -data-read-memory

GDE: `ADRES'

gLAWA 19: iNTERFEJS gdb/mi

189

kRATKOE OPISANIE

-data-read-memory [ -o SME]ENIE ]

ADRES FORMAT-SLOWA RAZMER-SLOWA ^ISLO-STROK ^ISLO-KOLONOK [ asSIMW ]

wYRAVENIE, OPREDELQ@]EE ADRES W PAMQTI PERWOGO SLOWA, KOTOROE NADO PRO^I- TATX. sLOVNYE WYRAVENIQ, SODERVA]IE PROBELXNYE SIMWOLY, DOLVNY ZAKL@- ^ATXSQ W KAWY^KI S ISPOLXZOWANIEM SOGLA[ENIJ sI.

`FORMAT-SLOWA'

fORMAT, KOTORYJ DOLVEN BYTX ISPOLXZOWAN DLQ PE^ATI SLOW PAMQTI. oBOZNA- ^ENIQ TE VE, ^TO I DLQ KOMANDY GDB print (SM. rAZDEL 8.4 [fORMATY WYWODA],

S. 64).

`RAZMER-SLOWA'

rAZMER W BAJTAH KAVDOGO SLOWA W PAMQTI.

`^ISLO-STROK'

~ISLO STROK W WYHODNOJ TABLICE.

`^ISLO-KOLONOK'

~ISLO KOLONOK W WYHODNOJ TABLICE.

`asSIMW' w NASTOQ]EE WREMQ OZNA^AET, ^TO KAVDAQ STROKA DOLVNA WKL@^ATX ascii-DAMP. zNA^ENIE asSIMW ISPOLXZUETSQ W KA^ESTWE ZAPOLNQ@]EGO SIMWOLA, KOGDA BAJT NE QWLQETSQ \LEMENTOM NABORA PE^ATNYH ZNAKOW ascii (PE^ATNYE ZNAKI ascii \TO TE ZNAKI, ^XI KODY NAHODQTSQ MEVDU 32 I 126 WKL@^ITELXNO).

`SME]ENIE'

sME]ENIE, KOTOROE NADO DOBAWITX K ADRESU PERED TEM, KAK NA^ATX IZWLE^ENIE IZ PAMQTI.

|TA KOMANDA OTOBRAVAET SODERVIMOE PAMQTI W WIDE TABLICY IZ ^ISLO-STROK NA ^ISLO-KOLONOK SLOW, PRI^EM KAVDOE SLOWO ZANIMAET RAZMER-SLOWA BAJT. w OB]EJ SLOVNOSTI S^ITYWAETSQ ^ISLO-STROK * ^ISLO-KOLONOK * RAZMER-SLOWA BAJT (WOZWRA]AETSQ KAK `total-bytes'). eSLI CELX DOLVNA WOZWRATITX MENX[E ZAPRO[ENNOGO ^ISLA BAJT, OTSUTSTWU@]IE SLOWA IDENTIFICIRU@TSQ PRI POMO]I `N/A'. ~ISLO BAJT, PRO^ITANNOE S CELI, WOZWRA]AETSQ W `nr-bytes', A NA^ALXNYJ ADRES, ISPOLXZOWANNYJ DLQ ^TENII PAMQTI, W

`addr'.

aDRES SLEDU@]EJ/PREDYDU]EJ STROKI ILI STRANICY DOSTUPEN W `next-row' I

`prev-row', `next-page' I `prev-page'.

kOMANDA GDB

sOOTWETSTWU@]EJ KOMANDOJ GDB QWLQETSQ `x'. gdbtk IMEET KOMANDU ^TENIQ PAMQTI

`gdb_get_mem'.

pRIMER

pRO^ITATX [ESTX BAJT PAMQTI, NA^INAQ S bytes+6, NO SMESTITXSQ NA -6 BAJT. fORMATIROWATX W TRI RQDA PO DWE KOLONKI. oDIN BAJT NA SLOWO. oTOBRAVATX KAVDOE SLOWO W [ESTNADCATERI^NOM WIDE.

(gdb)

9-data-read-memory -o -6 - bytes+6 x 1 3 2 9^done,addr="0x00001390",nr-bytes="6",total-bytes="6",

190

oTLADKA S POMO]X@ GDB

next-row="0x00001396",prev-row="0x0000138e",next-page="0x00001396", prev-page="0x0000138a",memory={ {addr="0x00001390",data={"0x00","0x01"}}, {addr="0x00001392",data={"0x02","0x03"}}, {addr="0x00001394",data={"0x04","0x05"}}}

(gdb)

pRO^ITATX DWA BAJTA PAMQTI, NA^INAQ S ADRESA shorts + 64 I OTOBRAZITX W WIDE ODNOGO SLOWA W DESQTI^NOM WIDE.

(gdb)

5-data-read-memory shorts+64 d 2 1 1 5^done,addr="0x00001510",nr-bytes="2",total-bytes="2", next-row="0x00001512",prev-row="0x0000150e", next-page="0x00001512",prev-page="0x0000150e",memory={ {addr="0x00001510",data={"128"}}}

(gdb)

pRO^ITATX TRIDCATX DWA BAJTA PAMQTI, NA^INAQ S bytes+16, I FORMATIROWATX NA WOSEMX RQDOW PO ^ETYRE KOLONKI. wKL@^ITX STROKU, ZAKODIROWANNU@ S ISPOLXZOWANIEM `x' W KA^ESTWE NEPE^ATNOGO SIMWOLA.

(gdb)

4-data-read-memory bytes+16 x 1 8 4 x 4^done,addr="0x000013a0",nr-bytes="32",total-bytes="32", next-row="0x000013c0",prev-row="0x0000139c", next-page="0x000013c0",prev-page="0x00001380",memory={ {addr="0x000013a0",data={"0x10","0x11","0x12","0x13"},ascii="xxxx"}, {addr="0x000013a4",data={"0x14","0x15","0x16","0x17"},ascii="xxxx"}, {addr="0x000013a8",data={"0x18","0x19","0x1a","0x1b"},ascii="xxxx"}, {addr="0x000013ac",data={"0x1c","0x1d","0x1e","0x1f"},ascii="xxxx"}, {addr="0x000013b0",data={"0x20","0x21","0x22","0x23"},ascii=" !\"#"}, {addr="0x000013b4",data={"0x24","0x25","0x26","0x27"},ascii="$%&'"}, {addr="0x000013b8",data={"0x28","0x29","0x2a","0x2b"},ascii="()*+"}, {addr="0x000013bc",data={"0x2c","0x2d","0x2e","0x2f"},ascii=",-./"}} (gdb)

kOMANDA -display-delete

kRATKOE OPISANIE

-display-delete ^ISLO

uDALITX \LEMENT NOMER IZ SPISKA WYRAVENIJ, PODLEVA]IH OTOBRAVENI@.

kOMANDA GDB

sOOTWETSTWU@]EJ KOMANDOJ GDB QWLQETSQ `delete display'.

pRIMER

n.p.

kOMANDA -display-disable

gLAWA 19: iNTERFEJS gdb/mi

191

kRATKOE OPISANIE

-display-disable NOMER

oTKL@^ITX \LEMENT NOMER SPISKA WYRAVENIJ, PODLEVA]IH OTOBRAVENI@.

kOMANDA GDB

sOOTWETSTWU@]EJ KOMANDOJ GDB QWLQETSQ `disable display'.

pRIMER

n.p.

kOMANDA -display-enable

kRATKOE OPISANIE

-display-enable NOMER

wKL@^ITX \LEMENT NOMER SPISKA WYRAVENIJ, PODLEVA]IH OTOBRAVENI@.

kOMANDA GDB

sOOTWETSTWU@]EJ KOMANDOJ GDB QWLQETSQ `enable display'.

pRIMER

n.p.

kOMANDA -display-insert

kRATKOE OPISANIE

-display-insert WYRAVENIE

oTOBRAVATX WYRAVENIE WSQKIJ RAZ, KOGDA PROGRAMMA OSTANAWLIWAETSQ.

kOMANDA GDB

sOOTWETSTWU@]EJ KOMANDOJ GDB QWLQETSQ `display'.

pRIMER

n.p.

kOMANDA -display-list

kRATKOE OPISANIE

-display-list

pERE^ISLITX \LEMENTY SPISKA WYRAVENIJ, PODLEVA]IH AWTOMATI^ESKOMU OTOBRAVENI@. tEKU]IE ZNA^ENIQ NE POKAZYWATX.

192

oTLADKA S POMO]X@ GDB

kOMANDA GDB

sOOTWETSTWU@]EJ KOMANDOJ GDB QWLQETSQ `info display'.

pRIMER

n.p.

kOMANDA -environment-cd

kRATKOE OPISANIE

-environment-cd KAT uSTANOWITX RABO^IJ KATALOG GDB.

kOMANDA GDB

sOOTWETSTWU@]EJ KOMANDOJ GDB QWLQETSQ `cd'.

pRIMER

(gdb)

-environment-cd /kwikemart/marge/ezannoni/flathead-dev/devo/gdb ^done

(gdb)

kOMANDA -environment-directory

kRATKOE OPISANIE

-environment-directory KAT

dOBAWITX KATALOG KAT W NA^ALO PUTI POISKA ISHODNYH FAJLOW.

kOMANDA GDB

sOOTWETSTWU@]EJ KOMANDOJ GDB QWLQETSQ `dir'.

pRIMER

(gdb)

-environment-directory /kwikemart/marge/ezannoni/flathead-dev/devo/gdb ^done

(gdb)

kOMANDA -environment-path

kRATKOE OPISANIE

-environment-path ( KAT )+

dOBAWITX KATALOGI KAT W NA^ALO PUTI POISKA OB_EKTNYH FAJLOW.

gLAWA 19: iNTERFEJS gdb/mi

193

kOMANDA GDB

sOOTWETSTWU@]EJ KOMANDOJ GDB QWLQETSQ `path'.

pRIMER

(gdb)

-environment-path /kwikemart/marge/ezannoni/flathead-dev/ppc-eabi/gdb ^done

(gdb)

kOMANDA -environment-pwd

kRATKOE OPISANIE

-environment-pwd

pOKAZATX TEKU]IJ RABO^IJ KATALOG.

kOMANDA GDB

sOOTWETSTWU@]EJ KOMANDOJ GDB QWLQETSQ `pwd'.

pRIMER

(gdb) -environment-pwd

~Working directory /kwikemart/marge/ezannoni/flathead-dev/devo/gdb. ^done

(gdb)

19.7 uPRAWLENIE PROGRAMMOJ gdb/mi

zAWER[ENIE PROGRAMMY

w PROCESSE WYPOLNENIQ, POD^INENNAQ PROGRAMMA MOVET DOSTIGNUTX KONCA, ESLI ONA NE WSTRETIT NI ODNOJ TO^KI OSTANOWA. w \TOM SLU^AE WYWOD BUDET WKL@^ATX KOD ZAWER[ENIQ, ESLI PROGRAMMA ZAWER[ILASX NENORMALXNO.

pRIMERY

pROGRAMMA ZAWER[ILASX NORMALXNO:

(gdb) -exec-run ^running (gdb)

x = 55 *stopped,reason="exited-normally" (gdb)

pROGRAMMA ZAWER[ILASX NENORMALXNO:

194

oTLADKA S POMO]X@ GDB

(gdb) -exec-run ^running (gdb)

x = 55 *stopped,reason="exited",exit-code="01" (gdb)

kROME TOGO, PROGRAMMA MOVET ZAWER[ITXSQ TAK, KAK ESLI BY ONA POLU^ILA SIGNAL, NAPRIMER SIGINT. w \TOM SLU^AE, gdb/mi OTOBRAVAET SLEDU@]EE:

(gdb) *stopped,reason="exited-signalled",signal-name="SIGINT", signal-meaning="Interrupt"

kOMANDA -exec-abort

kRATKOE OPISANIE

-exec-abort

uBITX WYPOLNQ@]U@SQ POD^INENNU@ PROGRAMMU.

kOMANDA GDB

sOOTWETSTWU@]EJ KOMANDOJ GDB QWLQETSQ `kill'.

pRIMER

n.p.

kOMANDA -exec-arguments

kRATKOE OPISANIE

-exec-arguments ARG

uSTANOWITX ARGUMENTY POD^INENNOJ PROGRAMMY, KOTORYE DOLVNY BYTX ISPOLXZOWANY PRI SLEDU@]EM `-exec-run'.

kOMANDA GDB

sOOTWETSTWU@]EJ KOMANDOJ GDB QWLQETSQ `set args'.

pRIMER

pOKA NET.

kOMANDA -exec-continue

kRATKOE OPISANIE

-exec-continue

aSINHRONNAQ KOMANDA. wOZOBNOWLQET WYPOLNENIE POD^INENNOJ PROGRAMMY DO TEH POR, POKA NE BUDET WSTRE^ENA TO^KA OSTANOWA, ILI POKA POD^INENNAQ PROGRAMMA NE ZAWER[ITSQ.

gLAWA 19: iNTERFEJS gdb/mi

195

kOMANDA GDB

sOOTWETSTWU@]EJ KOMANDOJ GDB QWLQETSQ `continue'.

pRIMER

-exec-continue ^running (gdb)

@Hello world *stopped,reason="breakpoint-hit",bkptno="2",frame={func="foo",args={}, file="hello.c",line="13"}

(gdb)

kOMANDA -exec-finish

kRATKOE OPISANIE

-exec-finish

aSINHRONNAQ KOMANDA. wOZOBNOWLQET WYPOLNENIE POD^INENNOJ PROGRAMMY DO TEH POR, POKA NE ZAWER[ITSQ TEKU]AQ FUNKCIQ. oTOBRAVAET REZULXTATY, WOZWRA]ENNYE FUNKCIEJ.

kOMANDA GDB

sOOTWETSTWU@]EJ KOMANDOJ GDB QWLQETSQ `finish'.

pRIMER

fUNKCIQ, WOZWRA]A@]AQ void.

-exec-finish ^running (gdb)

@hello from foo *stopped,reason="function-finished",frame={func="main",args={}, file="hello.c",line="7"}

(gdb)

fUNKCIQ, WOZWRA]A@]AQ ^TO-LIBO OTLI^NOE OT void. pE^ATAETSQ IMQ WNUTRENNEJ PEREMENNOJ GDB, HRANQ]EJ REZULXTAT, A TAKVE I SAM REZULXTAT.

-exec-finish ^running (gdb)

*stopped,reason="function-finished",frame={addr="0x000107b0",func="foo", args={{name="a",value="1"},{name="b",value="9"}}, file="recursive2.c",line="14"},

gdb-result-var="$1",return-value="0" (gdb)

kOMANDA -exec-interrupt

196

oTLADKA S POMO]X@ GDB

kRATKOE OPISANIE

-exec-interrupt

aSINHRONNAQ KOMANDA. pRERYWAET FONOWOE ISPOLNENIE CELI. zAMETXTE, ^TO LEKSEMA, ASSOCIIROWANNAQ S SOOB]ENIEM OB OSTANOWE, SOWPADAET S LEKSEMOJ DLQ WYPOLNENIQ KOMANDY, KOTORAQ BYLA PRERWANA. lEKSEMA DLQ SAMOGO PRERYWANIQ POQWLQETSQ TOLXKO W WYWODE `^done'. eSLI POLXZOWATELX PYTAETSQ PRERWATX NEWYPOLNQ@]U@SQ PROGRAMMU, BUDET WYWEDENO SOOB]ENIE OB O[IBKE.

kOMANDA GDB

sOOTWETSTWU@]EJ KOMANDOJ GDB QWLQETSQ `interrupt'.

pRIMER

(gdb) 111-exec-continue 111^running

(gdb) 222-exec-interrupt 222^done

(gdb) 111*stopped,signal-name="SIGINT",signal-meaning="Interrupt",

frame={addr="0x00010140",func="foo",args={},file="try.c",line="13"}

(gdb)

(gdb) -exec-interrupt

^error,msg="mi_cmd_exec_interrupt: Inferior not executing." (gdb)

kOMANDA -exec-next

kRATKOE OPISANIE

-exec-next

aSINHRONNAQ KOMANDA. wOZOBNOWLQET WYPOLNENIE POD^INENNOJ PROGRAMMY, OSTANAWLIWAQ EE, KOGDA DOSTIGAETSQ NA^ALO SLEDU@]EJ STROKI ISHODNOGO TEKSTA.

kOMANDA GDB

sOOTWETSTWU@]EJ KOMANDOJ GDB QWLQETSQ `next'.

pRIMER

-exec-next ^running (gdb)

*stopped,reason="end-stepping-range",line="8",file="hello.c" (gdb)

gLAWA 19: iNTERFEJS gdb/mi

197

kOMANDA -exec-next-instruction

kRATKOE OPISANIE

-exec-next-instruction

aSINHRONNAQ KOMANDA. wYPOLNQET ODNU MA[INNU@ INSTRUKCI@. eSLI INSTRUKCIQ QWLQETSQ WYZOWOM FUNKCII, WYPOLNENIE PRODOLVAETSQ DO WOZWRATA IZ FUNKCII. eSLI PROGRAMMA OSTANAWLIWAETSQ NA INSTRUKCII W SEREDINE STROKI ISHODNOGO TEKSTA, PE^ATAETSQ TAKVE ADRES.

kOMANDA GDB

sOOTWETSTWU@]EJ KOMANDOJ GDB QWLQETSQ `nexti'.

pRIMER

(gdb) -exec-next-instruction ^running

(gdb) *stopped,reason="end-stepping-range", addr="0x000100d4",line="5",file="hello.c" (gdb)

kOMANDA -exec-return

kRATKOE OPISANIE

-exec-return

wELIT TEKU]EJ FUNKCII NEMEDLENNO WERNUTXSQ. nE WYPOLNQET POD^INENNU@ PROGRAMMU. oTOBRAVAET NOWYJ TEKU]IJ KADR.

kOMANDA GDB

sOOTWETSTWU@]EJ KOMANDOJ GDB QWLQETSQ `return'.

pRIMER

(gdb)

200-break-insert callee4 200^done,bkpt={number="1",addr="0x00010734", file="../../../devo/gdb/testsuite/gdb.mi/basics.c",line="8"} (gdb)

000-exec-run 000^running (gdb)

000*stopped,reason="breakpoint-hit",bkptno="1", frame={func="callee4",args={}, file="../../../devo/gdb/testsuite/gdb.mi/basics.c",line="8"} (gdb)

198

oTLADKA S POMO]X@ GDB

205-break-delete 205^done

(gdb) 111-exec-return

111^done,frame={level="0 ",func="callee3", args={{name="strarg",

value="0x11940 \"A string argument.\""}}, file="../../../devo/gdb/testsuite/gdb.mi/basics.c",line="18"} (gdb)

kOMANDA -exec-run

kRATKOE OPISANIE

-exec-run

aSINHRONNAQ KOMANDA. nA^INAET WYPOLNENIE POD^INENNOJ PROGRAMMY S NA^ALA. oNA WYPOLNQETSQ DO TEH POR, POKA LIBO NE WSTRETITSQ TO^KA OSTANOWA, LIBO PROGRAMMA NE ZAWER[ITSQ.

kOMANDA GDB

sOOTWETSTWU@]EJ KOMANDOJ GDB QWLQETSQ `run'.

pRIMER

(gdb) -break-insert main

^done,bkpt={number="1",addr="0x0001072c",file="recursive2.c",line="4"}

(gdb) -exec-run ^running (gdb)

*stopped,reason="breakpoint-hit",bkptno="1", frame={func="main",args={},file="recursive2.c",line="4"} (gdb)

kOMANDA -exec-show-arguments

kRATKOE OPISANIE

-exec-show-arguments pE^ATAET ARGUMENTY PROGRAMMY.

kOMANDA GDB

sOOTWETSTWU@]EJ KOMANDOJ GDB QWLQETSQ `show args'.

pRIMER

n.p.

gLAWA 19: iNTERFEJS gdb/mi

199

kOMANDA -exec-step

kRATKOE OPISANIE

-exec-step

aSINHRONNAQ KOMANDA. wOZOBNOWLQET WYPOLNENIE POD^INENNOJ PROGRAMMY, OSTANAWLIWAQ EE, KOGDA BUDET DOSTIGNUTO NA^ALO SLEDU@]EJ STROKI ISHODNOGO FAJLA, PRI USLOWII, ^TO ONA NE QWLQETSQ WYZOWOM FUNKCII. eSLI VE SLEDU@]AQ STROKA QWLQETSQ WYZOWOM FUNKCII, PROGRAMMA OSTANAWLIWAETSQ NA PERWOJ INSTRUKCII \TOJ FUNKCII.

kOMANDA GDB

sOOTWETSTWU@]EJ KOMANDOJ GDB QWLQETSQ `step'.

pRIMER

pO[AGOWYJ WHOD W FUNKCI@:

-exec-step ^running (gdb)

*stopped,reason="end-stepping-range", frame={func="foo",args={{name="a",value="10"}, {name="b",value="0"}},file="recursive2.c",line="11"} (gdb)

oBY^NOE PO[AGOWOE WYPOLNENIE:

-exec-step ^running (gdb)

*stopped,reason="end-stepping-range",line="14",file="recursive2.c" (gdb)

kOMANDA -exec-step-instruction

kRATKOE OPISANIE

-exec-step-instruction

aSINHRONNAQ KOMANDA. wOZOBNOWLQET WYPOLNENIE POD^INENNOJ PROGRAMMY, WYPOLNQQ ODNU MA[INNU@ INSTRUKCI@. wYWOD, KOGDA GDB OSTANOWITSQ, BUDET RAZLI^ATXSQ W ZAWISIMOSTI OT TOGO, OSTANOWILISX MY W SEREDINE ISHODNOJ STROKI ILI NET. w PERWOM SLU^AE, ADRES, PO KOTOROMU PROGRAMMA OSTANOWLENA, TAKVE BUDET NAPE^ATAN.

kOMANDA GDB

sOOTWETSTWU@]EJ KOMANDOJ GDB QWLQETSQ `stepi'.

pRIMER

(gdb) -exec-step-instruction ^running

200

oTLADKA S POMO]X@ GDB

(gdb) *stopped,reason="end-stepping-range",

frame={func="foo",args={},file="try.c",line="10"}

(gdb) -exec-step-instruction ^running

(gdb) *stopped,reason="end-stepping-range",

frame={addr="0x000100f4",func="foo",args={},file="try.c",line="10"}

(gdb)

kOMANDA -exec-until

kRATKOE OPISANIE

-exec-until [ MESTOPOLOVENIE ]

aSINHRONNAQ KOMANDA. wYPOLNQET POD^INENNU@ PROGRAMMU DO TEH POR, POKA NE BUDET DOSTIGNUTO UKAZANNOE W ARGUMENTE MESTOPOLOVENIE. eSLI ARGUMENTA NET, POD^INENNAQ PROGRAMMA WYPOLNQETSQ, POKA NE BUDET DOSTIGNUTA STROKA ISHODNOGO TEKSTA, PREWY[A@]AQ TEKU]U@. w \TOM SLU^AE, PRI^INOJ OSTANOWKI BUDET `location-reached'.

kOMANDA GDB

sOOTWETSTWU@]EJ KOMANDOJ GDB QWLQETSQ `until'.

pRIMER

(gdb)

-exec-until recursive2.c:6 ^running

(gdb) x = 55

*stopped,reason="location-reached",frame={func="main",args={}, file="recursive2.c",line="6"}

(gdb)

kOMANDA -file-exec-and-symbols

kRATKOE OPISANIE

-file-exec-and-symbols FAJL

uKAZATX WYPOLNQEMYJ FAJL DLQ OTLADKI. |TO TOT FAJL, IZ KOTOROGO TAKVE ^ITAETSQ TABLICA SIMWOLOW. eSLI FAJL NE UKAZAN, KOMANDA O^I]AET INFORMACI@ O WYPOLNQEMOM FAJLE I SIMWOLAH. eSLI PRI ISPOLXZOWANII \TOJ KOMANDY BEZ ARGUMENTOW USTANOWLENY TO^KI OSTANOWA, GDB WYDAST SOOB]ENIE OB O[IBKE. w PROTIWNOM SLU^AE, NIKAKOGO WYWODA NE BUDET, ZA ISKL@^ENIEM UWEDOMLENIQ O ZAWER[ENII.

kOMANDA GDB

sOOTWETSTWU@]EJ KOMANDOJ GDB QWLQETSQ `file'.

gLAWA 19: iNTERFEJS gdb/mi

201

pRIMER

(gdb)

-file-exec-file /kwikemart/marge/ezannoni/TRUNK/mbx/hello.mbx ^done

(gdb)

kOMANDA -file-exec-file

kRATKOE OPISANIE

-file-exec-file FAJL

uKAZATX WYPOLNQEMYJ FAJL DLQ OTLADKI. w OTLI^IE OT `-file-exec-and-symbols', TABLICA SIMWOLOW NE S^ITYWAETSQ IZ \TOGO FAJLA. pRI ISPOLXZOWANII BEZ ARGUMENTA, GDB O^I]AET INFORMACI@ O WYPOLNQEMOM FAJLE. nIKAKOGO WYWODA NE PROIZWODITSQ, ZA ISKL@^ENIEM UWEDOMLENIQ O ZAWER[ENII.

kOMANDA GDB

sOOTWETSTWU@]EJ KOMANDOJ GDB QWLQETSQ `exec-file'.

pRIMER

(gdb)

-file-exec-file /kwikemart/marge/ezannoni/TRUNK/mbx/hello.mbx ^done

(gdb)

kOMANDA -file-list-exec-sections

kRATKOE OPISANIE

-file-list-exec-sections

pERE^ISLQET RAZDELY TEKU]EGO WYPOLNQEMOGO FAJLA.

kOMANDA GDB

kOMANDA GDB `info file' POKAZYWAET, POMIMO WSEGO PRO^EGO, TU VE INFORMACI@, ^TO I \TA KOMANDA. gdbtk IMEET SOOTWETSTWU@]U@ KOMANDU `gdb_load_info'.

pRIMER

n.p.

kOMANDA -file-list-exec-source-files

kRATKOE OPISANIE

-file-list-exec-source-files

pERE^ISLQET ISHODNYE FAJLY DLQ TEKU]EGO WYPOLNQEMOGO FAJLA.

202

oTLADKA S POMO]X@ GDB

kOMANDA GDB

w GDB NET KOMANDY, NEPOSREDSTWENNO SOOTWETSWU@]EJ \TOJ. gdbtk IMEET ANALOGI^NU@ KOMANDU `gdb_listfiles'.

pRIMER

n.p.

kOMANDA -file-list-shared-libraries

kRATKOE OPISANIE

-file-list-shared-libraries

pERE^ISLQET ISPOLXZUEMYE PROGRAMMOJ RAZDELQEMYE BIBLIOTEKI.

kOMANDA GDB

sOOTWETSTWU@]EJ KOMANDOJ GDB QWLQETSQ `info shared'.

pRIMER

n.p.

kOMANDA -file-list-symbol-files

kRATKOE OPISANIE

-file-list-symbol-files

pERE^ISLQET FAJLY SIMWOLOW.

kOMANDA GDB

sOOTWETSTWU@]EJ KOMANDOJ GDB QWLQETSQ `info file' (EE ^ASTX).

pRIMER

n.p.

kOMANDA -file-symbol-file

kRATKOE OPISANIE

-file-symbol-file FAJL

pRO^ITATX INFORMACI@ SIMWOLXNOJ TABLICY IZ UKAZANNOGO W ARGUMENTE FAJLA. bUDU^I ISPOLXZOWANNOJ BEZ ARGUMENTOW, O^I]IET TABLICU SIMWOLXNOJ INFORMACII GDB. nIKAKOGO WYWODA NE PROIZWODITSQ, KROME UWEDOMLENIQ O ZAWER[ENII.

kOMANDA GDB

sOOTWETSTWU@]EJ KOMANDOJ GDB QWLQETSQ `symbol-file'.

gLAWA 19: iNTERFEJS gdb/mi

203

pRIMER

(gdb)

-file-symbol-file /kwikemart/marge/ezannoni/TRUNK/mbx/hello.mbx ^done

(gdb)

19.8 rAZNYE KOMANDY GDB W gdb/mi

kOMANDA -gdb-exit

kRATKOE OPISANIE

-gdb-exit

nEMEDLENNO WYJTI IZ GDB.

kOMANDA GDB

pRIMERNO SOOTWETSTWUET KOMANDE `quit'.

pRIMER

(gdb) -gdb-exit

kOMANDA -gdb-set

kRATKOE OPISANIE

-gdb-set

uSTANOWITX WNUTRENN@@ PEREMENNU@ GDB.

kOMANDA GDB

sOOTWETSTWU@]EJ KOMANDOJ GDB QWLQETSQ `set'.

pRIMER

(gdb)

-gdb-set $foo=3 ^done

(gdb)

kOMANDA -gdb-show

kRATKOE OPISANIE

-gdb-show

pOKAZATX TEKU]EE ZNA^ENIE PEREMENNOJ GDB.

204

oTLADKA S POMO]X@ GDB

kOMANDA GDB

sOOTWETSTWU@]EJ KOMANDOJ GDB QWLQETSQ `show'.

pRIMER

(gdb)

-gdb-show annotate ^done,value="0" (gdb)

kOMANDA -gdb-version

kRATKOE OPISANIE

-gdb-version

wYWESTI INFORMACI@ O WERSII GDB. iSPOLXZUETSQ PREIMU]ESTWENNO PRI TESTIROWANII.

kOMANDA GDB

|KWIWALENTNOJ KOMANDY GDB NET. pO UMOL^ANI@, GDB POKAZYWAET \TU INFORMACI@, KOGDA WY WYZYWAETE INTERAKTIWNYJ SEANS.

pRIMER

(gdb) -gdb-version ~GNU gdb 5.2.1

~Copyright 2000 Free Software Foundation, Inc.

~GDB is free software, covered by the GNU General Public License, and ~you are welcome to change it and/or distribute copies of it under

~ certain conditions.

~Type "show copying" to see the conditions.

~There is absolutely no warranty for GDB. Type "show warranty" for ~ details.

~This GDB was configured as "-host=sparc-sun-solaris2.5.1 -target=ppc-eabi". ^done

(gdb)

19.9 kOMANDY UPRAWLENIQ STEKOM W gdb/mi

kOMANDA -stack-info-frame

kRATKOE OPISANIE

-stack-info-frame

pOLU^ITX INFORMACI@ O TEKU]EM KADRE.

gLAWA 19: iNTERFEJS gdb/mi

205

kOMANDA GDB

sOOTWETSTWU@]EJ KOMANDOJ GDB QWLQETSQ `info frame' ILI `frame' (BEZ ARGUMENTOW).

pRIMER

n.p.

kOMANDA -stack-info-depth

kRATKOE OPISANIE

-stack-info-depth [ MAKS-GLUB ]

wOZWRA]AET GLUBINU STEKA. eSLI UKAZAN CELO^ISLENNYJ ARGUMENT MAKS-GLUB, NE S^ITATX BOLEE MAKS-GLUB KADROW.

kOMANDA GDB

|KWIWALENTNOJ KOMANDY GDB NET.

pRIMER

dLQ STEKA S UROWNQMI KADROW OT 0 DO 11:

(gdb) -stack-info-depth ^done,depth="12" (gdb) -stack-info-depth 4 ^done,depth="4" (gdb) -stack-info-depth 12 ^done,depth="12" (gdb) -stack-info-depth 11 ^done,depth="11" (gdb) -stack-info-depth 13 ^done,depth="12" (gdb)

kOMANDA -stack-list-arguments

kRATKOE OPISANIE

-stack-list-arguments POKAZ-ZNA^

[ NIVN-KADR WERHN-KADR ]

oTOBRAZITX SPISOK ARGUMENTOW DLQ KADROW OT NIVN-KADR DO WERHN-KADR (WKL@^ITELXNO). eSLI NIVN-KADR I WERHN-KADR NE UKAZANY, PERE^ISLITX ARGUMENTY DLQ WSEGO STEKA WYZOWOW.

aRGUMENT POKAZ-ZNA^ DOLVEN IMETX ZNA^ENIE 0 ILI 1. zNA^ENIE 0 OZNA^AET, ^TO WYWODQTSQ TOLXKO IMENA ARGUMENTOW, A 1,|^TO PE^ATA@TSQ KAK IMENA, TAK I ZNA^ENIQ ARGUMENTOW.

206

oTLADKA S POMO]X@ GDB

kOMANDA GDB

GDB NE IMEET \KWIWALENTNOJ KOMANDY. w gdbtk ESTX KOMANDA `gdb_get_args', KOTORAQ ^ASTI^NO PEREKRYWAETSQ S DEJSTWIEM `-stack-list-arguments'.

pRIMER

(gdb) -stack-list-frames ^done,

stack={

frame={level="0 ",addr="0x00010734",func="callee4", file="../../../devo/gdb/testsuite/gdb.mi/basics.c",line="8"}, frame={level="1 ",addr="0x0001076c",func="callee3", file="../../../devo/gdb/testsuite/gdb.mi/basics.c",line="17"}, frame={level="2 ",addr="0x0001078c",func="callee2", file="../../../devo/gdb/testsuite/gdb.mi/basics.c",line="22"}, frame={level="3 ",addr="0x000107b4",func="callee1", file="../../../devo/gdb/testsuite/gdb.mi/basics.c",line="27"}, frame={level="4 ",addr="0x000107e0",func="main", file="../../../devo/gdb/testsuite/gdb.mi/basics.c",line="32"}} (gdb)

-stack-list-arguments 0 ^done,

stack-args={ frame={level="0",args={}}, frame={level="1",args={name="strarg"}},

frame={level="2",args={name="intarg",name="strarg"}},

frame={level="3",args={name="intarg",name="strarg",name="fltarg"}},

frame={level="4",args={}}}

(gdb) -stack-list-arguments 1 ^done,

stack-args={ frame={level="0",args={}}, frame={level="1",

args={{name="strarg",value="0x11940 \"sTROKOWYJ ARGUMENT.\""}}}, frame={level="2",args={

{name="intarg",value="2"},

{name="strarg",value="0x11940 \"sTROKOWYJ ARGUMENT.\""}}}, {frame={level="3",args={

{name="intarg",value="2"}, {name="strarg",value="0x11940 \"sTROKOWYJ ARGUMENT.\""}, {name="fltarg",value="3.5"}}}, frame={level="4",args={}}}

(gdb) -stack-list-arguments 0 2 2

^done,stack-args={frame={level="2",args={name="intarg",name="strarg"}}} (gdb)

-stack-list-arguments 1 2 2 ^done,stack-args={frame={level="2", args={{name="intarg",value="2"},

gLAWA 19: iNTERFEJS gdb/mi

207

{name="strarg",value="0x11940 \"sTROKOWYJ ARGUMENT.\""}}}} (gdb)

kOMANDA -stack-list-frames

kRATKOE OPISANIE

-stack-list-frames [ NIVN-KADR WERHN-KADR ]

pERE^ISLQET KADRY, NAHODQ]IESQ W DANNYJ MOMENT W STEKE. dLQ KAVDOGO KADRA, KOMANDA OTOBRAVAET SLEDU@]U@ INFORMACI@:

`level' nOMER KADRA, 0 DLQ SAMOGO WERHNEGO, TO ESTX DLQ SAMOJ WNUTRENNEJ FUNKCII.

`addr' zNA^ENIE $pc DLQ \TOGO KADRA.

`func' iMQ FUNKCII.

` le' iMQ ISHODNOGO FAJLA, GDE NAHODITSQ FUNKCIQ.

`line' nOMER STROKI, SOOTWETSTWU@]IJ $pc.

bUDU^I WYZWANNOJ BEZ ARGUMENTOW, \TA KOMANDA PE^ATAET CEPO^KU WYZOWOW DLQ WSEGO STEKA. eSLI ZADANO DWA CELO^ISLENNYH ARGUMENTA, ONA POKAZYWAET KADRY S UROWNQMI MEVDU \TIMI ARGUMENTAMI (WKL@^ITELXNO). eSLI ARGUMENTY RAWNY, ONA POKAZYWAET ODIN EDINSTWENNYJ KADR SOOTWETSTWU@]EGO UROWNQ.

kOMANDA GDB

sOOTWETSTWU@]IMI KOMANDAMI GDB QWLQ@TSQ `backtrace' I `where'.

pRIMER

cEPO^KA WYZOWOW STEKA CELIKOM:

(gdb) -stack-list-frames ^done,stack=

{frame={level="0 ",addr="0x0001076c",func="foo", file="recursive2.c",line="11"},

frame={level="1 ",addr="0x000107a4",func="foo", file="recursive2.c",line="14"},

frame={level="2 ",addr="0x000107a4",func="foo", file="recursive2.c",line="14"},

frame={level="3 ",addr="0x000107a4",func="foo", file="recursive2.c",line="14"},

frame={level="4 ",addr="0x000107a4",func="foo", file="recursive2.c",line="14"},

frame={level="5 ",addr="0x000107a4",func="foo", file="recursive2.c",line="14"},

frame={level="6 ",addr="0x000107a4",func="foo", file="recursive2.c",line="14"},

frame={level="7 ",addr="0x000107a4",func="foo", file="recursive2.c",line="14"},

frame={level="8 ",addr="0x000107a4",func="foo", file="recursive2.c",line="14"},

208

oTLADKA S POMO]X@ GDB

frame={level="9 ",addr="0x000107a4",func="foo", file="recursive2.c",line="14"},

frame={level="10",addr="0x000107a4",func="foo",

file="recursive2.c",line="14"},

frame={level="11",addr="0x00010738",func="main",

file="recursive2.c",line="4"}}

(gdb)

pOKAZATX KADRY MEVDU NIVN-KADR I WERHN-KADR:

(gdb) -stack-list-frames 3 5 ^done,stack=

{frame={level="3 ",addr="0x000107a4",func="foo", file="recursive2.c",line="14"},

frame={level="4 ",addr="0x000107a4",func="foo", file="recursive2.c",line="14"},

frame={level="5 ",addr="0x000107a4",func="foo", file="recursive2.c",line="14"}}

(gdb)

pOKAZATX ODIN KADR:

(gdb) -stack-list-frames 3 3 ^done,stack=

{frame={level="3 ",addr="0x000107a4",func="foo", file="recursive2.c",line="14"}}

(gdb)

kOMANDA -stack-list-locals

kRATKOE OPISANIE

-stack-list-locals PE^ATATX-ZNA^ENIQ

wYWESTI IMENA LOKALXNYH PEREMENNYH DLQ TEKU]EGO KADRA. s PARAMETROM 0 WYWODIT TOLXKO IMENA PEREMENNYH, S PARAMETROM 1 WYWODIT TAKVE IH ZNA^ENIQ.

kOMANDA GDB

`info locals' W GDB, `gdb_get_locals' W gdbtk.

pRIMER

(gdb) -stack-list-locals 0

^done,locals={name="A",name="B",name="C"}

(gdb) -stack-list-locals 1

^done,locals={{name="A",value="1"},{name="B",value="2"},

{name="C",value="3"}}

(gdb)

kOMANDA -stack-select-frame

gLAWA 19: iNTERFEJS gdb/mi

209

kRATKOE OPISANIE

-stack-select-frame NOM-KADRA

iZMENITX TEKU]IJ KADR. wYBRATX DRUGOJ KADR NOM-KADRA W STEKE.

kOMANDA GDB

sOOTWETSTWU@]IMI KOMANDAMI GDB QWLQ@TSQ `frame', `up', `down', `select-frame',

`up-silent' I `down-silent'.

pRIMER

(gdb) -stack-select-frame 2 ^done

(gdb)

19.10 kOMANDY gdb/mi ZAPROSOW O SIMWOLAH

kOMANDA -symbol-info-address

kRATKOE OPISANIE

-symbol-info-address SIMWOL oPISATX, GDE HRANITSQ SIMWOL.

kOMANDA GDB

sOOTWETSTWU@]EJ KOMANDOJ GDB QWLQETSQ `info address'.

pRIMER

n.p.

kOMANDA -symbol-info-file

kRATKOE OPISANIE

-symbol-info-file pOKAZATX FAJL DLQ SIMWOLA.

kOMANDA GDB

|KWIWALENTNOJ KOMANDY GDB NET. w gdbtk ESTX KOMANDA `gdb_find_file'.

pRIMER

n.p.

210

oTLADKA S POMO]X@ GDB

kOMANDA -symbol-info-function

kRATKOE OPISANIE

-symbol-info-function

pOKAZATX, W KAKOJ FUNKCII NAHODITSQ SIMWOL.

kOMANDA GDB

`gdb_get_function' W gdbtk.

pRIMER

n.p.

kOMANDA -symbol-info-line

kRATKOE OPISANIE

-symbol-info-line

pOKAZATX ADRESA PAMQTI KODA DLQ TEKU]EJ STROKI.

kOMANDA GDB

sOOTWETSTWU@]EJ KOMANDOJ GDB QWLQETSQ `info line'. w gdbtk ESTX KOMANDY

`gdb_get_line' I `gdb_get_file'.

pRIMER

n.p.

kOMANDA -symbol-info-symbol

kRATKOE OPISANIE

-symbol-info-symbol ADRES

oPISATX, KAKOJ SIMWOL NAHODITSQ W MESTOPOLOVENII ADRES.

kOMANDA GDB

sOOTWETSTWU@]EJ KOMANDOJ GDB QWLQETSQ `info symbol'.

pRIMER

n.p.

kOMANDA -symbol-list-functions

gLAWA 19: iNTERFEJS gdb/mi

211

kRATKOE OPISANIE

-symbol-list-functions

pERE^ISLITX FUNKCII, NAHODQ]IESQ W WYPOLNQEMOM FAJLE.

kOMANDA GDB

`info functions' W GDB, `gdb_listfunc' I `gdb_search' W gdbtk.

pRIMER

n.p.

kOMANDA -symbol-list-types

kRATKOE OPISANIE

-symbol-list-types pERE^ISLITX WSE IMENA TIPOW.

kOMANDA GDB

sOOTWETSTWU@]IMI KOMANDAMI QWLQ@TSQ `info types' W GDB I `gdb_search' W gdbtk.

pRIMER

n.p.

kOMANDA -symbol-list-variables

kRATKOE OPISANIE

-symbol-list-variables

pERE^ISLITX IMENA WSEH GLOBALXNYH I STATI^ESKIH PEREMENNYH.

kOMANDA GDB

`info variables' W GDB, `gdb_search' W gdbtk.

pRIMER

n.p.

kOMANDA -symbol-locate

kRATKOE OPISANIE

-symbol-locate

212

oTLADKA S POMO]X@ GDB

kOMANDA GDB

`gdb_loc' W gdbtk.

pRIMER

n.p.

kOMANDA -symbol-type

kRATKOE OPISANIE

-symbol-type PEREMENNAQ

pOKAZATX TIP PEREMENNOJ.

kOMANDA GDB

sOOTWETSTWU@]EJ KOMANDOJ GDB QWLQETSQ `ptype', W gdbtk ESTX KOMANDA

`gdb_obj_variable'.

pRIMER

n.p.

19.11 kOMANDY gdb/mi UPRAWLENIQ CELX@

kOMANDA -target-attach

kRATKOE OPISANIE

-target-attach ID-PROC | FAJL

pRISOEDINITXSQ K PROCESSU ID-PROC ILI FAJLU FAJL WNE GDB.

kOMANDA GDB

sOOTWETSTWU@]EJ KOMANDOJ GDB QWLQETSQ `attach'.

pRIMER

n.p.

kOMANDA -target-compare-sections

kRATKOE OPISANIE

-target-compare-sections [ RAZDEL ]

sRAWNITX DANNYE RAZDELA RAZDEL NA CELI S WYPOLNQEMYM FAJLOM. bEZ ARGUMENTA SRAWNIWA@TSQ WSE RAZDELY.

gLAWA 19: iNTERFEJS gdb/mi

213

kOMANDA GDB

|KWIWALENTNOJ KOMANDOJ W GDB QWLQETSQ `compare-sections'.

pRIMER

n.p.

kOMANDA -target-detach

kRATKOE OPISANIE

-target-detach

oTSOEDINITXSQ OT UDALENNOJ CELI. nIKAKOGO WYWODA NE PROIZWODITSQ.

kOMANDA GDB

sOOTWETSTWU@]EJ KOMANDOJ GDB QWLQETSQ `detach'.

pRIMER

(gdb) -target-detach ^done

(gdb)

kOMANDA -target-download

kRATKOE OPISANIE

-target-download

zAGRUVAET WYPOLNQEMYJ FAJL NA UDALENNU@ CELX. kOMANDA DWA RAZA W SEKUNDU OBNOWLQET SOOB]ENIE, KOTOROE WKL@^AET POLQ:

`section' iMQ RAZDELA.

`section-sent'

rAZMER PEREDANNOGO NA DANNYJ MOMENT U^ASTKA DLQ \TOGO RAZDELA.

`section-size'

rAZMER RAZDELA.

`total-sent'

oB]IJ RAZMER PEREDANNOJ NA DANNYJ MOMENT INFORMACII (TEKU]IJ I PREDYDU]IE RAZDELY).

`total-size'

rAZMER WSEGO WYPOLNQEMOGO FAJLA, PODLEVA]EGO ZAGRUZKE.

kAVDOE SOOB]ENIE POSYLAETSQ W WIDE SOOB]ENIQ STATUSA (SM. rAZDEL 19.1.2 [wYHODNOJ SINTAKSIS gdb/mi], S. 172).

kROME TOGO, KOMANDA PE^ATAET IMENA I RAZMERY RAZDELOW, PO MERE IH ZAGRUZKI. |TI SOOB]ENIQ WKL@^A@T SLEDU@]IE POLQ:

`section' iMQ RAZDELA.

214

oTLADKA S POMO]X@ GDB

`section-size'

rAZMER RAZDELA.

`total-size'

rAZMER WSEGO WYPOLNQEMOGO FAJLA, PODLEVA]EGO ZAGRUZKE.

w KONCE PE^ATAETSQ SUMMARNAQ INFORMACIQ.

kOMANDA GDB

sOOTWETSTWU@]EJ KOMANDOJ GDB QWLQETSQ `load'.

pRIMER

zAME^ANIE: KAVDOE SOOB]ENIE STATUSA POQWLQETSQ NA ODNOJ STROKE. zDESX SOOB]ENIQ BYLI RAZBITY NA NESKOLXKO STROK, ^TOBY ONI MOGLI WLEZTX NA STRANICU.

(gdb) -target-download

+download,{section=".text",section-size="6668",total-size="9880"} +download,{section=".text",section-sent="512",section-size="6668", total-sent="512",total-size="9880"} +download,{section=".text",section-sent="1024",section-size="6668", total-sent="1024",total-size="9880"} +download,{section=".text",section-sent="1536",section-size="6668", total-sent="1536",total-size="9880"} +download,{section=".text",section-sent="2048",section-size="6668", total-sent="2048",total-size="9880"} +download,{section=".text",section-sent="2560",section-size="6668", total-sent="2560",total-size="9880"} +download,{section=".text",section-sent="3072",section-size="6668", total-sent="3072",total-size="9880"} +download,{section=".text",section-sent="3584",section-size="6668", total-sent="3584",total-size="9880"} +download,{section=".text",section-sent="4096",section-size="6668", total-sent="4096",total-size="9880"} +download,{section=".text",section-sent="4608",section-size="6668", total-sent="4608",total-size="9880"} +download,{section=".text",section-sent="5120",section-size="6668", total-sent="5120",total-size="9880"} +download,{section=".text",section-sent="5632",section-size="6668", total-sent="5632",total-size="9880"} +download,{section=".text",section-sent="6144",section-size="6668", total-sent="6144",total-size="9880"} +download,{section=".text",section-sent="6656",section-size="6668", total-sent="6656",total-size="9880"} +download,{section=".init",section-size="28",total-size="9880"} +download,{section=".fini",section-size="28",total-size="9880"} +download,{section=".data",section-size="3156",total-size="9880"} +download,{section=".data",section-sent="512",section-size="3156", total-sent="7236",total-size="9880"} +download,{section=".data",section-sent="1024",section-size="3156", total-sent="7748",total-size="9880"} +download,{section=".data",section-sent="1536",section-size="3156",

gLAWA 19: iNTERFEJS gdb/mi

215

total-sent="8260",total-size="9880"} +download,{section=".data",section-sent="2048",section-size="3156", total-sent="8772",total-size="9880"} +download,{section=".data",section-sent="2560",section-size="3156", total-sent="9284",total-size="9880"} +download,{section=".data",section-sent="3072",section-size="3156", total-sent="9796",total-size="9880"} ^done,address="0x10004",load-size="9880",transfer-rate="6586", write-rate="429"

(gdb)

kOMANDA -target-exec-status

kRATKOE OPISANIE

-target-exec-status

pREDOSTAWITX INFORMACI@ O SOSTOQNII CELI (NAPRIMER, WYPOLNQETSQ ONA ILI NET).

kOMANDA GDB

|KWIWALENTNOJ KOMANDY GDB NET.

pRIMER

n.p.

kOMANDA -target-list-available-targets

kRATKOE OPISANIE

-target-list-available-targets

pERE^ISLITX CELI, K KOTORYM MOVNO USTANOWITX SOEDINENIE.

kOMANDA GDB

sOOTWETSTWU@]EJ KOMANDOJ GDB QWLQETSQ `help target'.

pRIMER

n.p.

kOMANDA -target-list-current-targets

kRATKOE OPISANIE

-target-list-current-targets oPISATX TEKU]U@ CELX.

kOMANDA GDB

sOOTWETSTWU@]AQ INFORMACIQ (WMESTE S DRUGOJ) PE^ATAETSQ KOMANDOJ `info file'.

216

oTLADKA S POMO]X@ GDB

pRIMER

n.p.

kOMANDA -target-list-parameters

kRATKOE OPISANIE

-target-list-parameters

kOMANDA GDB

|KWIWALENTA NET.

pRIMER

n.p.

kOMANDA -target-select

kRATKOE OPISANIE

-target-select TIP PARAMETRY . . .

sOEDINITX GDB S UDALENNOJ CELX@. |TA KOMANDA DOPUSKAET DWA ARGUMENTA:

`TIP' tIP CELI, NAPRIMER, `async', `remote', I T.D.

`PARAMETRY'

iMENA USTROJSTW, NAZWANIQ MA[IN I TOMU PODOBNOE. sM. rAZDEL 13.2 [kOMANDY DLQ UPRAWLENIQ CELQMI], S. 111, DLQ BOLEE POLNOJ INFORMACII.

rEZULXTATOM QWLQETSQ UWEDOMLENIE O SOEDINENII, ZA KOTORYM SLEDUET ADRES, PO KOTOROMU NAHODITSQ CELEWAQ PROGRAMMA, W SLEDU@]EJ FORME:

^connected,addr="ADRES",func="IMQ FUNKCII", args={SPISOK ARGUMENTOW}

kOMANDA GDB

sOOTWETSTWU@]EJ KOMANDOJ GDB QWLQETSQ `target'.

pRIMER

(gdb)

-target-select async /dev/ttya ^connected,addr="0xfe00a300",func="??",args={} (gdb)

gLAWA 19: iNTERFEJS gdb/mi

217

19.12 kOMANDY gdb/mi DLQ NITEJ

kOMANDA -thread-info

kRATKOE OPISANIE

-thread-info

kOMANDA GDB

|KWIWALENTA NET.

pRIMER

n.p.

kOMANDA -thread-list-all-threads

kRATKOE OPISANIE

-thread-list-all-threads

kOMANDA GDB

|KWIWALENTNOJ KOMANDOJ GDB QWLQETSQ `info threads'.

pRIMER

n.p.

kOMANDA -thread-list-ids

kRATKOE OPISANIE

-thread-list-ids

wYWODIT SPISOK IZWESTNYH GDB W DANNYJ MOMENT IDENTIFIKATOROW NITEJ. w KONCE SPISKA TAKVE WYWODITSQ OB]EE ^ISLO TAKIH NITEJ.

kOMANDA GDB

~ASTX `info threads' PREDOSTAWLQET TU VE INFORMACI@.

pRIMER

kROME OSNOWNOGO PROCESSA NET NI ODNOJ NITI:

(gdb) -thread-list-ids

^done,thread-ids={},number-of-threads="0" (gdb)

nESKOLXKO NITEJ:

218

oTLADKA S POMO]X@ GDB

(gdb) -thread-list-ids

^done,thread-ids={thread-id="3",thread-id="2",thread-id="1"}, number-of-threads="3"

(gdb)

kOMANDA -thread-select

kRATKOE OPISANIE

-thread-select NOMER-NITI

sDELATX NITX NOMER-NITI TEKU]EJ. kOMANDA WYWODIT NOMER NOWOJ TEKU]EJ NITI I SAMYJ WERHNIJ KADR DLQ NEE.

kOMANDA GDB

sOOTWETSTWU@]EJ KOMANDOJ GDB QWLQETSQ `thread'.

pRIMER

(gdb) -exec-next ^running (gdb)

*stopped,reason="end-stepping-range",thread-id="2",line="187", file="../../../devo/gdb/testsuite/gdb.threads/linux-dp.c" (gdb)

-thread-list-ids ^done,

thread-ids={thread-id="3",thread-id="2",thread-id="1"}, number-of-threads="3"

(gdb) -thread-select 3

^done,new-thread-id="3", frame={level="0 ",func="vprintf",

args={{name="format",value="0x8048e9c \"%*s%c %d %c\\n\""}, {name="arg",value="0x2"}},file="vprintf.c",line="31"}

(gdb)

19.13 kOMANDY gdb/mi DLQ TO^EK TRASSIROWKI

kOMANDY DLQ TO^EK TRASSIROWKI E]E NE REALIZOWANY.

19.14 iZMENQEMYE OB_EKTY gdb/mi

oBOSNOWANIE DLQ IZMENQEMYH OB_EKTOW W gdb/mi

dLQ REALIZACII IZMENQEMOGO OTLADO^NOGO OKNA (LOKALXNYE PEREMENNYE, NABL@DAEMYE WYRAVENIQ, I T.D.), MY PREDLAGAEM MODIFIKACI@ SU]ESTWU@]EGO KODA, ISPOLXZUEMOGO W

Insight.

wOT DWE OSNOWNYE PRI^INY DLQ \TOGO:

gLAWA 19: iNTERFEJS gdb/mi

219

1.oN BYL PROWEREN NA PRAKTIKE (\TO UVE EGO WTOROE POKOLENIE).

2.|TO SOKRATIT WREMQ RAZRABOTKI (NE STOIT GOWORITX, KAK \TO SEJ^AS WAVNO).

pERWONA^ALXNYJ INTEREJS BYL RAZRABOTAN DLQ ISPOLXZOWANIE KODOM Tcl, TAK ^TO ON BYL NEMNOGO IZMENEN, ^TOBY EGO MOVNO BYLO ISPOLXZOWATX ^EREZ gdb/mi. |TOT RAZDEL OPISYWAET OPERACII gdb/mi, KOTORYE BUDUT DOSTUPNY, I DAET NEKOTORYE SOWETY PO IH ISPOLXZOWANI@.

zAME^ANIE: w DOPOLNENIE K OPISANNOMU ZDESX NABORU OPERACIJ, MY OVIDAEM, ^TO guiREALIZACIQ IZMENQEMOGO OKNA BUDET TREBOWATX, KAK MINIMUM, SLEDU@]IE OPERACII:

-gdb-show output-radix

-stack-list-arguments

-stack-list-locals

-stack-select-frame

wWEDENIE W IZMENQEMYE OB_EKTY W gdb/mi

oSNOWNOJ IDEEJ IZMENQEMYH OB_EKTOW QWLQETSQ SOZDANIE IMENOWANNOGO OB_EKTA DLQ PREDSTAWLENIQ PEREMENNOJ, WYRAVENIQ, MESTOPOLOVENIQ W PAMQTI ILI DAVE REGISTRA cp. dLQ KAVDOGO SOZDANNOGO OB_EKTA SU]ESTWUET NABOR OPERACIJ DLQ IZU^ENIQ ILI IZMENENIQ EGO SWOJSTW.

bOLEE TOGO, SLOVNYE TIPY DANNYH, TAKIE KAK STRUKTURY sI, PREDSTAWLENY W DREWOWIDNOM FORMATE. nAPRIMER, PEREMENNAQ TIPA struct QWLQETSQ KORNEM, A POTOMKI BUDUT PREDSTAWLQTX \LEMENTY \TOJ STRUKTURY. eSLI POTOMOK SAM QWLQETSQ SLOVNYM TIPOM, ON TAKVE BUDET IMETX SWOIH POTOMKOW. sOOTWETSTWU@]IE RAZLI^IQ QZYKOW U^ITYWA@TSQ DLQ sI, sI++ I Java.

pRI WOZWRATE REALXNYH ZNA^ENIJ OB_EKTOW, \TA WOZMOVNOSTX POZWOLQET OTDELXNO WYBIRATX FORMAT OTOBRAVENIQ, ISPOLXZUEMYJ PRI SOZDANII REZULXTATA. oN MOVET BYTX WYBRAN IZ: DWOI^NYJ, DESQTI^NYJ, [ESTNADCATERI^NYJ, WOSXMERI^NYJ I OBY^NYJ. oBY^- NYJ SSYLAETSQ NA FORMAT PO UMOL^ANI@, WYBIRAEMYJ AWTOMATI^ESKI W ZAWISIMOSTI OT TIPA PEREMENNOJ (NAPRIMER, DESQTI^NYJ DLQ int, [ESTNADCATERI^NYJ DLQ UKAZATELEJ, I T.D.).

dALEE SLEDUET POLNYJ NABOR OPERACIJ gdb/mi, OPREDELENNYJ DLQ DOSTUPA K \TIM WOZ-

MOVNOSTQM:

 

oPERACIQ

oPISANIE

-var-create

SOZDATX IZMENQEMYJ OB_EKT

-var-delete

UDALITX IZMENQEMYJ OB_EKT I EGO POTOMKOW

-var-set-format

USTANOWITX FORMAT OTOBRAVENIQ DLQ \TOJ

 

PEREMENNOJ

-var-show-format

POKAZATX FORMAT OTOBRAVENIQ DLQ \TOJ PEREMENNOJ

-var-info-num-children

SOOB]AET, SKOLXKO POTOMKOW IMEET DANNYJ OB_EKT

-var-list-children

WOZWRA]AET SPISOK POTOMKOW OB_EKTA

-var-info-type

POKAZATX TIP \TOGO IZMENQEMOGO OB_EKTA

-var-info-expression

NAPE^ATATX, ^TO PREDSTAWLQET \TOT IZMENQEMYJ

-var-show-attributes

OB_EKT

QWLQETSQ LI \TA PEREMENNAQ REDAKTIRUEMOJ? ONA

 

ZDESX SU]ESTWUET?

-var-evaluate-

POLU^ITX ZNA^ENIE \TOJ PEREMENNOJ

expression

USTANOWITX ZNA^ENIE \TOJ PEREMENNOJ

-var-assign

-var-update

SKORREKTIROWATX PEREMENNU@ I EE POTOMKOW

w SLEDU@]EM PODRAZDELE MY PODROBNO OPISYWAEM KAVDU@ OPERACI@ I PREDLAGAEM WOZMOVNYJ SPOSOB EE ISPOLXZOWANIQ.

220

oTLADKA S POMO]X@ GDB

oPISANIE I ISPOLXZOWANIE OPERACIJ DLQ IZMENQEMYH OB_EKTOW

kOMANDA -var-create

kRATKOE OPISANIE

-var-create {IMQ | "-"} {ADRES-KADRA | "*"} WYRAVENIE

dANNAQ OPERACIQ SOZDAET IZMENQEMYJ OB_EKT. |TO POZWOLQET NABL@DATX ZA PEREMENNOJ, REZULXTATOM WYRAVENIQ, Q^EJKOJ PAMQTI ILI REGISTROM cp.

pARAMETR IMQ QWLQETSQ STROKOJ, PO KOTOROJ MOVNO SSYLATXSQ NA OB_EKT. oNA DOLVEN BYTX UNIKALXNOJ. eSLI UKAZAN `-', SISTEMA IZMENQEMYH OB_EKTOW AWTOMATI^ESKI SGENERIRUET STROKU \varNNNNNN". oNA BUDET UNIKALXNOJ, PRI USLOWII, ^TO IMQ NE BUDET UKAZANO W \TOM FORMATE. kOMANDA ZAWER[AETSQ O[IBKOJ, ESLI NAJDENO POWTORQ@]EESQ IMQ.

w ADRESE-KADRA MOVET BYTX ZADAN KADR, W KOTOROM DOLVNO BYTX WY^ISLENO WYRAVENIE. `*' UKAZYWAET, ^TO DOLVEN ISPOLXZOWATXSQ TEKU]IJ KADR.

wYRAVENIE|\TO PROIZWOLXNOE WYRAVENIE, PRAWILXNOE W TEKU]EM NABORE QZYKOW (NE DOLVNO NA^INATXSQ SO `*'), ILI ODNO IZ SLEDU@]EGO:

`*ADRES', GDE ADRES ESTX ADRES Q^EJKI PAMQTI

`*ADRES-ADRES' | DIAPAZON ADRESOW PAMQTI (TBD)

`$IMQ-REG' | IMQ REGISTRA cp

rEZULXTAT

|TA OPERACIQ WOZWRA]AET IMQ, ^ISLO POTOMKOW I TIP SOZDANNOGO OB_EKTA. tIP WOZWRA- ]AETSQ KAK STROKA, KAK BUDTO ONA SOZDANA GDB CLI:

name="IMQ",numchild="N",type="TIP"

kOMANDA -var-delete

kRATKOE OPISANIE

-var-delete IMQ

uDALQET SOZDANNYJ RANEE IZMENQEMYJ OB_EKT I WSEH EGO POTOMKOW. wOZWRA]AET O[IBKU, ESLI OB_EKT S IMENEM IMQ NE NAJDEN.

kOMANDA -var-set-format

kRATKOE OPISANIE

-var-set-format IMQ SPECIF-FORMATA

uSTANAWLIWAET FORMAT WYWODA W SPECIF-FORMATA DLQ ZNA^ENIQ OB_EKTA IMQ. sINTAKSIS SPECIF-FORMATA SLEDU@]IJ:

SPECIF-FORMATA 7!

{binary | decimal | hexadecimal | octal | natural}

kOMANDA -var-show-format

gLAWA 19: iNTERFEJS gdb/mi

221

kRATKOE OPISANIE

-var-show-format IMQ

wOZWRA]AET FORMAT, ISPOLXZUEMYJ DLQ OTOBRAVENIQ ZNA^ENIJ OB_EKTA IMQ.

FORMAT 7!

SPECIF-FORMATA

kOMANDA -var-info-num-children

kRATKOE OPISANIE

-var-info-num-children IMQ

wOZWRA]AET ^ISLO POTOMKOW IZMENQEMOGO OB_EKTA S IMENEM IMQ: numchild=n

kOMANDA -var-list-children

kRATKOE OPISANIE

-var-list-children IMQ

wOZWRA]AET SPISOK POTOMKOW UKAZANNOGO IZMENQEMOGO OB_EKTA:

numchild=n,children={{name=IMQ, numchild=n,type=TIP},(POWTORQETSQ N RAZ)}

kOMANDA -var-info-type

kRATKOE OPISANIE

-var-info-type IMQ

wOZWRA]AET TIP UKAZANNOGO IZMENQEMOGO OB_EKTA IMQ. tIP WOZWRA]AETSQ KAK STROKA W TOM VE FORMATE, W KOTOROM ONA WYDAETSQ GDB CLI:

type=IMQ-TIPA

kOMANDA -var-info-expression

kRATKOE OPISANIE

-var-info-expression IMQ

wOZWRA]AET TO, ^TO PREDSTAWLQET IZMENQEMYJ OB_EKT S IMENEM IMQ: lang=SPECIF-QZYKA,exp=WYRAVENIE

GDE SPECIF-QZYKA ESTX {"C" | "C++" | "Java"}.

kOMANDA -var-show-attributes

222

oTLADKA S POMO]X@ GDB

kRATKOE OPISANIE

-var-show-attributes IMQ

pERE^ISLQET ATRIBUTY ZADANNOGO IZMENQEMOGO OB_EKTA IMQ:

status=ATR [ ( ,ATR )* ]

GDE ATR ESTX { { editable | noneditable } | TBD }.

kOMANDA -var-evaluate-expression

kRATKOE OPISANIE

-var-evaluate-expression IMQ

wY^ISLQET WYRAVENIE, KOTOROE PREDSTAWLENO UKAZANNYM IZMENQEMYM OB_EKTOM I WOZWRA]AET EGO ZNA^ENIE W WIDE STROKI W TEKU]EM FORMATE, OPREDELENNOM DLQ OB_EKTA:

value=ZNA^ENIE

kOMANDA -var-assign

kRATKOE OPISANIE

-var-assign IMQ WYRAVENIE

pRISWAIWAET ZNA^ENIE WYRAVENIQ IZMENQEMOMU OB_EKTU, ZADANNOMU IMENEM. oB_EKT DOLVEN BYTX W SOSTOQNII `editable'.

kOMANDA -var-update

kRATKOE OPISANIE

-var-update {IMQ | "*"}

oBNOWITX ZNA^ENIE IZMENQEMOGO OB_EKTA S IMENEM IMQ PUTEM WY^ISLENIQ EGO WYRAVENIQ, POSLE POLU^ENIQ WSEH NOWYH ZNA^ENIJ IZ PAMQTI ILI REGISTROW. `*' PRIWODIT K OBNOWLENI@ WSEH SU]ESTWU@]IH IZMENQEMYH OB_EKTOW.

19.15 ~ERNOWIK IZMENENIJ K WYHODNOMU SINTAKSISU gdb/mi

oDNOJ PROBLEMOJ, OBNARUVENNOJ W SU]ESTWU@]EM SINTAKSISE WYWODA gdb/mi, BYLA TRUDNOSTX W NAHOVDENII OTLI^IJ MEVDU NABORAMI WRODE \TOGO:

{number="1",type="breakpoint",disp="keep",enabled="y"}

GDE KAVDOE ZNA^ENIE IMEET UNIKALXNU@ METKU, I TAKIM SPISKOM:

{"1","2","4"}

{bp="1",bp="2",bp="4"}

GDE ZNA^ENIQ NE IME@T METOK, ILI METKI POWTORQ@TSQ.

dALEE PREDSTAWLEN ^ERNOWIK IZMENENIJ K SPECIFIKACII WYWODA, KOTORYJ RE[AET \TU PROBLEMU.

wYWOD gdb/mi SOSTOIT IZ NULQ ILI BOLEE WNEO^EREDNYH ZAPISEJ, ZA KOTORYMI MOVET SLEDOWATX ODNA REZULXTIRU@]AQ ZAPISX, PRI^EM ONA OTNOSITSQ K SAMOJ POSLEDNEJ WWEDENNOJ KOMANDE. pOSLEDOWATELXNOSTX ZAWER[AETSQ `gdb'.

gLAWA 19: iNTERFEJS gdb/mi

223

aSINHRONNYJ WYWOD gdb/mi TAKOJ VE.

kAVDAQ WYHODNAQ ZAPISX, NEPOSREDSTWENNO SWQZANNAQ S WHODNOJ KOMANDOJ, NA^INAETSQ S PREFIKSA LEKSEMA WHODNOJ KOMANDY.

WYWOD 7! { WNEO^EREDNAQ-ZAPISX } [ REZ-ZAPISX ] "(gdb)" nl

REZ-ZAPISX 7!

[ LEKSEMA ] "^" REZ-KLASS { "," REZULXTAT } nl

WNEO^EREDNAQ-ZAPISX 7!

ASINHR-ZAPISX | POTO^N-ZAPISX

ASINHR-ZAPISX 7!

ASINHR-WYWOD-WYPOLN | ASINHR-WYWOD-STATUSA | ASINHR-WYWOD-UWEDOML

ASINHR-WYWOD-WYPOLN 7!

[ LEKSEMA ] "*" ASINHR-WYWOD

ASINHR-WYWOD-STATUSA 7!

[ LEKSEMA ] "+" ASINHR-WYWOD

ASINHR-WYWOD-UWEDOML 7!

[ LEKSEMA ] "=" ASINHR-WYWOD

ASINHR-WYWOD 7!

ASINHR-KLASS { "," REZULXTAT } nl

REZULXT-KLASS 7!

"done" | "running" | "connected" | "error" | "exit"

ASINHR-KLASS 7!

"stopped" | DRUGOE PO NEOBHODIMOSTI, T.K. NAHODITSQ W STADII RAZRABOTKI

REZULXTAT 7!

STROKA "=" ZNA^ENIE

ZNA^ENIE 7!

STROKA-SI | NABOR | SPISOK

NABOR 7! "{}" | "{" REZULXTAT { "," REZULXTAT } "}"

SPISOK 7! "[]" | "[" ZNA^ENIE { "," ZNA^ENIE } "]"

STROKA 7! [-A-Za-z\.0-9 ]*

STROKA-SI 7!

sMOTRI SPECIFIKACI@ WWODA

POTO^N-ZAPISX 7!

KONSOLXN-POTO^N-WYWOD | CELEW-POTO^N-WYWOD | VURN-POTO^N-WYWOD

KONSOLXN-POTO^N-WYWOD 7! "~" STROKA-SI

CELEW-POTO^N-WYWOD 7! "@" STROKA-SI

VURN-POTO^N-WYWOD 7! "&" STROKA-SI

nl 7! CR | CR-LF

LEKSEMA 7!

"L@BAQ POSLEDOWATELXNOSTX CIFR"

kROME TOGO, SLEDU@]EE NAHODITSQ W STADII RAZRABOTKI.

224

oTLADKA S POMO]X@ GDB

ZAPROS |TO DEJSTWIE POKA NE OPREDELENO.

zAME^ANIQ:

wSE WYHODNYE POSLEDOWATELXNOSTI ZAKAN^IWA@TSQ STROKOJ, SODERVA]EJ TO^KU.

lEKSEMA BERETSQ IZ SOOTWETSTWU@]EGO ZAPROSA. eSLI WYPOLNQ@]AQSQ KOMANDA PRERYWAETSQ KOMANDOJ -exec-interrupt, LEKSEMA, ASSOCIIROWANNAQ S SOOB]ENIEM `*stopped', BERETSQ IZ ISHODNOJ WYPOLNQW[EJSQ KOMANDY, A NE IZ KOMANDY PRERYWANIQ.

aSINHR-WYWOD-STATUSA SODERVIT INFORMACI@ O STATUSE WYPOLNENIQ MEDLENNOJ OPERACII. oNA MOVET BYTX OTBRO[ENA. wSQ INFORMACIQ O STATUSE NA^INAETSQ S PREFIKSA

`+'.

aSINHR-WYWOD-WYPOLN SODERVIT IZMENENIQ ASINHRONNOGO SOSTOQNIQ NA CELI (OSTANOWLENA, ZAPU]ENA, IS^EZLA). wESX ASINHRONNYJ WYWOD NA^INAETSQ S PREFIKSA `*'.

aSINHR-WYWOD-UWEDOML SODERVIT DOPOLNITELXNU@ INFORMACI@, KOTORU@ DOLVEN OBRABOTATX KLIENT (INFORMACIQ O NOWOJ TO^KE OSTANOWA). wESX UWEDOMITELXNYJ WYWOD NA^INAETSQ S PREFIKSA `='.

kONSOLXN-POTO^N-WYWOD QWLQETSQ WYWODOM, KOTORYJ DOLVEN BYTX OTOBRAVEN NA KONSOLI BEZ IZMENENIJ. |TO TEKSTOWAQ REAKCIQ NA KOMANDU CLI. wESX KONSOLXNYJ WYWOD NA^INAETSQ S PREFIKSA `~'.

cELEW-POTO^N-WYWOD QWLQETSQ WYWODOM, PROIZWEDENNYM CELEWOJ PROGRAMMOJ. wESX CELEWOJ WYWOD NA^INAETSQ S PREFIKSA `@'.

vURN-POTO^N-WYWOD QWLQETSQ TEKSTOM, ISHODQ]IM IZNUTRI GDB, NAPRIMER, SOOB]E- NIQ, KOTORYE DOLVNY BYTX WYWEDENY KAK ^ASTX VURNALA O[IBOK. wESX VURNALXNYJ WYWOD NA^INAETSQ S PREFIKSA `&'.

gLAWA 20: oT^ETY OB O[IBKAH W GDB

225

20 oT^ETY OB O[IBKAH W GDB

wA[I OT^ETY OB O[IBKAH IGRA@T SU]ESTWENNU@ ROLX W OBESPE^ENII NADEVNOSTI GDB.

sOOB]ENIE OB O[IBKE MOVET POMO^X WAM NAJTI RE[ENIE WA[EJ PROBLEMY, A MOVET I NE POMO^X. nO W L@BOM SLU^AE, OSNOWNAQ FUNKCIQ OT^ETA OB O[IBKE|POMO^X WSEMU OB]ESTWU SDELATX SLEDU@]U@ WERSI@ GDB LU^[E. oT^ETY OB O[IBKAH|\TO WA[ WKLAD W PODDERVKU

GDB.

~TOBY OT^ET OB O[IBKE SDELAL SWOE DELO, WY DOLVNY WKL@^ITX W NEGO INFORMACI@, KOTORAQ DAST NAM WOZMOVNOSTX EE USTRANITX.

20.1 wY NA[LI O[IBKU?

eSLI WY NE UWERENY, NA[LI LI WY O[IBKU, WOT NESKOLXKO RUKOWODQ]IH PRINCIPOW:

eSLI OTLAD^IK POLU^AET FATALXNYJ SIGNAL, TO \TO O[IBKA W GDB, NEZAWISIMO OT WWODA. w NADEVNYH OTLAD^IKAH SBOEW NE BYWAET.

eSLI GDB WYWODIT SOOB]ENIE OB O[IBKE DLQ DOPUSTIMOGO WWODA|\TO O[IBKA. (zAMETXTE, ^TO ESLI WY WYPOLNQETE KROSS-OTLADKU, PROBLEMA MOVET WOZNIKATX GDE-TO W SOEDINENII K CELI.)

eSLI GDB NE WYWODIT SOOB]ENIE OB O[IBKE DLQ NEDOPUSTIMOGO WWODA, \TO O[IBKA.

oDNAKO WY DOLVNY OBRATITX WNIMANIE, ^TO ESLI PO WA[EMU MNENI@ ^TO-TO QWLQETSQ \NEDOPUSTIMYM WWODOM", PO NA[EMU MNENI@ \TO MOVET BYTX \RAS[IRENIEM" ILI \PODDERVKOJ DLQ TRADICIONNOJ PRAKTIKI".

eSLI WY OPYTNYJ POLXZOWATELX SREDSTW OTLADKI, WA[I PREDLOVENIQ PO ULU^[ENI@ GDB PRIWETSTWU@TSQ W L@BOM SLU^AE.

20.2 kAK SOSTAWLQTX OT^ETY OB O[IBKAH

nEKOTORYE KOMPANII I ^ASTNYE LICA PREDLAGA@T PODDERVKU DLQ PROGRAMMNYH PRODUKTOW gnu. eSLI WY POLU^ILI GDB IZ ORGANIZACII PODDERVKI, MY REKOMENDUEM WAM SPERWA SWQZATXSQ S NEJ.

wY MOVETE NAJTI KONTAKTNU@ INFORMACI@ DLQ MNOGIH ORGANIZACIJ PODDERVKI I ^ASTNYH LIC W FAJLE `etc/SERVICE' W DISTRIBUTIWE gnu Emacs.

w L@BOM SLU^AE, MY TAKVE REKOMENDUEM WAM POSLATX OT^ET OB O[IBKE W GDB PO \TOMU ADRESU:

bug-gdb@gnu.org

nE POSYLAJTE OT^ETY OB O[IBKAH W `info-gdb', ILI W `help-gdb', ILI W KAKU@-LIBO GRUPPU NOWOSTEJ. bOLX[INSTWO POLXZOWATELEJ GDB NE HOTQT POLU^ATX OT^ETY OB O[IBKAH. tE, KTO \TOGO DEJSTWITELXNO HO^ET, DOLVNY POLU^ATX `bug-gdb'.

sPISOK RASSYLKI `bug-gdb' IMEET GRUPPU NOWOSTEJ `gnu.gdb.bug', KOTORAQ SLUVIT KAK POWTORITELX. sPISOK RASSYLKI I GRUPPA NOWOSTEJ IME@T W TO^NOSTI ODINAKOWYE SOOB]E- NIQ. ~ASTO L@DI POSYLA@T SOOB]ENIQ OB O[IBKAH W GRUPPU NOWOSTEJ, WMESTO OTPRAWKI PO \LEKTRONNOJ PO^TE. |TO RABOTAET, NO IMEETSQ ODNA PROBLEMA, KOTORAQ MOVET BYTX RE- [A@]EJ: GRUPPA NOWOSTEJ ^ASTO NE IMEET INFORMACII OB OBRATNOM ADRESE OTPRAWITELQ. tAKIM OBRAZOM, ESLI NAM POTREBUETSQ ZAPROSITX DOPOLNITELXNU@ INFORMACI@, MY MOVEM NE IMETX WOZMOVNOSTI SWQZATXSQ S WAMI. pO \TOJ PRI^INE, LU^[E POSYLATX OT^ETY OB O[IBKAH W SPISOK RASSYLKI.

w KRAJNEM SLU^AE, POSYLAJTE OT^ETY OB O[IBKAH NA BUMAGE PO ADRESU:

226

oTLADKA S POMO]X@ GDB

gnu Debugger Bugs

Free Software Foundation Inc. 59 Temple Place - Suite 330 Boston, MA 02111-1307

USA

oSNOWNOJ PRINCIP DEJSTWENNOGO SOSTAWLENIQ OT^ETOW OB O[IBKAH: SOOB]AJTE WSE FAKTY. eSLI WY NE UWERENY, OSTAWITX FAKT ILI ISKL@^ITX, OSTAWXTE EGO!

~ASTO L@DI OPUSKA@T FAKTY, POTOMU ^TO DUMA@T, ^TO ZNA@T PRI^INY PROBLEMY, I POLAGA@T, ^TO NEKOTORYE DETALI NE IME@T ZNA^ENIQ. tAKIM OBRAZOM, WY MOVETE S^ITATX, ^TO IMQ PEREMENNOJ, KOTORU@ WY ISPOLXZUETE W PRIMERE, NE IMEET ZNA^ENIQ. wOZMOVNO \TO TAK, NO NELXZQ BYTX UWERENNYM W \TOM. mOVET BYTX O[IBKOJ QWLQETSQ NEWERNOE OBRA]ENIE K PAMQTI, KOTOROE WYBRALO DANNYE IZ Q^EEK, GDE HRANILOSX \TO IMQ; WOZMOVNO, ESLI BY IMQ BYLO DRUGIM, SODERVIMOE \TIH Q^EEK WWELO BY OTLAD^IK W ZABLUVDENIE, I O[IBKA NE BYLA BY ZAME^ENA. oTNOSITESX K \TOMU OSTOROVNO, I PRIWODITE KONKRETNYE, POLNYE PRIMERY. |TO SAMOE PROSTOE ^TO WY MOVETE SDELATX, I NAIBOLEE POLEZNOE.

pOMNITE, ^TO CELX OT^ETA OB O[IBKE SOSTOIT W TOM, ^TOBY DATX NAM WOZMOVNOSTX USTANOWITX DEFEKT. mOVET SLU^ITXSQ, ^TO OB \TOJ O[IBKE NAM UVE SOOB]ALI, NO NE WY, NE MY NE MOVEM \TOGO ZNATX, ESLI OT^ET OB O[IBKE NE BUDET POLNYM I SAMODOSTATO^NYM.

iNOGDA L@DI DA@T NESKOLXKO POWERHNOSTNYH FAKTOW I SPRA[IWA@T, \NE GOWORIT LI \TO OB O[IBKE?". tAKIE SOOB]ENIQ O DEFEKTAH BESPOLEZNY, I MY UBEVDAEM WSEH OTKAZYWATXSQ OTWE^ATX NA NIH, ZA ISKL@^ENIEM TOGO, ^TOBY POBUDITX AWTORA OT^ETA POSLATX EGO PRAWILXNO.

~TOBY DATX NAM WOZMOVNOSTX USTRANITX O[IBKU, WY DOLVNY WKL@^ITX W SOOB]ENIE SLEDU@]EE:

wERSI@ GDB. GDB SOOB]AET EE PRI WYZOWE BEZ PARAMETROW; WY MOVETE TAKVE WYWESTI EE W L@BOJ MOMENT, ISPOLXZUQ show version.

bEZ \TOGO MY NE BUDEM ZNATX, IMEET LI SMYSL POISK O[IBKI W TEKU]EJ WERSII OTLAD- ^IKA.

tIP MA[INY, KOTOROJ WY POLXZUETESX, NAZWANIE I NOMER WERSII OPERACIONNOJ SISTEMY.

kAKOJ KOMPILQTOR (I EGO WERSIQ) ISPOLXZOWALSQ PRI KOMPILQCII GDB. nAPRIMER, \gcc{2.8.1".

kAKOJ KOMPILQTOR (I EGO WERSIQ) ISPOLXZOWALSQ DLQ KOMPILQCII OTLAVIWAEMOJ PROGRAMMY|NAPRIMER \gcc{2.8.1", ILI \HP92453-01 A.10.32.03 HP C Compiler". dLQ gcc, WY MOVETE ISPOLXZOWATX gcc --version ^TOBY POLU^ITX \TU INFORMACI@; DLQ DRUGIH KOMPILQTOROW, SMOTRITE IH DOKUMENTACI@.

pARAMETRY KOMANDY, KOTORYE WY DALI KOMPILQTORU DLQ KOMPILQCII WA[EGO PRIMERA, S KOTORYM WY NABL@DALI O[IBKU. nAPRIMER, ISPOLXZOWALI LI WY `-O'? dLQ GARANTII, ^TO WY NE PROPUSTITE ^TO-NIBUDX WAVNOE, PERE^ISLQJTE WSE. kOPII `Makefile' (ILI REZULXTATA WYZOWA make) DOSTATO^NO.

eSLI MY DOLVNY BUDEM UGADYWATX ARGUMENTY, MY WOZMOVNO SDELAEM \TO NEPRAWILXNO I MOVEM NE STOLKNUTXSQ S O[IBKOJ.

pOLNYJ SCENARIJ WWODA, I WSE NEOBHODIMYE ISHODNYE FAJLY, KOTORYE WOSPROIZWEDUT O[IBKU.

oPISANIE NABL@DAEMOGO WAMI POWEDENIQ, KOTOROE WY S^ITAETE O[IBO^NYM. nAPRIMER, \|TO PRIWODIT K FATALXNOMU SIGNALU".

kONE^NO, ESLI O[IBKA SOSTOIT W POLU^ENII GDB FATALXNOGO SIGNALA, TO MY, KONE^NO, ZAMETIM \TO. nO ESLI O[IBKOJ QWLQETSQ NEKORREKTNYJ WYWOD, MY MOVEM NE ZAMETITX \TOGO, ESLI \TO NE BROSAETSQ W GLAZA. wY TAKVE MOVETE NE DATX NAM WOZMOVNOSTI O[IBITXSQ.

gLAWA 20: oT^ETY OB O[IBKAH W GDB

227

dAVE ESLI WA[A PROBLEMA ZAKL@^AETSQ W FATALXNOM SIGNALE, WY WSE VE DOLVNY SOOB- ]ITX OB \TOM QWNO. pREDPOLOVIM, PROISHODIT ^TO-TO STRANNOE, NAPRIMER, WA[A KOPIQ GDB RASSINHRONIZIROWALASX, ILI WY STOLKNULISX S O[IBKOJ W BIBLIOTEKE sI WA[EJ SISTEMY. (tAKOE BYWALO!) wA[A KOPIQ MOVET ZAWER[ITXSQ AWARIJNO, A NA[A NET. eSLI WY PREDUPREDITE NAS OB OVIDAEMOJ AWARII, A W NA[EJ SISTEME \TOGO NE PROIZOJDET, MY BUDEM ZNATX, ^TO O[IBKA PROIZO[LA NE IZ-ZA NAS. eSLI WY NAS NE PREDUPREDITE, MY NE SMOVEM SDELATX NIKAKIH WYWODOW IZ NA[IH NABL@DENIJ.

eSLI WY HOTITE PREDLOVITX WNESTI IZMENENIQ W ISHODNYE TEKSTY GDB, PRISYLAJTE NAM KONTEKSTNYE IZMENENIQ. dAVE ESLI WY VELAETE OBSUDITX ^TO-NIBUDX IZ ISHODNYH TEKSTOW, SSYLAJTESX PO KONTEKSTU, A NE PO NOMERU STROKI.

nOMERA STROK W NA[IH ISHODNYH TEKSTAH RAZRABOTKI NE BUDUT SOOTWETSTWOWATX WA[IM. wA[I NOMERA STROK NE DADUT NAM NIKAKOJ POLEZNOJ INFORMACII.

wOT NEKOTORYE WE]I, NE QWLQ@]IESQ OBQZATELXNYMI:

oPISANIE KONTEKSTA O[IBKI.

~ASTO L@DI, STALKIWA@]IESQ S O[IBKOJ, TRATQT MNOGO WREMENI NA ISSLEDOWANIQ, KAKIE IZMENENIQ WHODNOGO FAJLA PRIWEDUT K EE IS^EZNOWENI@, A KAKIE NA NEE NE WLIQ@T.

|TO ^ASTO ZANIMAET MNOGO WREMENI I PRINOSIT MALO POLXZY, POTOMU ^TO MY NAJDEM O[IBKU POSREDSTWOM WYPOLNENIQ ODNOGO PRIMERA POD UPRAWLENIEM OTLAD^IKA S TO^- KAMI OSTANOWA, A NE ^ISTYMI WYWODAMI IZ SERII PRIMEROW. mY REKOMENDUEM WAM SOHRANITX \TO WREMQ DLQ ^EGO-NIBUDX DRUGOGO.

kONE^NO, ESLI WY SMOVETE NAJTI BOLEE PROSTOJ PRIMER DLQ OT^ETA WMESTO PERWONA^ALXNOGO, \TO BUDET UDOBNEE DLQ NAS. wYDELENIE O[IBOK W WYWODE BUDET PRO]E, WYPOLNENIE POD UPRAWLENIEM OTLAD^IKA BUDET ZANIMATX MENX[E WREMENI, I TAK DALEE.

oDNAKO, \TO UPRO]ENIE NE QWLQETSQ VIZNENNO WAVNYM; ESLI WY NE HOTITE DELATX \TOGO, SOOB]AJTE OB O[IBKE W L@BOM SLU^AE I POSYLAJTE NAM WESX TESTOWYJ MATERIAL, KOTORYJ WY ISPOLXZOWALI.

zAPLATA DLQ O[IBKI.

zAPLATA DLQ ISPRAWLENIQ O[IBKI DEJSTWITELXNO POMOVET NAM, ESLI \TO HORO[AQ ZAPLATA. nO NE OPUSKAJTE NEOBHODIMU@ INFORMACI@, TAKU@ KAK TESTOWYJ PRIMER, PREDPOLAGAQ, ^TO ZAPLATA \TO WSE, W ^EM MY NUVDAEMSQ. mY MOVEM OBNARUVITX PROBLEMY S WA[EJ ZAPLATOJ I RE[ITX USTRANITX O[IBKU DRUGIM PUTEM, ILI MY MOVEM WOOB]E NE PONQTX SMYSL WA[EJ ZAPLATY.

iNOGDA DLQ TAKOJ SLOVNOJ PROGRAMMY, KAK GDB, O^ENX TRUDNO SOZDATX PRIMER, KOTORYJ ZASTAWIT PROGRAMMU SLEDOWATX PO OPREDELENNOMU PUTI W PROCESSE WYPOLNENIQ. eSLI WY NE PRI[LETE NAM PRIMER, MY NE SMOVEM SKONSTRUIROWATX EGO SAMI, I TAKIM OBRAZOM NE SMOVEM PROWERITX, ^TO O[IBKA USTRANENA.

i ESLI MY NE SMOVEM PONQTX, KAKU@ O[IBKU WY PYTAETESX ISPRAWITX, ILI PO^EMU WA[A ZAPLATA QWLQ@TSQ ULU^[ENIEM, MY NE ISPOLXZUEM EE. tESTOWYJ PRIMER POMOVET NAM WO WSEM RAZOBRATXSQ.

pREDPOLOVENIQ, W ^EM SOSTOIT O[IBKA, ILI OT ^EGO ONA ZAWISIT.

tAKIE PREDPOLOVENIQ OBY^NO NEWERNY. dAVE MY NE MOVEM SDELATX PRAWILXNYH PREDPOLOVENIJ O TAKOGO RODA WE]AH DO ZAPUSKA OTLAD^IKA I WYQWLENIQ FAKTOW.

228

oTLADKA S POMO]X@ GDB

gLAWA 21: rEDAKTIROWANIE KOMANDNOJ STROKI

229

21 rEDAKTIROWANIE KOMANDNOJ STROKI

|TA GLAWA OPISYWAET OSNOWNYE WOZMOVNOSTI INTERFEJSA REDAKTIROWANIQ KOMANDNOJ STROKI gnu.

21.1 wWEDENIE W REDAKTIROWANIE STROK

sLEDU@]IE PARAGRAFY OPISYWA@T NOTACI@, ISPOLXZUEMU@ DLQ OBOZNA^ENIQ NAVATIQ KLAWI[.

tEKST C-k ^ITAETSQ KAK `Control-K' I OPISYWAET ZNAK, POLU^ENNYJ NAVATIEM KLAWI[I hki PRI NAVATOJ KLAWI[E Control.

tEKST M-k ^ITAETSQ KAK `Meta-K' I OPISYWAET ZNAK, WWEDENNYJ NAVATIEM KLAWI[I hki PRI NAVATOJ KLAWI[E Meta (ESLI U WAS ONA IMEETSQ). nA MNOGIH KLAWIATURAH KLAWI[A Meta OTME^AETSQ S POMO]X@ hALTi. nA KLAWIATURAH S DWUMQ KLAWI[AMI, OTME^ENNYMI hALTi (OBY^NO PO RAZNYE STORONY OT PROBELA), hALTi NA LEWOJ STORONE OBY^NO USTANAWLIWAETSQ DLQ RABOTY KLAWI[EJ Meta. pRAWYJ hALTi TAKVE MOVET BYTX SKONFIGURIROWAN DLQ RABOTY Meta, ILI ON MOVET BYTX SKONFIGURIROWAN KAK DRUGOJ MODIFIKATOR, NAPRIMER KAK KLAWI[A Compose DLQ WWODA SIMWOLOW S AKCENTAMI.

eSLI U WAS NET KLAWI[I Meta ILI hALTi, ILI DRUGOJ KLAWI[I, RABOTA@]EJ KAK Meta, IDENTI^NOE NAVATIE KLAWI[ MOVNO POLU^ITX NAVAW SNA^ALA hESCi, A ZATEM hki. |TI PROCESSY NAZYWA@TSQ METAFIKACIEJ KLAWI[I hki.

tEKST M-C-k ^ITAETSQ KAK `Meta-Control-k' I OPISYWAET ZNAK, POLU^ENNYJ POSREDSTWOM

METAFIKACII C-k.

kROME TOGO, NEKOTORYE KLAWI[I IME@T SOBSTWENNYE IMENA. iMENNO, hDELi, hESCi, hLFDi, hSPCi, hRETi I hTABi W \TOM TEKSTE ILI W FAJLE INICIALIZACII OBOZNA^A@T SAMI SEBQ (SM. rAZDEL 21.3 [fAJL INICIALIZACII Readline], S. 232). eSLI NA WA[EJ KLAWIATURE NET KLAWI- [I hLFDi, NAVATIE C-j PRIWEDET K WWODU VELAEMOGO SIMWOLA. kLAWI[A hRETi NA NEKOTORYH KLAWIATURAH MOVET BYTX OTME^ENA KAK hReturni ILI hEnteri.

21.2 wZAIMODEJSTWIE S Readline

~ASTO WO WREMQ INTERAKTIWNOGO SEANSA WY WWODITE DLINNU@ STROKU TEKSTA TOLXKO DLQ TOGO, ^TOBY ZAMETITX, ^TO PERWOE SLOWO NABRANO NEPRAWILXNO. bIBLIOTEKA Readline DAET WAM NABOR KOMAND DLQ UPRAWLENIQ TEKSTOM WO WREMQ WWODA, POZWOLQQ WAM LI[X ISPRAWITX OPE^ATKU, A NE NABIRATX ZANOWO BOLX[U@ ^ASTX STROKI. s POMO]X@ \TIH KOMAND REDAKTIROWANIQ, WY PEREME]AETE KURSOR W MESTO, TREBU@]EE ISPRAWLENIQ, I UDALQETE ILI WSTAWLQETE TEKST DLQ KORREKCII. zATEM, KOGDA STROKA POLNOSTX@ ISPRAWLENA, WY PROSTO NAVIMAETE hRETi. ~TOBY NAVATX hRETi WAM NE OBQZATELXNO NAHODITXSQ W KONCE STROKI; WSQ STROKA WWODITSQ NEZAWISIMO OT RASPOLOVENIQ W NEJ KURSORA.

21.2.1 sWEDENIQ PERWOJ NEOBHODIMOSTI

dLQ TOGO, ^TOBY WWESTI ZNAK W STROKU, PROSTO NAVMITE EGO. wWEDENNYJ ZNAK POQWLQETSQ TAM, GDE BYL KURSOR, I ZATEM KURSOR PEREME]AETSQ NA ODNU POZICI@ WPRAWO. eSLI WY NEWERNO NABRALI ZNAK, WY MOVETE ISPOLXZOWATX WA[ ZNAK UNI^TOVENIQ, ^TOBY WERNUTXSQ I UDALITX NEWERNYJ ZNAK.

iNOGDA WY MOVETE NABRATX SIMWOL O[IBO^NO, I NE ZAMETITX O[IBKI, POKA NE NAPE^ATAETE NESKOLXKO DRUGIH ZNAKOW. w \TOM SLU^AE, WY MOVETE NABRATX C-b, ^TOBY PEREMESTITX KURSOR WLEWO, I ZATEM ISPRAWITX WA[U O[IBKU. pOSLE \TOGO, WY MOVETE PEREMESTITX KURSOR WPRAWO NAVATIEM C-f.

230

oTLADKA S POMO]X@ GDB

kOGDA WY DOBAWLQETE TEKST W SEREDINU STROKI, SIMWOLY SPRAWA OT KURSORA `SDWIGA@TSQ WPERED', ^TOBY OSWOBODITX MESTO DLQ WSTAWLQEMOGO TEKSTA. aNALOGI^NO, KOGDA WY UDALQETE TEKST ZA KURSOROM, SIMWOLY SPRAWA OT NEGO `SDWIGA@TSQ NAZAD', ZANIMAQ PUSTOE PROSTRANSTWO, SOZDANNOE W REZULXTATE UDALENIQ TEKSTA. nIVE SLEDUET SPISOK KOMAND PERWOJ NEOBHODIMOSTI DLQ REDAKTIROWANIQ WWODIMOGO TEKSTA.

C-b pEREMESTITXSQ NAZAD NA ODNU POZICI@.

C-f pEREMESTITXSQ WPERED NA ODNU POZICI@.

hDELi ILI hBackspacei

uDALITX SIMWOL SLEWA OT KURSORA.

C-d uDALITX SIMWOL POD KURSOROM.

wWOD SIMWOLOW

wSTAWITX SIMWOL W STROKU W POZICI@ KURSORA.

C-_ ILI C-x C-u

oTMENITX POSLEDN@@ KOMANDU REDAKTIROWANIQ. wY MOVETE OTMENITX WSE, WERNUW[ISX NAZAD K PUSTOJ STROKE.

(w ZAWISIMOSTI OT WA[EJ KONFIGURACII, KLAWI[A hBackspacei MOVET BYTX NASTROENA UDALQTX ZNAK SLEWA OT KURSORA, A hDELi UDALQTX ZNAK POD KURSOROM, KAK C-d, WMESTO SIMWOLA, RASPOLOVENNOGO OT KURSORA SLEWA.)

21.2.2 kOMANDY PEREME]ENIQ Readline

pRIWEDENNAQ WY[E TABLICA OPISYWAET TOLXKO SAMYE BAZOWYE POSLEDOWATELXNOSTI KLAWI[, KOTORYE MOGUT WAM PONADOBITXSQ DLQ REDAKTIROWANIQ STROKI WWODA. dLQ UDOBSTWA, W DOPOLNENIE K C-b, C-f, C-d I hDELi BYLI DOBAWLENY MNOGIE DRUGIE KOMANDY. wOT NEKOTORYE IZ NIH, PREDNAZNA^ENNYE DLQ BOLEE BYSTROGO PEREME]ENIQ PO STROKE.

C-a pEREMESTITXSQ W NA^ALO STROKI.

C-e pEREMESTITXSQ W KONEC STROKI.

M-f pEREMESTITXSQ WPERED NA SLOWO. sLOWO SOSTOIT IZ BUKW I CIFR.

M-b pEREMESTITXSQ NAZAD NA SLOWO.

C-l o^ISTITX \KRAN, NAPE^ATAW TEKU]U@ STROKU ZANOWO WWERHU \KRANA.

zAMETXTE, ^TO C-f PEREME]AET KURSOR WPERED NA SIMWOL, W TO WREMQ KAK M-f PEREME- ]AET WPERED NA SLOWO. |TO SWOEGO RODA SOGLA[ENIE, ^TO PRI NAVATII KLAWI[I sontrol PROIZWODQTSQ DEJSTWIQ NAD SIMWOLAMI, PRI NAVATII KLAWI[I Meta|NAD SLOWAMI.

21.2.3 kOMANDY UNI^TOVENIQ Readline

uNI^TOVENIE TEKSTA OZNA^AET UNI^TOVENIE TEKSTA IZ STROKI, NO SOHRANENIE EGO DLQ DALXNEJ[EGO ISPOLXZOWANIQ, OBY^NO DLQ WOSSTANOWLENIQ (POWTORNOJ WSTAWKI) OBRATNO W STROKU. (`wYREZATX' I `WSTAWITX' QWLQ@TSQ BOLEE SWEVIMI VARGONNYMI SINONIMAMI DLQ `UNI^TOVITX' I `WOSSTANOWITX'.)

eSLI W OPISANII KOMANDY SKAZANO, ^TO ONA `UNI^TOVAET' TEKST, TO WY MOVETE BYTX UWERENY, ^TO POZVE EGO MOVNO BUDET POLU^ITX OBRATNO W DRUGOM (ILI TOM VE SAMOM) MESTE.

kOGDA WY ISPOLXZUETE KOMANDU UNI^TOVENIQ, TEKST SOHRANQETSQ W KOLXCEWOM SPISKE UNI^TOVENIJ. l@BOE ^ISLO POSLEDOWATELXNYH UNI^TOVENIJ SOHRANQET WESX UNI^TOVENNYJ TEKST WMESTE, TAK ^TO KOGDA WY WOSSTANAWLIWAETE EGO NAZAD, WY POLU^ITE WSE. sPISOK UNI^TOVENIJ NE IMEET PRIWQZKI K STROKAM; TEKST, UNI^TOVENNYJ WAMI W PREDYDU]EJ STROKE WWODA, DOSTUPEN DLQ WOSSTANOWLENIQ POZVE, KOGDA WY WWODITE DRUGU@ STROKU.

wOT SPISOK KOMAND DLQ UNI^TOVENIQ TEKSTA.

gLAWA 21: rEDAKTIROWANIE KOMANDNOJ STROKI

231

C-k

uNI^TOVITX TEKST OT TEKU]EJ POZICII KURSORA DO KONCA STROKI.

M-d

uNI^TOVITX OT KURSORA DO KONCA TEKU]EGO SLOWA, ILI, ESLI KURSOR NAHODITSQ

 

 

 

MEVDU SLOWAMI, DO KONCA SLEDU@]EGO SLOWA. gRANICY SLOW TAKIE VE, KAK I

 

 

 

ISPOLXZUEMYE M-f.

M-h

 

i

uNI^TOVITX OT KURSORA DO NA^ALA TEKU]EGO SLOWA, ILI, ESLI KURSOR NAHODITSQ

DEL

 

 

 

MEVDU SLOWAMI, DO NA^ALA PREDYDU]EGO SLOWA. gRANICY SLOW TAKIE VE, KAK I

 

 

 

ISPOLXZUEMYE M-b.

C-w

uNI^TOVITX OT KURSORA DO PREDYDU]EGO PROBELXNOGO SIMWOLA. |TO OTLI^AETSQ

 

 

 

OT M-h

 

i, TAK KAK GRANICY SLOWA RAZLI^A@TSQ.

 

 

 

DEL

wOT KAK MOVNO WOSSTANOWITX TEKST OBRATNO W STROKU. wOSSTANOWLENIE OZNA^AET KOPIROWANIE POSLEDNEGO UNI^TOVENNOGO TEKSTA IZ BUFERA UNI^TOVENIJ.

C-y

wOSSTANOWITX POSLEDNIJ UNI^TOVENNYJ TEKST W BUFER PERED KURSOROM.

M-y

cIKLI^ESKIJ SDWIG PO KOLXCEWOMU SPISKU UNI^TOVENIJ, I WOSSTANOWLENIE NOWOJ

 

WER[INY. wY MOVETE ISPOLXZOWATX \TO, TOLXKO ESLI PREDYDU]AQ KOMANDA BYLA

 

C-y ILI M-y.

21.2.4 pARAMETRY KOMAND Readline

wY MOVETE PEREDAWATX ^ISLOWYE PARAMETRY KOMANDAM Readline. iNOGDA PARAMETR DEJSTWUET KAK S^ET^IK POWTORENIJ, INOGDA ON QWLQETSQ ZNAKOM, ESLI ARGUMENT IMEET ZNAK. eSLI WY PEREDAETE OTRICATELXNYJ PARAMETR KOMANDE, KOTORAQ OBY^NO DEJSTWUET W PRQMOM NAPRAWLENII, TO ONA BUDET DEJSTWOWATX W OBRATNOM NAPRAWLENII. nAPRIMER, ^TOBY UNI^TOVITX TEKST DO NA^ALA STROKI, WY MOVETE NABRATX `M- C-k'.

oB]IJ SPOSOB PEREDA^I ^ISLOWYH PARAMETROW KOMANDE SOSTOIT W NABORE Meta-CIFR PERED KOMANDOJ. eSLI PERWAQ NABRANNAQ `CIFRA' ESTX ZNAK MINUS (`-'), TOGDA ZNAK ARGUMENTA BUDET OTRICATELXNYM. eSLI WY NABRALI ODNU META-CIFRU DLQ NA^ALA PARAMETRA, WY MOVETE NABRATX OSTAW[IESQ CIFRY, I POTOM KOMANDU. nAPRIMER, ^TOBY PEREDATX KOMANDE C-d PARAMETR 10, WY MOVETE NABRATX `M-1 0 C-d'.

21.2.5 pOISK KOMAND W ISTORII

Readline PREDOSTAWLQET KOMANDY DLQ POISKA W ISTORII KOMAND STROK, SODERVA]IH UKAZANNU@ PODSTROKU. sU]ESTWUET DWA REVIMA POISKA: NARA]IWAEMYJ I NENARA]IWAEMYJ.

nARA]IWAEMYJ POISK NA^INAETSQ DO TOGO, KAK POLXZOWATELX ZAKON^IT WWOD STROKI POISKA. pO MERE WWODA O^EREDNYH SIMWOLOW STROKI POISKA, Readline OTOBRAVAET SLEDU@]IJ \LEMENT IZ ISTORII, SOOTWETSTWU@]IJ STROKE, WWEDENNOJ NA DANNYJ MOMENT. nARA]IWAEMYJ POISK TREBUET ROWNO STOLXKO SIMWOLOW, SKOLXKO TREBUETSQ DLQ NAHOVDENIQ VELAEMOGO \LEMENTA ISTORII. dLQ POISKA OPREDELENNOJ STROKI W ISTORII W OBRATNOM NAPRAWLENII, WWEDITE C-r. wWOD C-s PROIZWODIT POISK W PRQMOM NAPRAWLENII. sIMWOLY, PRISUTSTWU@- ]IE W ZNA^ENII PEREMENNOJ isearch-terminators, ISPOLXZU@TSQ DLQ ZAWER[ENIQ NARA]I- WAEMOGO POISKA. eSLI \TOJ PEREMENNOJ NE BYLO PRISWOENO ZNA^ENIE, ZNAKI hESCi I C-J BUDUT ZAWER[ATX NARA]IWAEMYJ POISK. C-g PRERYWAET NARA]IWAEMYJ POISK I WOSSTANAWLIWAET ISHODNU@ STROKU. kOGDA POISK ZAWER[AETSQ, \LEMENT ISTORII, SODERVA]IJ ISKOMU@ STROKU, STANOWITSQ TEKU]EJ STROKOJ.

dLQ NAHOVDENIQ DRUGIH PODHODQ]IH \LEMENTOW SPISKA ISTORII, WWEDITE SOOTWETSTWENNO C-r ILI C-s. |TO PROIZWEDET POISK WPERED ILI NAZAD W ISTORII DO SLEDU@]EGO \LEMENTA, SOOTWETSTWU@]EGO WWEDENNOJ STROKE POISKA. l@BAQ DRUGAQ POSLEDOWATELXNOSTX KLAWI[, PRIWQZANNAQ K KOMANDE Readline, ZAWER[IT POISK I WYPOLNIT \TU KOMANDU. nAPRIMER, hRETi ZAWER[IT POISK I PRIMET \TU STROKU, TAKIM OBRAZOM WYPOLNQQ KOMANDU IZ SPISKA ISTORII.

232

oTLADKA S POMO]X@ GDB

nENARA]IWAEMYJ POISK S^ITYWAET STROKU POISKA CELIKOM, DO NA^ALA POISKA SOOTWETSTWU@]IH STROK ISTORII. sTROKA POISKA MOVET BYTX WWEDENA POLXZOWATELEM ILI QWLQTXSQ ^ASTX@ SODERVIMOGO TEKU]EJ STROKI.

21.3 fAJL INICIALIZACII Readline

hOTQ BIBLIOTEKA Readline POSTAWLQETSQ S USTANOWLENNYM PO UMOL^ANI@ NABOROM PRIWQZOK KLAWI[, ANALOGI^NOMU Emacs, WOZMOVNO ISPOLXZOWANIE DRUGOGO NABORA PRIWQZOK. l@BOJ POLXZOWATELX MOVET NASTRAIWATX PROGRAMMY, KOTORYE ISPOLXZU@T Readline, POME- ]AQ KOMANDY W FAJL inputrc, OBY^NO W SWOEM DOMA[NEM KATALOGE. iMQ \TOGO FAJLA BERETSQ IZ PEREMENNOJ SREDY INPUTRC. eSLI \TA PEREMENNAQ NE USTANOWLENA, PO UMOL^ANI@ BERETSQ FAJL `~/.inputrc'.

kOGDA ZAPUSKAETSQ PROGRAMMA, ISPOLXZU@]AQ BIBLIOTEKU Readline, FAJL INICIALIZACII S^ITYWAETSQ I USTANAWLIWA@TSQ PRIWQZKI KLAWI[.

kROME TOGO, KOMANDA C-x C-r S^ITYWAET FAJL INICIALIZACII ZANOWO, TAK ^TO IZMENENIQ, KOTORYE WY MOGLI cDELATX K \TOMU WREMENI, WSTUPA@T W SILU.

21.3.1 sINTAKSIS FAJLA INICIALIZACII Readline

sU]ESTWU@T WSEGO NESKOLXKO KONSTRUKCIJ, KOTORYE DOPUSKA@TSQ W FAJLE INICIALIZACII Readline. pUSTYE STROKI IGNORIRU@TSQ. sTROKI, NA^INA@]IESQ S `#', QWLQ@TSQ KOMMENTARIQMI. sTROKI, NA^INA@]IESQ S `$', OBOZNA^A@T USLOWNYE KONSTRUKCII (SM. rAZDEL 21.3.2 [uSLOWNYE KONSTRUKCII INICIALIZACII], S. 235). dRUGIE STROKI OBOZNA^A@T USTANOWKU PEREMENNYH I PRIWQZKI KLAWI[.

uSTANOWKA PEREMENNYH

wY MOVETE IZMENQTX POWEDENIE Readline WO WREMQ WYPOLNENIQ POSREDSTWOM IZMENENIQ ZNA^ENIJ PEREMENNYH, ISPOLXZUQ KOMANDU set W FAJLE INICIALIZACII. wOT KAK MOVNO IZMENITX PRIWQZKU KLAWI[ Emacs, ISPOLXZUEMU@ PO UMOL^A- NI@, DLQ ISPOLXZOWANIQ KOMAND REDAKTIROWANIQ STROKI vi:

set editing-mode vi

oSNOWNAQ ^ASTX POWEDENIQ PRI WYPOLNENII IZMENQETSQ S POMO]X@ SLEDU@]IH PEREMENNYH.

bell-style

kONTROLIRUET, ^TO PROISHODIT, KOGDA Readline HO^ET IZDATX ZWUK NA TERMINALE. eSLI USTANOWLENO W `none', Readline NIKOGDA NE IZDAET ZWUK. eSLI USTANOWLENO W `visible', Readline ISPOLXZUET WIZUALXNYJ ZWONOK, ESLI ESTX WOZMOVNOSTX. eSLI USTANOWLENO W `audible' (PO UMOL^ANI@), Readline PYTAETSQ IZDATX ZWUK NA TERMINALE.

comment-begin

sTROKA DLQ WSTAWKI W NA^ALO STROKI, KOGDA WYPOLNQETSQ KOMANDA

`insert-comment'. pO UMOL^ANI@ "#".

completion-ignore-case

eSLI USTANOWLENO W `on', Readline PROIZWODIT PROWERKU SOWPADENIJ I ZAWER[ENIE IMENI FAJLA BEZ U^ETA REGISTRA. pO UMOL^ANI@ `off'.

completion-query-items

kOLI^ESTWO WOZMOVNYH ZAWER[ENIJ, OPREDELQ@]EE, KOGDA U POLXZOWATELQ ZAPRA[IWAETSQ, HO^ET LI ON UWIDETX SPISOK WOZMOVNYH WARIANTOW. eSLI ^ISLO WOZMOVNYH ZAWER[ENIJ BOLX[E \TOGO ZNA^E- NIQ, Readline SPROSIT U POLXZOWATELQ, HO^ET ON IH PROSMOTRETX ILI NET; W PROTIWNOM SLU^AE, ONI PROSTO OTOBRAVA@TSQ. pO UMOL^ANI@ USTANAWLIWAETSQ PREDEL 100.

gLAWA 21: rEDAKTIROWANIE KOMANDNOJ STROKI

233

convert-meta

eSLI USTANOWLENO W `on', Readline BUDET PREOBRAZOWYWATX SIMWOLY S USTANOWLENNYM WOSXMYM BITOM W POSLEDOWATELXNOSTX KLAWI[ ascii, UDALQQ WOSXMOJ BIT I PODSTAWLQQ W KA^ESTWE PREFIKSA ZNAK hESCi, TEM SAMYM PREOBRAZOWYWAQ IH W POSLEDOWATELXNOSTX KLAWI[ S MetaPREFIKSOM. pO UMOL^ANI@ `on'.

disable-completion

eSLI USTANOWLENO W `on', Readline BUDET PREPQTSTWOWATX ZAWER[ENI@ SLOW. zNAKI ZAWER[ENIQ BUDUT WSTAWLQTXSQ W STROKU TAK, KAK ESLI BY ONI OTOBRAVALISX W self-insert. pO UMOL^ANI@ `off'.

editing-mode

pEREMENNAQ editing-mode KONTROLIRUET, KAKOJ NABOR PRIWQZOK KLAWI[ ISPOLXZUETSQ. pO UMOL^ANI@, Readline ZAPUSKAETSQ W REVIME REDAKTIROWANIQ Emacs, GDE NAVATIQ KLAWI[ O^ENX POHOVI NA Emacs. |TA PEREMENNAQ MOVET BYTX USTANOWLENA ILI W `emacs', ILI W `vi'.

enable-keypad

kOGDA USTANOWLENO W `on', Readline BUDET PYTATXSQ AKTIWIZIROWATX MALU@ KLAWIATURU PRILOVENIQ, KOGDA ONA WYZYWAETSQ. |TO TREBUETSQ NEKOTORYM SISTEMAM DLQ AKTIWACII KLAWI[ SO STRELKAMI. pO UMOL^ANI@ `off'.

expand-tilde

eSLI USTANOWLENO W `on', PROIZWODITSQ RASKRYWANIE TILXDY, KOGDA Readline OSU]ESTWLQET ZAWER[ENIE SLOWA. pO UMOL^ANI@ `off'.

horizontal-scroll-mode

|TA PEREMENNAQ MOVET BYTX USTANOWLENA W `on' ILI `off'. uSTANOWKA W `on' OZNA^AET, ^TO TEKST W REDAKTIRUEMYH STROKAH BUDET PROKRU^IWATXSQ GORIZONTALXNO W ODNOJ STROKE \KRANA, KOGDA [IRINA STROKI STANOWITSQ BOLX[E [IRINY \KRANA, WMESTO PERENOSA NA NOWU@ STROKU. pO UMOL^ANI@, \TA PEREMENNAQ USTANOWLENA W `off'.

input-meta

eSLI USTANOWLENO W `on', Readline WKL@^IT WOSXMIBITOWYJ WWOD (WOSXMOJ BIT NE BUDET UDALQTXSQ IZ S^ITYWAEMYH SIMWOLOW) NEZAWISIMO OT TOGO, PODDERVIWAET LI \TO TERMINAL. zNA^ENIE PO UMOL- ^ANI@ `off'. iMQ meta-flag QWLQETSQ SINONIMOM DLQ \TOJ PEREMENNOJ.

isearch-terminators

sTROKA IZ ZNAKOW, KOTORYE DOLVNY PREKRA]ATX NARA]IWAEMYJ POISK BEZ POSLEDU@]EGO WYPOLNENIQ ZNAKA KAK KOMANDY (SM. rAZDEL 21.2.5 [pOISK W ISTORII], S. 231). eSLI \TOJ PEREMENNOJ NE PRISWOENO ZNA^ENIE, NARA]IWAEMYJ POISK PREKRA]A@T ZNAKI hESCi I

C-J.

keymap uSTANAWLIWAET TEKU]U@ RASKLADKU KLAWIATURY Readline DLQ PRIWQZOK KOMAND K KLAWI[AM. wOZMOVNYE IMENA DLQ keymap: emacs, emacs-standard, emacs-meta, emacs-ctlx, vi, vi-command I viinsert. vi \KWIWALENTNO vi-command; emacs \KWIWALENTNO emacsstandard. zNA^ENIE PO UMOL^ANI@ emacs. zNA^ENIE PEREMENNOJ editing-mode TAKVE WLIQET NA RASKLADKU PO UMOL^ANI@.

mark-directories

eSLI USTANOWLENO W `on', K IMENAM KATALOGOW POSLE ZAWER[ENIQ DOBAWLQETSQ KOSAQ ^ERTA. pO UMOL^ANI@ `on'.

234

oTLADKA S POMO]X@ GDB

mark-modified-lines

|TA PEREMENNAQ, BUDU^I USTANOWLENA W `on', WELIT Readline OTOBRAVATX ZWEZDO^KU (`*') W NA^ALE TEH STROK ISTORII, KOTORYE BYLI MODIFICIROWANY. pO UMOL^ANI@, \TA PEREMENNAQ USTANOWLENA W

`off'.

output-meta

eSLI USTANOWLENO W `on', Readline BUDET OTOBRAVATX ZNAKI S USTANOWLENNYM WOSXMYM BITOM NEPOSREDSTWENNO, A NE W WIDE \KRANIRU- @]IH POSLEDOWATELXNOSTEJ S Meta-PREFIKSOM. pO UMOL^ANI@ `off'.

print-completions-horizontally

eSLI USTANOWLENO W `on', Readline BUDET OTOBRAVATX ZAWER[ENIQ, OTSORTIROWANNYE GORIZONTALXNO W ALFAWITNOM PORQDKE, A NE WNIZ PO \KRANU. pO UMOL^ANI@ `off'.

show-all-if-ambiguous

|TO IZMENQET POWEDENIE PO UMOL^ANI@ FUNKCIJ ZAWER[ENIQ. pRI USTANOWKE W `on', ESLI SLOWO IMEET BOLEE ODNOGO WOZMOVNOGO ZAWER- [ENIQ, ONI BUDUT WYWODITXSQ NEMEDLENNO, WMESTO PODA^I SIGNALA. pO UMOL^ANI@ `off'.

visible-stats

eSLI USTANOWLENO W `on', PRI WYWODE WOZMOVNYH ZAWER[ENIJ, K IMENI FAJLA DOBAWLQETSQ ZNAK, OBOZNA^A@]IJ TIP FAJLA. pO UMOL^A- NI@ `off'.

pRIWQZKI KLAWI[

sINTAKSIS DLQ UPRAWLENIQ PRIWQZKAMI KLAWI[ W FAJLE INICIALIZACII PROST. wO-PERWYH, WY DOLVNY NAJTI IMQ KOMANDY, KOTORU@ WY HOTITE IZMENITX. sLEDU@]IJ RAZDEL SODERVIT TABLICY S IMENEM KOMANDY, PRIWQZKOJ KLAWI[ PO UMOL^ANI@, ESLI TAKOWYE ESTX, I KOROTKIM OPISANIEM, ^TO DELAET KOMANDA.

eSLI WY ZNAETE IMQ KOMANDY, PROSTO POMESTITE W STROKE FAJLA INICIALIZACII NAZWANIE KLAWI[I, K KOTOROJ WY HOTITE PRIWQZATX KOMANDU, DWOETO^IE, I ZATEM IMQ KOMANDY. nAZWANIE KLAWI[I MOVET BYTX WYRAVENO RAZLI^NYMI SPOSOBAMI, W ZAWISIMOSTI OT TOGO, KAK WAM UDOBNEE.

NAZW-KLAWI[I: IMQ-FUNKCII ILI MAKROS

NAZW-KLAWI[I|\TO NAZWANIE KLAWI[I, ZAPISANNOE PO-ANGLIJSKI. nAPRIMER:

Control-u: universal-argument

Meta-Rubout: backward-kill-word

Control-o: "> output"

w \TOM PRIMERE, C-u PRIWQZANA K FUNKCII universal-argument, A C-o PRIWQZANA K WYPOLNENI@ MAKROKOMANDY, ZAPISANNOJ S PRAWOJ STORONY (TO ESTX, WSTAWITX TEKST `> output' W STROKU).

"POSLED-KLAWI[": IMQ-FUNKCII ILI MAKRO

POSLED-KLAWI[ OTLI^AETSQ OT WY[EUPOMQNUTOGO NAZW-KLAWI[I TEM, ^TO POZWOLQET OPREDELQTX STROKI, OBOZNA^A@]IE CELU@ POSLEDOWATELXNOSTX KLAWI[, POSREDSTWOM EE ZAKL@^ENIQ W DWOJNYE KAWY^- KI. mOGUT BYTX ISPOLXZOWANY NEKOTORYE \KRANIRU@]IE POSLEDOWATELXNOSTI W STILE gnu Emacs, KAK W SLEDU@]EM PRIMERE, NO IMENA SPECIALXNYH ZNAKOW NE RASPOZNA@TSQ.

"\C-u": universal-argument "\C-x\C-r": re-read-init-file

gLAWA 21: rEDAKTIROWANIE KOMANDNOJ STROKI

235

"\e[11~": "Function Key 1"

w \TOM PRIMERE, C-u PRIWQZYWAETSQ K FUNKCII universal-argument (KAK \TO BYLO W PERWOM PRIMERE), `C-x C-r' PRIWQZYWAETSQ K FUNKCII re-read-init-file I `hESCi [ 1 1 ~' PRIWQZYWAETSQ K WSTAWKE TEKSTA `Function Key 1'.

sLEDU@]IE \KRANIRU@]IE POSLEDOWATELXNOSTI W STILE gnu Emacs DOSTUPNY PRI OPREDELENII POSLEDOWATELXNOSTI KLAWI[:

\C- PREFIKS Control

\M- PREFIKS Meta

\e

PREFIKS \KRANIRU@]EGO ZNAKA

\\OBRATNAQ KOSAQ ^ERTA

\" h"i, ZNAK DWOJNYH KAWY^EK

\'

h'i, ODINARNAQ KAWY^KA ILI APOSTROF

w DOPOLNENIE K \KRANIRU@]IM POSLEDOWATELXNOSTQM STILQ gnu Emacs, DOSTUPEN WTOROJ NABOR POSLEDOWATELXNOSTEJ S OBRATNOJ KOSOJ ^ERTOJ:

\a

TREWOGA (ZWUKOWOJ SIGNAL)

\b

PEREMESTITXSQ NAZAD NA ODNU POZICI@

\d

UDALENIE

\f

PEREWOD STRANICY

\n

NOWAQ STROKA

\r

WOZWRAT KARETKI

\t

GORIZONTALXNAQ TABULQCIQ

\v

WERTIKALXNAQ TABULQCIQ

\nnn

ZNAK, WOSXMERI^NOE ZNA^ENIE KODA ASCII KOTOROGO ESTX nnn (OT ODNOJ

 

DO TREH CIFR)

\xnnn

ZNAK, [ESTNADCATERI^NOE ZNA^ENIE KODA ASCII KOTOROGO ESTX nnn

 

(OT ODNOJ DO TREH CIFR)

pRI WWODE TEKSTA MAKROKOMANDY, DLQ OBOZNA^ENIQ EE OPREDELENIQ DOLVNY ISPOLXZOWATXSQ ODINO^NYE ILI DWOJNYE KAWY^KI. pREDPOLAGAETSQ, ^TO TEKST BEZ KAWY^EK QWLQETSQ IMENEM FUNKCII. w TELE MAKROKOMANDY, \KRANIRU@]IE POSLEDOWATELXNOSTI S OBRATNOJ KOSOJ ^ERTOJ RASKRYWA@TSQ. oBRATNAQ KOSAQ ^ERTA BUDET \KRANIROWATX L@BOJ DRUGOJ ZNAK W TEKSTE MAKROKOMANDY, WKL@^AQ `"' I `''. nAPRIMER, SLEDU@]AQ PRIWQZKA WELIT `C-x \' WSTAWLQTX ODINO^NU@ `\' W STROKU:

"\C-x\\": "\\"

21.3.2 uSLOWNYE KONSTRUKCII INICIALIZACII

Readline REALIZUET WOZMOVNOSTI, ANALOGI^NYE PO SMYSLU WOZMOVNOSTQM USLOWNOJ KOMPILQCII PREPROCESSORA sI, POZWOLQ@]IE PROIZWODITX PRIWQZKI KLAWI[ I USTANOWKU PEREMENNYH W REZULXTATE TESTOW. wOT ^ETYRE DIREKTIWY, ISPOLXZUEMYE ANALIZATOROM.

$if kONSTRUKCIQ $if POZWOLQET PROIZWODITX PRIWQZKI W ZAWISIMOSTI OT REVIMA REDAKTIROWANIQ, ISPOLXZUEMOGO TERMINALA, ILI PRILOVENIQ, ISPOLXZU@]EGO Readline. sODERVIMOE TESTA PRODOLVAETSQ DO KONCA STROKI; DLQ EGO OGRANI^E- NIQ NE TREBU@TSQ NIKAKIE ZNAKI.

236

oTLADKA S POMO]X@ GDB

mode fORMA mode= DIREKTIWY $if ISPOLXZUETSQ DLQ PROWERKI W KAKOM IZ REVIMOW NAHODITSQ Readline: emacs ILI vi. |TO MOVET BYTX ISPOLXZOWANO, NAPRIMER, WMESTE S KOMANDOJ `set keymap' DLQ USTANOWKI PRIWQZOK W NABORY emacs-standard I emacs-ctlx, TOLXKO ESLI Readline ZAPUSKAETSQ W REVIME emacs.

term fORMA term= MOVET ISPOLXZOWATXSQ DLQ WKL@^ENIQ PRIWQZOK KLAWI[, UNIKALXNYH DLQ KAKOGO-LIBO TERMINALA, WOZMOVNO DLQ PRIWQZKI WYWODA POSLEDOWATELXNOSTI KLAWI[ K FUNKCIONALXNYM KLAWI[AM TERMINALA. sLOWO, STOQ]EE SPRAWA OT `=', SRAWNIWAETSQ KAK S POLNYM NAZWANIEM TERMINALA, TAK I S ^ASTX@ NAZWANIQ, IDU]EJ DO PERWOGO `-'. |TO POZWOLQET, NAPRIMER, OPOZNAWATX KAK sun, TAK I sun-cmd.

application

kONSTRUKCIQ application ISPOLXZUETSQ DLQ WKL@^ENIQ USTANOWOK, UNIKALXNYH DLQ KAKOGO-LIBO PRILOVENIQ. kAVDAQ PROGRAMMA, ISPOLXZU@]AQ BIBLIOTEKU Readline, USTANAWLIWAET application name, I WY MOVETE PROWERITX EGO. |TO MOVET BYTX ISPOLXZOWANO DLQ PRIWQZKI POSLEDOWATELXNOSTEJ KLAWI[ K FUNKCIQM, POLEZNYM W KONKRETNOJ PROGRAMME. nAPRIMER, SLEDU@]AQ KOMANDA DOBAWLQET POSLEDOWATELXNOSTX, KOTORAQ ZAKL@^AET W KAWY^KI TEKU]EE ILI PREDYDU]EE SLOWO W Bash:

$if Bash

# Quote the current or previous word "\C-xq": "\eb\"\ef\""

$endif

$endif |TA KOMANDA, KAK POKAZANO W PREDYDU]EM PRIMERE, ZAKAN^IWAET KOMANDU $if.

$else kOMANDY \TOJ WETWI DIREKTIWY $if WYPOLNQ@TSQ, ESLI PROWERKA ZAKAN^IWAETSQ NEUDA^EJ.

$include |TA DIREKTIWA PRINIMAET W KA^ESTWE ARGUMENTA ODNO IMQ FAJLA I S^ITYWAET IZ NEGO KOMANDY I PRIWQZKI KLAWI[.

$include /etc/inputrc

21.3.3 pRIMER FAJLA INICIALIZACII

wOT PRIMER FAJLA inputrc. oN ILL@STRIRUET PRIWQZKI KLAWI[, PRISWOENIE ZNA^ENIJ PEREMENNYM I SINTAKSIS USLOWIJ.

gLAWA 21: rEDAKTIROWANIE KOMANDNOJ STROKI

237

#|TOT FAJL UPRAWLQET POWEDENIEM REDAKTIROWANIQ STROKI WWODA W

#PROGRAMMAH, ISPOLXZU@]IH BIBLIOTEKU Gnu Readline. sREDI TAKIH PROGRAMM

#FTP, Bash, I Gdb.

#

# wY MOVETE ZANOWO S^ITATX FAJL inputrc S POMO]X@ C-x C-r.

#sTROKI, NA^INA@]IESQ S '#', QWLQ@TSQ KOMMENTARIQMI.

#sNA^ALA, WKL@^IM WSE OB]ESISTEMNYE PRIWQZKI I PEREMENNYE IZ

#/etc/Inputrc

$include /etc/Inputrc

#

# uSTANOWKA RAZLI^NYH PRIWQZOK DLQ REVIMA emacs.

set editing-mode emacs

$if mode=emacs

Meta-Control-h: backward-kill-word tEKST POSLE IMENI FUNKCII IGNORIRUETSQ

#

# sTRELKI W REVIME MALOJ KLAWIATURY

#

#"\M-OD":

backward-char

#"\M-OC":

forward-char

#"\M-OA":

previous-history

#"\M-OB":

next-history

#

 

# sTREKLI W REVIME ANSI

#

 

"\M-[D":

backward-char

"\M-[C":

forward-char

"\M-[A":

previous-history

"\M-[B":

next-history

#

 

# sTRELKI W WOSXMIBITNOM REVIME MALOJ KLAWIATURY

#

 

#"\M-\C-OD":

backward-char

#"\M-\C-OC":

forward-char

#"\M-\C-OA":

previous-history

#"\M-\C-OB":

next-history

#

 

# sTRELKI W WOSXMIBITOWOM REVIME ANSI

#

#"\M-\C-[D":

backward-char

#"\M-\C-[C":

forward-char

#"\M-\C-[A":

previous-history

#"\M-\C-[B":

next-history

C-q: quoted-insert

238

oTLADKA S POMO]X@ GDB

$endif

#pRIWQZKI STAROGO STILQ. uSTANAWLIWAETSQ PO UMOL^ANI@. TAB: complete

#mAKROKOMANDY, UDOBNYE PRI WZAIMODEJSTWII S OBOLO^KOJ $if Bash

#REDAKTIROWANIE PUTI

"\C-xp": "PATH=${PATH}\e\C-e\C-a\ef\C-f"

#pODGOTOWKA K WWODU SLOWA W KAWY^KAH - WSTAWLQET OTKRYWA@]U@SQ I

#ZAKRYWA@]U@SQ DWOJNYE KAWY^KI I POME]AET KURSOR SRAZU ZA OTKRYWA@]EJ

"\C-x\"": "\"\"\C-b"

#WSTAWLQET OBRATNU@ KOSU@ ^ERTU (testing backslash escapes in sequences

# and macros) "\C-x\\": "\\"

#zAKL@^AET W KAWY^KI TEKU]EE ILI PREDYDU]EE SLOWO

"\C-xq": "\eb\"\ef\""

#dOBAWLQET PRIWQZKU DLQ OBNOWLENIQ STROKI, KOTORAQ NEPRIWQZANA

"\C-xr": redraw-current-line

#rEDAKTIROWANIE PEREMENNOJ W TEKU]EJ STROKE

"\M-\C-v": "\C-a\C-k$\C-y\M-\C-e\C-a\C-y=" $endif

# ISPOLXZOWATX WIZUALXNYJ ZWONOK, ESLI ON DOSTUPEN set bell-style visible

#NE UREZATX SIMWOLY PRI ^TENII DO 7 BIT set input-meta on

#POZWOLQET WWOD SIMWOLOW iso-latin1, WMESTO IZ PREOBRAZOWANIQ K

#POSLEDOWATELXNOSTQM S Meta-PREFIKSOM

#prefix-meta sequences

set convert-meta off

#OTOBRAVAET SIMWOLY NEPOSREDSTWENNO S USTANOWLENNYM WOSXMYM BITOM, A NE

#W WIDE ZNAKOW S Meta-PREFIKSOM

set output-meta on

#ESLI SU]ESTWUET BOLEE 150 WOZMOVNYH ZAWER[ENIJ SLOWA, ZAPROSITX

#POLXZOWATELQ, HO^ET LI ON WIDETX IH WSE

set completion-query-items 150

# dLQ FTP $if Ftp

"\C-xg": "get \M-?" "\C-xt": "put \M-?" "\M-.": yank-last-arg $endif

gLAWA 21: rEDAKTIROWANIE KOMANDNOJ STROKI

239

21.4 pRIWQZYWAEMYE KOMANDY Readline

|TOT RAZDEL OPISYWAET KOMANDY Readline, KOTORYE MOGUT BYTX PRIWQZANY K POSLEDOWATELXNOSTQM KLAWI[.

21.4.1 kOMANDY DLQ PEREME]ENIQ

beginning-of-line (C-a)

pEREMESTITXSQ W NA^ALO TEKU]EJ STROKI.

end-of-line (C-e)

pEREMESTITXSQ W KONEC STROKI.

forward-char (C-f)

pEREMESTITXSQ NA ODIN ZNAK WPERED.

backward-char (C-b)

pEREMESTITXSQ NAZAD NA ODIN ZNAK.

forward-word (M-f)

pEREMESTITXSQ WPERED DO KONCA SLEDU@]EGO SLOWA. sLOWA SOSTAWLQ@TSQ IZ BUKW I CIFR.

backward-word (M-b)

pEREMESTITXSQ NAZAD K NA^ALU TEKU]EGO ILI PREDYDU]EGO SLOWA. sLOWA SOSTAWLQ@TSQ IZ BUKW I CIFR.

clear-screen (C-l)

o^ISTITX \KRAN I PERERISOWATX TEKU]U@ STROKU, OSTAWLQQ EE NAWERHU \KRANA.

redraw-current-line ()

oBNOWITX TEKU]U@ STROKU. pO UMOL^ANI@ NE PRIWQZANA.

21.4.2 kOMANDY DLQ MANIPULQCII ISTORIEJ

accept-line (Newline, Return)

wWOD STROKI NEZAWISIMO OT POLOVENIQ KURSORA. eSLI STROKA NEPUSTA, DOBAWITX EE K SPISKU ISTORII. eSLI \TA STROKA BYLA STROKOJ ISTORII, TO WOSSTANOWITX STROKU ISTORII DO EE PERWONA^ALXNOGO SOSTOQNIQ.

previous-history (C-p)

pEREMESTITXSQ `WWERH' PO SPISKU ISTORII.

next-history (C-n)

pEREMESTITXSQ `WNIZ' PO SPISKU ISTORII.

beginning-of-history (M-<)

pEREMESTITXSQ K PERWOJ STROKE ISTORII.

end-of-history (M->)

pEREMESTITXSQ W KONEC ISTORII WWODA, TO ESTX K STROKE, KOTORAQ SEJ^AS REDAKTIRUETSQ.

reverse-search-history (C-r)

oBRATNYJ POISK NA^INAQ S TEKU]EJ STROKI I PEREME]AQSX PO MERE NEOBHODIMOSTI `WWERH' PO ISTORII. |TO NARA]IWAEMYJ POISK.

240

oTLADKA S POMO]X@ GDB

forward-search-history (C-s)

pRQMOJ POISK NA^INAQ S TEKU]EJ STROKI I PEREME]AQSX PO MERE NEOBHODIMOSTI `WNIZ' PO ISTORII. |TO NARA]IWAEMYJ POISK.

non-incremental-reverse-search-history (M-p)

oBRATNYJ POISK NA^INAQ S TEKU]EJ STROKI I PEREME]AQSX PO MERE NEOBHODIMOSTI `WWERH' PO ISTORII, ISPOLXZUQ NENARA]IWAEMYJ POISK STROKI, ZADANNOJ POLXZOWATELEM.

non-incremental-forward-search-history (M-n)

pRQMOJ POISK NA^INAQ S TEKU]EJ STROKI I PEREME]AQSX PO MERE NEOBHODIMOSTI `WNIZ' PO ISTORII, ISPOLXZUQ NENARA]IWAEMYJ POISK STROKI, ZADANNOJ POLXZOWATELEM.

history-search-forward ()

pRQMOJ POISK W ISTORII STROKI SIMWOLOW MEVDU NA^ALOM TEKU]EJ STROKI I TO^KOJ. |TO NENARA]IWAEMYJ POISK. pO UMOL^ANI@ \TA KOMANDA NE PRIWQZANA.

history-search-backward ()

oBRATNYJ POISK W ISTORII STROKI SIMWOLOW MEVDU NA^ALOM TEKU]EJ STROKI I TO^KOJ. |TO NENARA]IWAEMYJ POISK. pO UMOL^ANI@ \TA KOMANDA NE PRIWQZANA.

yank-nth-arg (M-C-y)

wSTAWITX PERWYJ ARGUMENT PREDYDU]EJ KOMANDY (OBY^NO WTOROE SLOWO PREDYDU]EJ STROKI). s ARGUMENTOM n, WSTAWLQET n-NOE SLOWO IZ PREDYDU]EJ KOMANDY (SLOWA W PREDYDU]EJ KOMANDE NA^INA@TSQ SO SLOWA 0). oTRICATELXNYJ ARGUMENT WSTAWLQET n-NOE S KONCA SLOWO PREDYDU]EJ KOMANDY.

yank-last-arg (M-., M-_)

wSTAWITX POSLEDNIJ ARGUMENT PREDYDU]EJ KOMANDY (POSLEDNEE SLOWO PREDYDU]EGO \LEMENTA ISTORII). s ARGUMENTOM, WEDET SEBQ TO^NO TAK VE, KAK yank- nth-arg. pOSLEDOWATELXNYE WYZOWY yank-last-arg PEREME]A@T NAZAD PO SPISKU ISTORII, WSTAWLQQ POSLEDNIJ ARGUMENT KAVDOJ STROKI PO O^EREDI.

21.4.3 kOMANDY DLQ IZMENENIQ TEKSTA

delete-char (C-d)

uDALITX SIMWOL W POZICII KURSORA. eSLI KURSOR NAHODITSQ W NA^ALE STROKI, W STROKE NET SIMWOLOW I POSLEDNIJ NABRANNYJ ZNAK NE BYL PRIWQZAN K deletechar, WOZWRA]AET eof.

backward-delete-char (Rubout)

uDALITX SIMWOL ZA KURSOROM. ~ISLOWOJ PARAMETR PREDPISYWAET UNI^TOVATX SIMWOLY, A NE UDALQTX IH.

forward-backward-delete-char ()

uDALITX SIMWOL POD KURSOROM, ESLI NE NAHODITSQ W KONCE STROKI, W \TOM SLU^AE UDALQETSQ SIMWOL ZA KURSOROM. pO UMOL^ANI@, \TA FUNKCIQ NE PRIWQZANA K KAKOJ-LIBO KLAWI[E.

quoted-insert (C-q, C-v)

dOBAWITX W STROKU SLEDU@]IJ WWEDENNYJ ZNAK, KAKIM BY ON NI BYL. tAKIM OBRAZOM MOVNO WSTAWITX POSLEDOWATELXNOSTX KLAWI[, NAPRIMER C-q.

tab-insert (M-TAB)

wSTAWITX ZNAK TABULQCII.

gLAWA 21: rEDAKTIROWANIE KOMANDNOJ STROKI

241

self-insert (a, b, A, 1, !, ...)

|TI SIMWOLY WSTAWLQ@T SAMI SEBQ.

transpose-chars (C-t)

pEREMESTITX ZNAK PERED KURSOROM WPERED ZA ZNAK POD KURSOROM, TAKVE PEREME- ]AQ KURSOR WPERED. eSLI TO^KA WSTAWKI NAHODITSQ W KONCE STROKI, TO PERESTAWITX POSLEDNIE DWA ZNAKA W STROKE. oTRICATELXNYE ARGUMENTY NE OKAZYWA@T DEJSTWIQ.

transpose-words (M-t)

pEREMESTITX SLOWO PERED TO^KOJ ZA SLOWO POSLE TO^KI. tAKVE PEREME]AET TO^KU ZA \TO SLOWO.

upcase-word (M-u)

pEREWESTI W WERHNIJ REGISTR TEKU]EE (ILI SLEDU@]EE) SLOWO. s OTRICATELXNYM ARGUMENTOM, PEREWODIT W WERHNIJ REGISTR PREDYDU]EE SLOWO, NO NE PEREME]AET KURSOR.

downcase-word (M-l)

pEREWESTI W NIVNIJ REGISTR TEKU]EE (ILI SLEDU@]EE) SLOWO. s OTRICATELXNYM ARGUMENTOM PEREWODIT W NIVNIJ REGISTR PREDYDU]EE SLOWO, NO NE PEREME]AET KURSOR.

capitalize-word (M-c)

pEREWESTI TEKU]EE (ILI PREDYDU]EE) SLOWO W NIVNIJ REGISTR S PERWOJ ZAGLAWNOJ BUKWOJ. s OTRICATELXNYM ARGUMENTOM, DEJSTWUET NA PREDYDU]EE SLOWO, NO NE PEREME]AET KURSOR.

21.4.4 uNI^TOVENIE I WOSSTANOWLENIE

kill-line (C-k)

uNI^TOVITX TEKST OT TO^KI DO KONCA STROKI.

backward-kill-line (C-x Rubout)

uNI^TOVITX NAZAD DO NA^ALA STROKI.

unix-line-discard (C-u)

uNI^TOVITX NAZAD OT KURSORA DO NA^ALA TEKU]EJ STROKI.

kill-whole-line ()

uNI^TOVITX WSE SIMWOLY W TEKU]EJ STROKE, NEZAWISIMO OT POZICII TO^KI. pO UMOL^ANI@ \TA FUNKCIQ NE PRIWQZANA.

kill-word (M-d)

uNI^TOVITX OT TO^KI DO KONCA TEKU]EGO SLOWA, ILI, ESLI KURSOR NAHODITSQ MEVDU SLOWAMI, DO KONCA SLEDU@]EGO SLOWA. gRANICY SLOWA TAKIE VE, KAK DLQ forward-word.

backward-kill-word (M-DEL)

uNI^TOVITX SLOWO ZA TO^KOJ. gRANICY SLOWA TAKIE VE, KAK DLQ backward-word.

unix-word-rubout (C-w)

uNI^TOVAET SLOWO ZA TO^KOJ, ISPOLXZUQ W KA^ESTWE GRANICY SLOWA PROBELY. uNI^TOVENNYJ TEKST SOHRANQETSQ W KOLXCEWOM SPISKE UNI^TOVENIJ.

delete-horizontal-space ()

uDALITX WSE PROBELY I ZNAKI TABULQCII WOKRUG TO^KI. pO UMOL^ANI@ \TA FUNKCIQ NE PRIWQZANA.

242

oTLADKA S POMO]X@ GDB

kill-region ()

uNI^TOVITX TEKST W TEKU]EJ OBLASTI. |TA FUNKCIQ PO UMOL^ANI@ NE PRIWQZANA.

copy-region-as-kill ()

kOPIROWATX TEKST OBLASTI W BUFER UNI^TOVENIQ, TAK ^TO ON MOVET BYTX SRAZU WOSSTANOWLEN. |TA KOMANDA PO UMOL^ANI@ NE PRIWQZANA.

copy-backward-word ()

kOPIROWATX SLOWO PERED TO^KOJ W BUFER UNI^TOVENIJ. gRANICY SLOWA TAKIE VE, KAK DLQ backward-word. |TA KOMANDA PO UMOL^ANI@ NE PRIWQZANA.

copy-forward-word ()

kOPIROWATX SLOWO, SLEDU@]EE ZA TO^KOJ, W BUFER UNI^TOVENIJ. gRANICY SLOWA TAKIE VE, KAK DLQ forward-word. |TA KOMANDA PO UMOL^ANI@ NE PRIWQZANA.

yank (C-y)

wOSSTANOWITX WER[INU KOLXCEWOGO SPISKA UNI^TOVENIJ W BUFER W TEKU]U@ POZICI@ KURSORA.

yank-pop (M-y)

cIKLI^ESKIJ SDWIG KOLXCEWOGO SPISKA UNI^TOVENIJ I WOSSTANOWLENIE NOWOJ WER[INY. wY MOVETE ISPOLXZOWATX \TU KOMANDU TOLXKO ESLI PREDYDU]EJ KOMANDOJ BYLA yank ILI yank-pop.

21.4.5 oPREDELENIE ^ISLOWYH PARAMETROW

digit-argument (M-0, M-1, ... M-)

dOBAWITX \TU CIFRU K WWODIMOMU ARGUMENTU, ILI NA^ATX NOWYJ ARGUMENT. M- NA^INAET OTRICATELXNYJ ARGUMENT.

universal-argument ()

|TO DRUGOJ SPOSOB ZADATX ARGUMENT. eSLI ZA \TOJ KOMANDOJ SLEDU@T ODNA ILI NESKOLXKO CIFR, WOZMOVNO SO ZNAKOM MINUS W NA^ALE, TO ONI OPREDELQ@T ARGUMENT. eSLI ZA KOMANDOJ SLEDU@T CIFRY, POWTORNOE WYPOLNENIE universalargument ZAKAN^IWAET ^ISLOWOJ ARGUMENT, A W PROTIWNOM SLU^AE ON IGNORIRUETSQ. w OSOBOM SLU^AE, ESLI NEPOSREDSTWENNO ZA \TOJ KOMANDOJ SLEDUET ILI CIFRA, ILI ZNAK MINUS, ARGUMENT DLQ SLEDU@]EJ KOMANDY UMNOVAETSQ NA ^E- TYRE. iZNA^ALXNO ARGUMENT RAWEN EDINICE, TAK ^TO WYPOLNENIE \TOJ FUNKCII PERWYJ RAZ DELAET EGO RAWNYM ^ETYREM, WTOROJ RAZ|[ESTNADCATI, I TAK DALEE. pO UMOL^ANI@ \TA FUNKCIQ NE PRIWQZANA K KLAWI[E.

21.4.6 Readline WWODIT ZA WAS

complete (hTABi)

pYTAETSQ ZAWER[ITX TEKST PERED KURSOROM. dEJSTWIE FUNKCII ZAWISIT OT PRILOVENIQ. oBY^NO, ESLI WY WWODITE IMQ FAJLA, WY MOVETE WYPOLNITX ZAWER- [ENIE IMENI FAJLA; ESLI WY WWODITE KOMANDU, WY MOVETE ZAWER[ITX KOMANDU; ESLI WWODITE SIMWOL DLQ GDB, MOVETE WYPOLNITX ZAWER[ENIE IMENI SIMWOLA; ESLI WY WWODITE PEREMENNU@ DLQ Bash, MOVETE ZAWER[ITX IMQ PEREMENNOJ, I TAK DALEE.

possible-completions (M-?)

pERE^ISLITX WOZMOVNYE ZAWER[ENIQ TEKSTA PERED KURSOROM.

gLAWA 21: rEDAKTIROWANIE KOMANDNOJ STROKI

243

insert-completions (M-*)

wSTAWITX WSE ZAWER[ENIQ TEKSTA PERED TO^KOJ, KOTORYE BYLI BY SOZDANY possible-completions.

menu-complete ()

aNALOGI^NO complete, NO ZAME]AET ZAWER[AEMOE SLOWO ODNIM SOWPADENIEM IZ SPISKA WOZMOVNYH ZAWER[ENIJ. pOWTORQEMOE WYPOLNENIE menu-complete OBHODIT SPISOK WOZMOVNYH ZAWER[ENIJ, WSTAWLQQ KAVDOE SOWPADENIE PO O^EREDI. w KONCE SPISKA ZAWER[ENIJ IZDAETSQ ZWUKOWOJ SIGNAL I WOSSTANAWLIWAETSQ ISHODNYJ TEKST. aRGUMENT n PEREME]AET NA n POZICIJ WPERED W SPISKE SOWPADENIJ; OTRICATELXNYJ ARGUMENT MOVET ISPOLXZOWATXSQ DLQ PEREME]ENIQ PO SPISKU NAZAD. |TA KOMANDA PREDNAZNA^AETSQ DLQ PRIWQZKI K hTABi, NO PO UMOL^ANI@ NE PRIWQZANA.

delete-char-or-list ()

uDALQET ZNAK W POZICII KURSORA, ESLI ON NE NAHODITSQ W NA^ALE ILI KONCE STROKI (KAK delete-char). eSLI KURSOR NAHODITSQ W KONCE STROKI, POWEDENIE ANALOGI^NO possible-completions. |TA KOMANDA PO UMOL^ANI@ NE PRIWQZANA.

21.4.7 kLAWIATURNYE MAKROSY

start-kbd-macro (C-x ()

nA^ATX SOHRANENIE WWODIMYH SIMWOLOW W TEKU]IJ KLAWIATURNYJ MAKROS.

end-kbd-macro (C-x ))

pREKRATITX SOHRANENIE WWODIMYH SIMWOLOW W TEKU]IJ KLAWIATURNYJ MAKROS I ZAPOMNITX EGO OPREDELENIE.

call-last-kbd-macro (C-x e)

wYPOLNITX POSLEDNIJ OPREDELENNYJ KLAWIATURNYJ MAKROS, WYWODQ SIMWOLY MAKROSA TAK, KAK ESLI BY ON NABIRALSQ NA KLAWIATURE.

21.4.8 nEKOTORYE DRUGIE KOMANDY

re-read-init-file (C-x C-r)

s^ITATX SODERVANIE FAJLA inputrc, I PODKL@^ITX L@BYE NAJDENNYE TAM PRIWQZKI KLAWI[ I PRISWOENIQ PEREMENNYH.

abort (C-g)

pRERWATX TEKU]U@ KOMANDU REDAKTIROWANIQ I IZDATX ZWUK NA TERMINALE (ZAWISIT OT USTANOWKI bell-style).

do-uppercase-version (M-a, M-b, M-x, ...)

eSLI METAFICIROWANNYJ ZNAK x NAHODITSQ W NIVNEM REGISTRE, WYPOLNITX KOMANDU, PRIWQZANNU@ K SOOTWETSTWU@]EMU SIMWOLU W WERHNEM REGISTRE.

prefix-meta (hESCi)

mETAFICIROWATX SLEDU@]IJ WWEDENNYJ WAMI SIMWOL. |TO DLQ KLAWIATUR, NE IME@]IH KLAWI[I Meta. wWOD `hESCi f' \KWIWALENTEN WWODU M-f.

undo (C-_, C-x C-u)

nARA]IWAEMAQ OTMENA, ZAPOMINAEMAQ OTDELXNO DLQ KAVDOJ STROKI.

revert-line (M-r)

oTMENITX WSE IZMENENIQ, SDELANNYE W \TOJ STROKE. |TO ANALOGI^NO WYPOLNENI@ DOSTATO^NOGO ^ISLA RAZ KOMANDY undo, ^TOBY WERNUTXSQ W NA^ALO.

244

oTLADKA S POMO]X@ GDB

tilde-expand (M-~)

wYPOLNITX RASKRYWANIE ZNAKA TILXDY DLQ TEKU]EGO SLOWA.

set-mark (C-@)

uSTANOWITX OTMETKU W TEKU]EJ TO^KE. eSLI ZADAN ^ISLOWOJ ARGUMENT, OTMETKA USTANAWLIWAETSQ W UKAZANNOJ POZICII.

exchange-point-and-mark (C-x C-x)

pOMENQTX MESTAMI TO^KU I OTMETKU. tEKU]AQ POZICIQ KURSORA USTANAWLIWAETSQ W SOHRANENNU@ POZICI@, A STAROE POLOVENIE KURSORA ZAPOMINAETSQ KAK OTMETKA.

character-search (C-])

s^ITYWAETSQ SIMWOL, I TO^KA PEREME]AETSQ K SLEDU@]EMU POQWLENI@ \TOGO SIMWOLA. oTRICATELXNYJ ARGUMENT PROIZWODIT POISK WHOVDENIQ SIMWOLA W OBRATNOM NAPRAWLENII.

character-search-backward (M-C-])

s^ITYWAETSQ SIMWOL, I TO^KA PEREME]AETSQ K PREDYDU]EMU POQWLENI@ \TOGO SIMWOLA. oTRICATELXNYJ ARGUMENT PROIZWODIT POISK POSLEDU@]IH WHOVDENIJ SIMWOLA.

insert-comment (M-#)

zNA^ENIE PEREMENNOJ comment-begin WSTAWLQETSQ W NA^ALO TEKU]EJ STROKI, I STROKA WWODITSQ, TAK KAK ESLI BY BYL WWEDEN ZNAK WWODA STROKI.

dump-functions ()

nAPE^ATATX WSE FUNKCII I IH PRIWQZKI K KLAWI[AM W WYHODNOJ POTOK Readline. eSLI ZADAN ^ISLOWOJ ARGUMENT, WYWOD FORMATIRUETSQ TAK, ^TO ON MOVET BYTX SDELAN ^ASTX@ FAJLA inputrc. pO UMOL^ANI@, \TA KOMANDA NE PRIWQZANA.

dump-variables ()

nAPE^ATATX WSE USTANAWLIWAEMYE PEREMENNYE I IH ZNA^ENIQ W WYHODNOJ POTOK Readline. eSLI ZADAN ^ISLOWOJ ARGUMENT, WYWOD FORMATIRUETSQ TAK, ^TO ON MOVET BYTX SDELATX ^ASTX@ FAJLA inputrc. |TA KOMANDA PO UMOL^ANI@ NE PRIWQZANA.

dump-macros ()

nAPE^ATATX WSE POSLEDOWATELXNOSTI KLAWI[ Readline, PRIWQZANNYE K MAKROSAM, I WYWODIMYE IMI STROKI. eSLI ZADAN ^ISLOWOJ ARGUMENT, WYWOD FORMATIRUETSQ TAK, ^TO ON MOVET BYTX SDELAN ^ASTX@ FAJLA inputrc. |TA KOMANDA PO UMOL^ANI@ NE PRIWQZANA.

21.5 rEVIM vi Readline

hOTQ BIBLIOTEKA Readline NE IMEET POLNOGO NABORA FUNKCIJ REDAKTIROWANIQ vi, ONA WSE VE SODERVIT DOSTATO^NO DLQ PROSTOGO REDAKTIROWANIQ STROKI. rEVIM vi Readline FUNKCIONIRUET TAK, KAK OPREDELENO W STANDARTE posix 1003.2.

dLQ INTERAKTIWNOGO PEREKL@^ENIQ MEVDU REVIMAMI REDAKTIROWANIQ emacs I vi, ISPOLXZUJTE KOMANDU M-C-j (toggle-editing-mode). pO UMOL^ANI@, Readline ISPOLXZUET REVIM emacs.

kOGDA WY WWODITE STROKU W REVIME vi, WY UVE NAHODITESX W REVIME `WSTAWKI', KAK ESLI BY WY NABRALI `i'. nAVATIE hESCi PEREKL@^AET WAS W `KOMANDNYJ' REVIM, W KOTOROM WY MOVETE REDAKTIROWATX TEKST STROKI STANDARTNYMI KLAWI[AMI PEREME]ENIQ vi, PEREME]ATXSQ K PREDYDU]IM STROKAM ISTORII POSREDSTWOM `k' I K POSLEDU@]IM STROKAM POSREDSTWOM `j', I TAK DALEE.

gLAWA 22: iSPOLXZOWANIE ISTORII W INTERAKTIWNOM REVIME

245

22iSPOLXZOWANIE ISTORII W INTERAKTIWNOM REVIME

|TA GLAWA OPISYWAET, KAK ISPOLXZOWATX BIBLIOTEKU gnu History INTERAKTIWNO, c TO^KI ZRENIQ POLXZOWATELQ. oNA DOLVNA RASSMATRIWATXSQ KAK RUKOWODSTWO POLXZOWATELQ.

22.1 rASKRYWANIE ISTORII

bIBLIOTEKA History OBESPE^IWAET SREDSTWA RASKRYWANIQ ISTORII, PODOBNYE PREDOSTAWLQEMYM csh. |TOT RAZDEL OPISYWAET SINTAKSIS, ISPOLXZU@]IJSQ DLQ UPRAWLENIQ INFORMACIEJ ISTORII.

rASKRYWANIE ISTORII WWODIT SLOWA IZ SPISKA ISTORII WO WHODNOJ POTOK, OBLEG^AQ POWTORENIE KOMAND, WSTAWKU ARGUMENTOW PREDYDU]EJ KOMANDY W TEKU]U@ STROKU WWODA, ILI BYSTROE USTRANENIE O[IBOK W PREDYDU]EJ KOMANDE.

rASKRYWANIE ISTORII PROISHODIT W DWA \TAPA. pERWYJ ZAKL@^AETSQ W OPREDELENII, KAKAQ IZ STROK SPISKA ISTORII DOLVNA ISPOLXZOWATXSQ W PROCESSE ZAMENY. nA WTOROM \TAPE WYBIRA@TSQ ^ASTI \TOJ STROKI DLQ WKL@^ENIQ W TEKU]U@. sTROKA, WYBRANNAQ IZ ISTORII, NAZYWAETSQ SOBYTIEM, A ISPOLXZOWANNYE ^ASTI NAZYWA@TSQ SLOWAMI. sU]ESTWU@T RAZLI^NYE MODIFIKATORY DLQ MANIPULIROWANIQ WYBRANNYMI SLOWAMI. sTROKA RAZBIWAETSQ NA SLOWA TAK VE, KAK \TO DELAET Bash, TAK ^TO NESKOLXKO SLOW, ZAKL@^ENNYH W KAWY^- KI, RASSMATRIWA@TSQ KAK ODNO SLOWO. rASKRYWANIQ ISTORII WWODQTSQ POQWLENIEM ZNAKA RASKRYWANIQ ISTORII, PO UMOL^ANI@ `!'.

22.1.1 uKAZATELI SOBYTIJ

uKAZATELX SOBYTIJ QWLQETSQ SSYLKOJ NA ZAPISX KOMANDNOJ STROKI W SPISKE ISTORII.

!nA^ATX PODSTANOWKU ISTORII, ESLI TOLXKO ZA ! NE SLEDUET PROBEL, ZNAK TABULQCII, ZNAK KONCA STROKI, `=' ILI `('.

!n

sOSLATXSQ NA KOMANDNU@ STROKU S NOMEROM n.

!-n sOSLATXSQ NA KOMANDNU@ STROKU, OTSTOQ]U@ NA n STROK NAZAD.

!!sOSLATXSQ NA PREDYDU]U@ KOMANDU. |TO SINONIM DLQ `!-1'.

!STROKA sOSLATXSQ NA SAMU@ POSLEDN@@ KOMANDU, NA^INA@]U@SQ SO STROKI.

!?STROKA[?]

sOSLATXSQ NA SAMU@ POSLEDN@@ KOMANDU, SODERVA]U@ STROKU. `?' W KONCE MOVET BYTX OPU]EN, ESLI ZNAK NOWOJ STROKI SLEDUET NEMEDLENNO ZA STROKOJ.

^STROKA1^STROKA2^

bYSTRAQ PODSTANOWKA. pOWTORQET POSLEDN@@ KOMANDU, ZAMENQQ STROKU1 NA

STROKU2. |KWIWALENTNO !!:s/STROKA1/STROKA2/.

!#

wSQ KOMANDNAQ STROKA, WWEDENNAQ DO \TOGO MOMENTA.

22.1.2 uKAZATELI SLOW

uKAZATELI SLOW ISPOLXZU@TSQ DLQ WYBORA VELAEMYH SLOW IZ SOBYTIQ. sPECIFIKACIQ SOBYTIQ OTDELQETSQ OT UKAZATELQ SLOWA DWOETO^IEM. eGO MOVNO OPUSTITX, ESLI UKAZATELX SLOWA NA^INAETSQ S `^', `$', `*', `-' ILI `%'. sLOWA NUMERU@TSQ OT NA^ALA STROKI, PRI- ^EM PERWOMU SLOWU PRISWAIWAETSQ NOMER 0 (NOLX). sLOWA WSTAWLQ@TSQ W TEKU]U@ STROKU, RAZDELENNYE ODINO^NYMI PROBELAMI.

nAPRIMER,

!!OBOZNA^AET PREDYDU]U@ KOMANDU. kOGDA WY \TO WWODITE, PREDYDU]AQ KOMANDA POWTORQETSQ ODIN K ODNOMU.

246

oTLADKA S POMO]X@ GDB

!!:$ OBOZNA^AET POSLEDNIJ ARGUMENT PREDYDU]EJ KOMANDY. |TO MOVET BYTX SOKRA- ]ENO KAK !$.

!fi:2 OBOZNA^AET WTOROJ ARGUMENT SAMOJ POSLEDNEJ KOMANDY, NA^INAW[EJSQ S BUKW

fi.

wOT UKAZATELI SLOW:

0 (NOLX) nULEWOE SLOWO. dLQ MNOGIH PRILOVENIJ, \TO KOMANDNOE SLOWO.

nn-NOE SLOWO.

^pERWYJ ARGUMENT, TO ESTX SLOWO 1.

$pOSLEDNIJ ARGUMENT.

%sLOWO, SOOTWETSTWU@]EE SAMOMU POSLEDNEMU POISKU `?STROKA?'.

x-y dIAPAZON SLOW; `0-y' SOKRA]AETSQ KAK `-y'.

*wSE SLOWA, ZA ISKL@^ENIEM NULEWOGO. |TO SINONIM DLQ `1-$'. dAVE ESLI W SOBYTII IMEETSQ TOLXKO ODNO SLOWO, ISPOLXZOWANIE `*' NE QWLQETSQ O[IBKOJ; W \TOM SLU^AE WOZWRA]AETSQ PUSTAQ STROKA.

x* sOKRA]ENIE DLQ `x-$'

x-

sOKRA]AET `x-$' KAK `x*', NO OPUSKAET POSLEDNEE SLOWO.

eSLI UKAZATELX SLOWA ZADAETSQ BEZ UKAZANIQ SOBYTIQ, W KA^ESTWE SOBYTIQ ISPOLXZUETSQ PREDYDU]AQ KOMANDA.

22.1.3 mODIFIKATORY

pOSLE NEOBQZATELXNOGO UKAZATELQ SLOWA, WY MOVETE DOBAWITX POSLEDOWATELXNOSTX IZ ODNOGO ILI BOLEE SLEDU@]IH MODIFIKATOROW, PERED KAVDYM IZ KOTORYH STAWITSQ DWOETO^IE.

huDALITX ZAKL@^ITELXNU@ KOMPONENTU IMENI PUTI, OSTAWLQQ TOLXKO NA^ALXNU@.

ruDALITX ZAKL@^ITELXNYJ SUFFIKS, IME@]IJ FORMU `.SUFFIKS', OSTAWLQQ BAZOWOE IMQ.

euDALITX WSE, KROME ZAKL@^ITELXNOGO SUFFIKSA.

pnAPE^ATATX NOWU@ KOMANDU, NO NE WYPOLNQTX EE.

s/STAROE/NOWOE/

zAMENITX PERWOE POQWLENIE STAROE NA NOWOE W STROKE SOBYTIQ. nA MESTE `/' MOVET ISPOLXZOWATXSQ L@BOJ RAZDELITELX. rAZDELITELX MOVET BYTX WKL@^EN W STAROE ILI NOWOE S POMO]X@ OBRATNOJ KOSOJ ^ERTY. eSLI W NOWOE POQWLQETSQ SIMWOL `&', ON ZAMENQETSQ NA STAROE. oDINO^NAQ OBRATNAQ KOSAQ ^ERTA \KRANIRUET `&'. zAKL@^ITELXNYJ RAZDELITELX NEOBQZATELEN, ESLI ON QWLQETSQ POSLEDNIM SIMWOLOW WO WHODNOJ STROKE.

&pOWTORITX PREDYDU]U@ PODSTANOWKU.

gwELIT PRIMENITX IZMENENIQ KO WSEJ STROKE SOBYTIQ. iSPOLXZUETSQ WMESTE S

`s', KAK W gs/STAROE/NOWOE/, ILI S `&'.

pRILOVENIE A: fORMATIROWANIE DOKUMENTACII

247

pRILOVENIE A fORMATIROWANIE DOKUMENTACII

wYPUSK 4 GDB SODERVIT UVE OTFORMATIROWANNU@ SPRAWO^NU@ KARTO^KU, GOTOWU@ K PE^ATI S PostScript ILI Ghostscript, W PODKATALOGE `gdb' GLAWNOGO ISHODNOGO KATALOGA1. eSLI WY MOVETE ISPOLXZOWATX PostScript ILI Ghostscript S WA[IM PRINTEROM, WY MOVETE RASPE^ATATX SPRAWO^NU@ KARTO^KU NEMEDLENNO IZ `refcard.ps'.

wYPUSK TAKVE WKL@^AET ISHODNYJ TEKST SPRAWO^NOJ KARTO^KI. wY MOVETE OTFORMATIROWATX EE PRI POMO]I TEX, NABRAW:

make refcard.dvi

sPRAWO^NAQ KARTO^KA GDB RAZRABOTANA DLQ PE^ATI W REVIME landscape NA BUMAGE AMERIKANSKOGO RAZMERA \letter"; TO ESTX NA LISTE [IRINOJ 11 I WYSOTOJ 8.5 D@JMOW. wY DOLVNY BUDETE UKAZATX \TOT FORMAT PE^ATI W KA^ESTWE KL@^A K WA[EJ PROGRAMME WYWODA dvi.

wSQ DOKUMENTACIQ DLQ GDB POSTAWLQETSQ KAK ^ASTX MA[INNO-S^ITYWAEMOGO DISTRIBUTIWA. dOKUMENTACIQ NAPISANA W FORMATE Texinfo, KOTORYJ QWLQETSQ SISTEMOJ POSTROENIQ DOKUMENTACII, ISPOLXZU@]EJ ODIN ISHODNYJ FAJL, DLQ SOZDANIQ KAK INTERAKTIWNOGO, TAK I PE^ATNOGO RUKOWODSTWA. wY MOVETE ISPOLXZOWATX ODNU IZ KOMAND FORMATIROWANIQ Info, ^TOBY SOZDATX INTERAKTIWNU@ WERSI@ DOKUMENTACII, I TEX (ILI texi2roff) DLQ SOZDANIQ PE^ATNOJ WERSII.

GDB WKL@^AET UVE OTFORMATIROWANNU@ KOPI@ INTERAKTIWNOJ WERSII Info \TOGO RUKOWODSTWA W PODKATALOGE `gdb'. oSNOWNOJ FAJL Info| `gdb-5.0/gdb/gdb.info', ON SSYLAETSQ NA POD^INENNYE FAJLY `gdb.info*' W TOM VE KATALOGE. w SLU^AE NEOBHODIMOSTI, WY MOVETE RASPE^ATATX \TI FAJLY, ILI PRO^ITATX IH W L@BOM REDAKTORE; NO IH LEG^E PRO^ITATX, ISPOLXZUQ PODSISTEMU info W gnu Emacs ILI AWTONOMNU@ PROGRAMMU info, DOSTUPNU@ KAK ^ASTX DISTRIBUTIWA gnu Texinfo.

eSLI WY HOTITE FORMATIROWATX \TI Info-FAJLY SAMOSTOQTELXNO, WAM NUVNA ODNA IZ PROGRAMM FORMATIROWANIQ Info, NAPRIMER texinfo-format-buffer ILI makeinfo.

eSLI U WAS USTANOWLENA PROGRAMMA makeinfo, I WY NAHODITESX NA WERHNEM UROWNE IERARHII KATALOGOW GDB (`gdb-5.0' W SLU^AE WERSII 5.0), WY MOVETE SOZDATX FAJL Info, NABRAW:

cd gdb

make gdb.info

eSLI WY HOTITE SFORMIROWATX I RASPE^ATATX KOPII \TOGO RUKOWODSTWA, WAM NUVEN TEX, PROGRAMMA PE^ATI EGO WYHODNYH dvi-FAJLOW I FAJL OPREDELENIJ Texinfo `texinfo.tex'.

TEX|\TO PROGRAMMA FORMATIROWANIQ; ONA NE PE^ATAET FAJLY NEPOSREDSTWENNO, A SOZDAET WYHODNYE FAJLY, NAZYWAEMYE dvi-FAJLAMI. ~TOBY NAPE^ATATX SFORMATIROWANNYJ DOKUMENT, WAM NUVNA PROGRAMMA PE^ATI dvi-FAJLOW. eSLI W WA[EJ SISTEME USTANOWLEN TEX, W NEJ, WOZMOVNO, ESTX TAKAQ PROGRAMMA. kAKU@ TO^NO KOMANDU NUVNO ISPOLXZOWATX ZAWISIT OT WA[EJ SISTEMY; lpr -d QWLQETSQ OB]EJ; DRUGAQ PROGRAMMA (DLQ PostScriptUSTROJSTW)|\TO dvips. kOMANDA PE^ATI dvi-FAJLOW MOVET TREBOWATX IMQ FAJLA BEZ RAS- [IRENIQ ILI S RAS[IRENIEM `.dvi'.

TEX TAKVE TREBUET FAJL MAKROOPREDELENIJ `texinfo.tex'. |TOT FAJL SOOB]AET TEX, KAK FORMATIROWATX DOKUMENT, NAPISANNYJ W FORMATE Texinfo. sAM PO SEBE TEX NE MOVET ^ITATX ILI FORMATIROWATX FAJL Texinfo. `texinfo.tex' RASPROSTRANQETSQ S GDB I RAZME]AETSQ W KATALOGE `gdb-NOMER-WERSII/texinfo'.

eSLI U WAS USTANOWLENY TEX I PROGRAMMA PE^ATI dvi, WY MOVETE OTFORMATIROWATX I RASPE^ATATX \TO RUKOWODSTWO. sNA^ALA PEREJDITE W PODKATALOG `gdb' GLAWNOGO ISHODNOGO KATALOGA (NAPRIMER, W `gdb-5.0/gdb'), I NABERITE:

make gdb.dvi

|TO PEREDAST `gdb.dvi' WA[EJ PROGRAMME PE^ATI dvi.

1 w `gdb-5.0/gdb/refcard.ps' W WERSII 5.0 WYPUSKA.

248

oTLADKA S POMO]X@ GDB

pRILOVENIE B: uSTANOWKA GDB

249

pRILOVENIE B uSTANOWKA GDB

GDB POSTAWLQETSQ WMESTE SO SCENARIEM configure, KOTORYJ AWTOMATIZIRUET PROCESS PODGOTOWKI GDB K USTANOWKE; ZATEM WY MOVETE ISPOLXZOWATX make DLQ POSTROENIQ PROGRAMMY gdb.1

dISTRIBUTIW GDB WKL@^AET WESX ISHODNYJ KOD, KOTORYJ WAM PONADOBITSQ DLQ GDB, W ODNOM KATALOGE, IMQ KOTOROGO OBY^NO SOSTAWLQETSQ DOBAWLENIEM NOMERA WERSII K `gdb'.

nAPRIMER, DISTRIBUTIW GDB WERSII 5.0 NAHODITSQ W KATALOGE `gdb-5.0'. |TOT KATALOG SODERVIT:

gdb-5.0/configure (I FAJLY PODDERVKI)

SCENARIJ DLQ KONFIGURACII GDB I WSEH PODDERVIWAEMYH BIBLIOTEK

gdb-5.0/gdb

ISHODNYE TEKSTY, SPECIFI^NYE DLQ SAMOGO GDB

gdb-5.0/bfd

ISHODNYE TEKSTY DLQ BIBLIOTEKI OPISANIQ DWOI^NYH FAJLOW (Binary File Descriptor)

gdb-5.0/include

WKL@^AEMYE FAJLY gnu

gdb-5.0/libiberty

ISHODNYE TEKSTY DLQ `-liberty' BIBLIOTEKI SWOBODNOGO PROGRAMMNOGO OBESPE- ^ENIQ

gdb-5.0/opcodes

ISHODNYE TEKSTY BIBLIOTEKI TABLIC KODOW OPERACIJ I DISASSEMBLEROW

gdb-5.0/readline

ISHODNYE TEKSTY INTERFEJSA KOMANDNOJ STROKI gnu

gdb-5.0/glob

ISHODNYE TEKSTY PODPROGRAMMY gnu SOPOSTAWLENIQ S OBRAZCOM IMENI FAJLA

gdb-5.0/mmalloc

ISHODNYE TEKSTY PAKETA gnu DLQ WYDELENIQ PAMQTI

pROSTEJ[IJ SPOSOB SKONFIGURIROWATX I SOBRATX GDB SOSTOIT W WYPOLNENII configure IZ ISHODNOGO KATALOGA `gdb-NOMER-WERSII', KOTORYJ W \TOM PRIMERE ESTX `gdb-5.0'.

sPERWA PEREJDITE W ISHODNYJ KATALOG `gdb-NOMER-WERSII', ESLI WY E]E NE NAHODITESX W NEM; ZATEM ZAPUSTITE configure. pEREDAJTE W KA^ESTWE ARGUMENTA IDENTIFIKATOR PLATFORMY, NA KOTOROJ BUDET WYPOLNQTXSQ GDB.

nAPRIMER:

cd gdb-5.0

./configure PLATFORMA make

GDE PLATFORMA|IDENTIFIKATOR, TAKOJ KAK `sun4' ILI `decstation', ZADA@]IJ PLATFORMU, NA KOTOROJ BUDET WYPOLNQTXSQ GDB. (~ASTO WY MOVETE OPUSTITX PLATFORMU; configure PYTAETSQ OPREDELITX KORREKTNOE ZNA^ENIE, IZU^AQ WA[U SISTEMU.)

wYPOLNENIE `configure PLATFORMA' I ZATEM make STROQT BIBLIOTEKI `bfd', `readline', `mmalloc' I `libiberty', I ZATEM SAM gdb. sKONFIGURIROWANNYE ISHODNYE FAJLY, A TAKVE DWOI^NYE FAJLY, OSTA@TSQ W SOOTWETSTWU@]IH ISHODNYH KATALOGAH.

1eSLI U WAS BOLEE NOWAQ WERSIQ GDB, ^EM 5.0, PROSMOTRITE FAJL `README' W ISHODNOM KATALOGE; MY MOGLI USOWER[ENSTWOWATX PROCEDURU USTANOWKI S MOMENTA PUBLIKACII \TOGO RUKOWODSTWA.

250

oTLADKA S POMO]X@ GDB

configure QWLQETSQ SCENARIEM OBOLO^KI Bourne (/bin/sh); ESLI WA[A SISTEMA NE RASPOZNAET \TO AWTOMATI^ESKI, KOGDA WY NAHODITESX W DRUGOJ OBOLO^KE, WAM MOVET POTREBOWATXSQ WYPOLNITX sh QWNO:

sh configure PLATFORMA

eSLI WY WYPOLNITE configure IZ KATALOGA, SODERVA]EGO ISHODNYE KATALOGI DLQ NESKOLXKIH BIBLIOTEK ILI PROGRAMM, NAPRIMER `gdb-5.0' DLQ WERSII 5.0, configure SOZDAET FAJLY KONFIGURACII DLQ WSEH PODKATALOGOW NIZ[EGO UROWNQ (ESLI WY NE WELITE EMU NE \TOGO DELATX KL@^EM `-norecursion').

wY MOVETE WYPOLNITX SCENARIJ configure IZ L@BOGO PODKATALOGA IZ POSTAWKI GDB, ESLI WY HOTITE SKONFIGURIROWATX TOLXKO \TOT PODKATALOG, NO UBEDITESX, ^TO UKAZALI PUTX K NEMU.

nAPRIMER, DLQ WERSII 5.0, ^TOBY SKONFIGURIROWATX TOLXKO PODKATALOG bfd, WWEDITE:

cd gdb-5.0/bfd

../configure PLATFORMA

wY MOVETE USTANOWITX gdb KUDA UGODNO; ON NE IMEET NIKAKIH VESTKO ZADANNYH PUTEJ. oDNAKO, WY DOLVNY UDOSTOWERITXSQ, ^TO WA[A OBOLO^KA (OPREDELQEMAQ PEREMENNOJ SREDY `SHELL') DOSTUPNA WSEM DLQ ^TENIQ. pOMNITE, ^TO GDB ISPOLXZUET OBOLO^KU DLQ ZAPUSKA WA[EJ PROGRAMMY| NEKOTORYE SISTEMY NE POZWOLQ@T GDB OTLAVIWATX DO^ERNIE PROCESSY, ^XI PROGRAMMY NEDOSTUPNY DLQ ^TENIQ.

B.1 kOMPILQCIQ GDB W DRUGOM KATALOGE

eSLI WY HOTITE ZAPUSKATX WERSII GDB NA NESKOLXKIH RABO^IH ILI CELEWYH MA[INAH, WAM NUVNY RAZLI^NYE gdb, SKOMPILIROWANNYE DLQ KAVDOJ KOMBINACII RABO^EJ I CELEWOJ MA[INY. configure RAZRABOTAN TAK, ^TOBY OBLEG^ITX \TO, POZWOLQQ WAM SOZDAWATX KAVDU@ KONFIGURACI@ W OTDELXNOM PODKATALOGE, A NE W ISHODNOM KATALOGE. eSLI WA[A PROGRAMMA make PODDERVIWAET WOZMOVNOSTI `VPATH' (gnu make \TO DELAET), WYZOW make W KAVDOM IZ \TIH KATALOGOW STROIT PROGRAMMU gdb, OPREDELENNU@ TAM.

~TOBY POSTROITX gdb W OTDELXNOM KATALOGE, ZAPUSTITE configure S KL@^EM `-srcdir', DLQ OPREDELENIQ, GDE ISKATX ISTO^NIK. (wAM TAKVE NUVNO OPREDELITX PUTX DLQ POISKA configure IZ WA[EGO RABO^EGO KATALOGA. eSLI PUTX K configure SOWPADAET S PARAMETROM `-srcdir', KL@^ `-srcdir' MOVNO OPUSTITX; ON PODRAZUMEWAETSQ.)

nAPRIMER, W WERSII 5.0, WY MOVETE POSTROITX GDB W OTDELXNOM KATALOGE DLQ Sun 4 TAK:

cd gdb-5.0

mkdir ../gdb-sun4 cd ../gdb-sun4

../gdb-5.0/configure sun4 make

kOGDA configure STROIT KONFIGURACI@, ISPOLXZUQ UDALENNYJ KATALOG S ISTO^NIKAMI, ON SOZDAET DEREWO DLQ DWOI^NYH FAJLOW S TOJ VE STRUKTUROJ (I ISPOLXZUQ TE VE IMENA), ^TO I DEREWO KATALOGOW S ISHODNYMI TEKSTAMI. w \TOM PRIMERE, WY BY NA[LI BIBLIOTEKU

Sun 4 `libiberty.a' W KATALOGE `gdb-sun4/libiberty', I SAM GDB W `gdb-sun4/gdb'.

oDNA IZ RASPROSTRANENNYH PRI^IN POSTROENIQ NESKOLXKIH KONFIGURACIJ GDB W OTDELXNYH KATALOGAH SOSTOIT W TOM, ^TOBY KONFIGURIROWATX GDB DLQ KROSS-KOMPILQCII (GDE GDB ZAPUSKAETSQ NA ODNOJ MA[INE|RABO^EJ, W TO WREMQ KAK OTLAVIWAEMYE PROGRAMMY WYPOLNQ@TSQ NA DRUGOJ MA[INE|CELEWOJ). wY OPREDELQETE CELEWU@ MA[INU KROSS-

OTLADKI KL@^EM configure `-target=CELX'.

kOGDA WY WYPOLNQETE make DLQ POSTROENIQ PROGRAMMY ILI BIBLIOTEKI, WY DOLVNY WYPOLNQTX EE IZ SKONFIGURIROWANNOGO KATALOGA|TOGO KATALOGA, IZ KOTOROGO WY WYZYWALI configure (ILI IZ ODNOGO IZ EGO PODKATALOGOW).

pRILOVENIE B: uSTANOWKA GDB

251

Makefile, KOTORYJ SOZDAET configure W KAVDOM ISHODNOM KATALOGE, TAKVE WYPOLNQETSQ REKURSIWNO. eSLI WY WWELI make W KATALOGE S ISHODNYMI FAJLAMI, NAPRIMER W `gdb-5.0' (ILI W KATALOGE, SKONFIGURIROWANNOM OTDELXNO POSREDSTWOM `-srcdir=IMQ- KATALOGA/gdb-5.0'), WY POSTROITE WSE TREBUEMYE BIBLIOTEKI, I ZATEM GDB.

kOGDA U WAS IMEETSQ NESKOLXKO RABO^IH ILI CELEWYH KONFIGURACIJ W OTDELXNYH KATALOGAH, WY MOVETE ZAPUSTITX make DLQ NIH PARALLELXNO (NAPRIMER, ESLI ONI SMONTIROWANY PO NFS NA KAVDOJ RABO^EJ MA[INE); ONI NE BUDUT KONFLIKTOWATX DRUG S DRUGOM.

B.2 oPREDELENIE IMEN RABO^IH I CELEWYH MA[IN

sPECIFIKACII, ISPOLXZOWANNYE DLQ RABO^IH I CELEWYH MA[IN W SCENARII configure, IMENU@TSQ W SOOTWETSTWII SO SHEMOJ NAIMENOWANIQ, SOSTOQ]EJ IZ TREH ^ASTEJ, NO PODDERVIWA@TSQ TAKVE NEKOTORYE KOROTKIE PREDOPREDELENNYE SINONIMY. pOLNAQ SHEMA NAIMENOWANIQ KODIRUET TRI FRAGMENTA INFORMACII PO SLEDU@]EMU OBRAZCU:

ARHITEKTURA-PROIZWODITELX-os

nAPRIMER, WY MOVETE ISPOLXZOWATX SINONIM sun4 KAK PARAMETR PLATFORMA, ILI KAK ZNA^ENIE CELX W KL@^E --target=CELX. |KWIWALENTNOE POLNOE IMQ|`sparc-sun-sunos4'.

sCENARIJ configure, SOPROWOVDA@]IJ GDB, NE PREDOSTAWLQET NIKAKIH SREDSTW DLQ ZAPROSA WYWODA WSEH PODDERVIWAEMYH IMEN RABO^IH I CELEWYH MA[IN ILI IH SOKRA]ENIJ. configure WYZYWAET SKRIPT OBOLO^KI Bourne config.sub DLQ OTOBRAVENIQ SOKRA]ENIJ W POLNYE IMENA; PRI VELANII, WY MOVETE POSMOTRETX SCENARIJ ILI ISPOLXZOWATX EGO DLQ PROWERKI WA[IH PREDPOLOVENIJ O SOKRA]ENIQH. nAPRIMER:

%sh config.sub i386-linux i386-pc-linux-gnu

%sh config.sub alpha-linux alpha-unknown-linux-gnu

%sh config.sub hp9k700 hppa1.1-hp-hpux

%sh config.sub sun4

sparc-sun-sunos4.1.1

%sh config.sub sun3 m68k-sun-sunos4.1.1

%sh config.sub i986v

Invalid configuration `i986v': machine `i986v' not recognized

config.sub TAKVE RASPROSTRANQETSQ W ISHODNOM KATALOGE GDB (`gdb-5.0', DLQ WERSII 5.0).

B.3 kL@^I configure

zDESX PRIWODITSQ OBZOR KL@^EJ I PARAMETROW configure, KOTORYE NAIBOLEE ^ASTO ISPOLXZU@TSQ DLQ POSTROENIQ GDB. configure TAKVE IMEET NESKOLXKO DRUGIH KL@^EJ, NE PREDSTAWLENNYH ZDESX. sM. Info FAJL `configure.info', node `What Configure Does', DLQ POLNOGO OB_QSNENIQ configure.

configure [-help] [-prefix=KATALOG] [-exec-prefix=KATALOG] [-srcdir=IMQ-KATALOGA] [-norecursion] [-rm] [-target=CELX]

PLATFORMA

eSLI HOTITE, MOVETE WWODITX KL@^I S ODNIM `-', A NE S `-'; NO WY MOVETE SOKRA]ATX IMENA KL@^EJ, ESLI ISPOLXZUETE `-'.

252

oTLADKA S POMO]X@ GDB

-help oTOBRAVAET BYSTRYJ OBZOR, KAK WYZYWATX configure.

-prefix=KATALOG

kONFIGURIROWATX ISTO^NIK, ^TOBY USTANAWLIWATX PROGRAMMY I FAJLY W PODKATALOGAH `KATALOGA'.

-exec-prefix=KATALOG

kONFIGURIROWATX ISTO^NIK, ^TOBY USTANAWLIWATX PROGRAMMY W KATALOG `KATA-

LOG'.

-srcdir=IMQ-KATALOGA

pREDUPREVDENIE: ISPOLXZOWANIE \TOGO KL@^A TREBUET gnu make ILI DRUGOJ PROGRAMMY make, REALIZU@]EJ WOZMOVNOSTI VPATH.

iSPOLXZUJTE \TOT KL@^ DLQ SOZDANIQ KONFIGURACIJ W KATALOGAH, OTDELXNYH OT ISHODNOGO KATALOGA GDB. kROME WSEGO PRO^EGO, WY MOVETE ISPOLXZOWATX EGO DLQ POSTROENIQ (ILI PODDERVKI) NESKOLXKIH KONFIGURACIJ ODNOWREMENNO W OTDELXNYH KATALOGAH. configure ZAPISYWAET FAJLY, OTNOSQ]IESQ K KONFIGURACII, W TEKU]IJ KATALOG, NO PRINIMAET MERY, ^TOBY MOVNO BYLO ISPOLXZOWATX ISTO^- NIKI W KATALOGE IMQ-KATALOGA. configure SOZDAET KATALOGI WNUTRI RABO^EGO KATALOGA PARALLELXNO S ISHODNYMI KATALOGAMI WNUTRI IMQ-KATALOGA.

-norecursion

kONFIGURIROWATX TOLXKO TOT UROWENX KATALOGOW, GDE WYPOLNQETSQ configure; NE RASPROSTRANQTX KONFIGURACI@ NA PODKATALOGI.

-target=CELX

kONFIGURIROWATX GDB DLQ KROSS-OTLADKI PROGRAMM, WYPOLNQEMYH NA UKAZANNOJ CELI. bEZ \TOGO KL@^A GDB KONFIGURIRUETSQ DLQ OTLADKI PROGRAMM, WYPOLNQEMYH NA TOJ VE MA[INE (PLATFORME), ^TO I SAM GDB.

nET NIKAKOGO UDOBNOGO SPOSOBA SGENERIROWATX SPISOK WSEH DOSTUPNYH CELEJ.

PLATFORMA ...

kONFIGUROWATX GDB DLQ WYPOLNENIQ NA UKAZANNOJ PLATFORME.

nET NIKAKOGO UDOBNOGO SPOSOBA SGENERIROWATX SPISOK WSEH DOPUSTIMYH PLATFORM.

sU]ESTWUET TAKVE MNOGO DRUGIH KL@^EJ, NO OBY^NO ONI TREBU@TSQ TOLXKO DLQ SPECIALXNYH CELEJ.

aLFAWITNYJ UKAZATELX

253

aLFAWITNYJ UKAZATELX

default

#. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. 15

# (KOMMENTARIJ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

15

# W mODULE-2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

91

$. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

72

$$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

72

$bpnum, WSPOMOGATELXNAQ PEREMENNAQ . . . . . . . . . . .

32

$cdir, WSPOMOGATELXNAQ PEREMENNAQ . . . . . . . . . . . .

57

$cwd, WSPOMOGATELXNAQ PEREMENNAQ . . . . . . . . . . . . .

57

$_ I info breakpoints . . . . . . . . . . . . . . . . . . . . . . . . .

34

$_ I info line. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

58

$_, $__ I ISTORIQ ZNA^ENIJ . . . . . . . . . . . . . . . . . . . .

66

$_, WSPOMOGATELXNAQ PEREMENNAQ . . . . . . . . . . . . . . .

74

$_exitcode, WSPOMOGATELXNAQ PEREMENNAQ. . . . . . .

74

$__, WSPOMOGATELXNAQ PEREMENNAQ . . . . . . . . . . . . . .

74

--annotate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

12

--async . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

12

--batch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11

--baud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

12

--cd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11

--command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

--core . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

--directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

--epoch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

12

--exec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

--fullname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11

--interpreter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

12

--mapped . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

--noasync . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

12

--nowindows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11

--nx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11

--quiet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11

--readnow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

--se . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

--silent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11

--statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

12

--symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

--tty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

12

--version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

13

--windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11

--write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

12

-b . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

12

-break-after. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

176

-break-condition . . . . . . . . . . . . . . . . . . . . . . . . . . . .

177

-break-delete. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

177

-break-disable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

178

-break-enable. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

178

-break-info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

179

-break-insert. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

179

-break-list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

180

-break-watch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

181

-c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

-d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

-data-disassemble . . . . . . . . . . . . . . . . . . . . . . . . . . .

183

-data-evaluate-expression. . . . . . . . . . . . . . . . . . . 185 -data-list-changed-registers . . . . . . . . . . . . . . . 186 -data-list-register-names. . . . . . . . . . . . . . . . . . . 186 -data-list-register-values. . . . . . . . . . . . . . . . . . 187

-data-read-memory . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 -display-delete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 -display-disable . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 -display-enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 -display-insert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 -display-list. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 -e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 -environment-cd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192

-environment-directory . . . . . . . . . . . . . . . . . . . . . . 192

-environment-path . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 -environment-pwd . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 -exec-abort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 -exec-arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 -exec-continue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 -exec-finish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 -exec-interrupt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 -exec-next . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196

-exec-next-instruction . . . . . . . . . . . . . . . . . . . . . . 197

-exec-return. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 -exec-run . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 -exec-show-arguments . . . . . . . . . . . . . . . . . . . . . . . . 198 -exec-step . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199

-exec-step-instruction . . . . . . . . . . . . . . . . . . . . . . 199

-exec-until . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 -f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

-file-exec-and-symbols . . . . . . . . . . . . . . . . . . . . . . 200

-file-exec-file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201

-file-list-exec-sections . . . . . . . . . . . . . . . . . . . . 201 -file-list-exec-source-files . . . . . . . . . . . . . . . 201 -file-list-shared-libraries . . . . . . . . . . . . . . . . 202 -file-list-symbol-files . . . . . . . . . . . . . . . . . . . . . 202

-file-symbol-file . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 -gdb-exit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 -gdb-set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 -gdb-show . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 -gdb-version. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 -m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 -n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 -nw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 -q . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 -r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 -s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 -stack-info-depth . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 -stack-info-frame . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 -stack-list-arguments . . . . . . . . . . . . . . . . . . . . . . . 205 -stack-list-frames . . . . . . . . . . . . . . . . . . . . . . . . . . 207 -stack-list-locals . . . . . . . . . . . . . . . . . . . . . . . . . . 208 -stack-select-frame . . . . . . . . . . . . . . . . . . . . . . . . . 208 -symbol-info-address . . . . . . . . . . . . . . . . . . . . . . . . 209 -symbol-info-file . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 -symbol-info-function . . . . . . . . . . . . . . . . . . . . . . . 210

254

-symbol-info-line . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 -symbol-info-symbol . . . . . . . . . . . . . . . . . . . . . . . . . 210

-symbol-list-functions . . . . . . . . . . . . . . . . . . . . . . 210

-symbol-list-types . . . . . . . . . . . . . . . . . . . . . . . . . . 211

-symbol-list-variables . . . . . . . . . . . . . . . . . . . . . . 211

-symbol-locate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 -symbol-type. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 -t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 -target-attach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212

-target-compare-sections . . . . . . . . . . . . . . . . . . . . 212

-target-detach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 -target-download . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 -target-exec-status . . . . . . . . . . . . . . . . . . . . . . . . . 215

-target-list-available-targets . . . . . . . . . . . . . 215 -target-list-current-targets . . . . . . . . . . . . . . . 215 -target-list-parameters . . . . . . . . . . . . . . . . . . . . . 216

-target-select . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 -thread-info. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217

-thread-list-all-threads . . . . . . . . . . . . . . . . . . . . 217

-thread-list-ids . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 -thread-select . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 -var-assign . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 -var-create . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 -var-delete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220

-var-evaluate-expression . . . . . . . . . . . . . . . . . . . . 222

-var-info-expression . . . . . . . . . . . . . . . . . . . . . . . . 221

-var-info-num-children . . . . . . . . . . . . . . . . . . . . . . 221

-var-info-type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 -var-list-children . . . . . . . . . . . . . . . . . . . . . . . . . . 221 -var-set-format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 -var-show-attributes . . . . . . . . . . . . . . . . . . . . . . . . 221 -var-show-format . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 -var-update . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 -w . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 -x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

., OPERATOR OBLASTI WIDIMOSTI mODULY-2 . . . . . . 90 `.esgdbinit'. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 `.gdbinit' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 `.os68gdbinit' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 `.vxgdbinit'. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 /proc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 ::, W mODULE-2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

::, KONTEKST DLQ PEREMENNYH/FUNKCIJ . . . . . . . . . 62

@, SSYLKA NA PAMQTX KAK NA MASSIW. . . . . . . . . . . . . 63

^done . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 ^error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 ^running . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 \No symbol "foo" in current context". . . . . . . . . . . . 63

{TIP} . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

oTLADKA S POMO]X@ GDB

A

a.out I sI++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 abort (C-g) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 accept-line (Newline, Return) . . . . . . . . . . . . . . . 239 add-shared-symbol-file . . . . . . . . . . . . . . . . . . . . . . 107 add-symbol-file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 Alpha, STEK. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 AMD EB29K . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 AMD29K ^EREZ UDI . . . . . . . . . . . . . . . . . . . . . . . . . . 136 AMD29K, STEK REGISTROW . . . . . . . . . . . . . . . . . . . . . 148 apropos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 arg-begin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 arg-end . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 arg-name-end. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 arg-value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 array-section-end . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 attach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 awatch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

B

b (break) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 backtrace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 backward-char (C-b) . . . . . . . . . . . . . . . . . . . . . . . . . 239 backward-delete-char (Rubout). . . . . . . . . . . . . . . 240 backward-kill-line (C-x Rubout) . . . . . . . . . . . . . 241 backward-kill-word (M-DEL) . . . . . . . . . . . . . . . . . . 241 backward-word (M-b) . . . . . . . . . . . . . . . . . . . . . . . . . 239 beginning-of-history (M-<) . . . . . . . . . . . . . . . . . . 239 beginning-of-line (C-a) . . . . . . . . . . . . . . . . . . . . . 239 bell-style . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 break . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 break ... thread NOMER-NITI . . . . . . . . . . . . . . . . . . 48 breakpoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 breakpoints-headers . . . . . . . . . . . . . . . . . . . . . . . . . 168 breakpoints-invalid . . . . . . . . . . . . . . . . . . . . . . . . . 169 breakpoints-table . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 breakpoints-table-end . . . . . . . . . . . . . . . . . . . . . . . 169 bt (backtrace) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

C

c (PRODOLVITX) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 call . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 call-last-kbd-macro (C-x e) . . . . . . . . . . . . . . . . . 243 capitalize-word (M-c) . . . . . . . . . . . . . . . . . . . . . . . 241 catch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 catch catch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 catch exec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 catch fork . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 catch load . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 catch throw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 catch unload . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 catch vfork . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

aLFAWITNYJ UKAZATELX

255

cd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . 24

cdir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . 57

character-search (C-]) . . . . . . . . . . . . . . . . . . . .

. . 244

character-search-backward (M-C-]) . . . . . . . .

. . 244

Chill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . 1

clear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . 38

clear-screen (C-l). . . . . . . . . . . . . . . . . . . . . . . . .

. . 239

coff I sI++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . 84

commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

41, 167

comment-begin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . 232

complete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . 18

complete (hTABi). . . . . . . . . . . . . . . . . . . . . . . . . . .

. . 242

completion-query-items . . . . . . . . . . . . . . . . . . . .

. . 232

condition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . 40

continue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . 44

control C I UDALENNAQ OTLADKA . . . . . . . . . . . . . .

. . 116

convert-meta. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . 233

copy-backward-word () . . . . . . . . . . . . . . . . . . . . .

. . 242

copy-forward-word () . . . . . . . . . . . . . . . . . . . . . .

. . 242

copy-region-as-kill () . . . . . . . . . . . . . . . . . . . .

. . 242

core . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . 106

core-file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . 106

cwd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . 57

D

 

d (delete) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . 39

define . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . 157

delete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . 39

delete display . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . 67

delete-char (C-d). . . . . . . . . . . . . . . . . . . . . . . . . .

. . 240

delete-char-or-list () . . . . . . . . . . . . . . . . . . . .

. . 243

delete-horizontal-space () . . . . . . . . . . . . . . . .

. . 241

detach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . 25

device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . 139

digit-argument (M-0, M-1, ... M--). . . . . . . . .

. . 242

dir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . 57

directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . 57

dis (disable) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . 39

disable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . 39

disable breakpoints . . . . . . . . . . . . . . . . . . . . . . .

. . . 39

disable display . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . 67

disable-completion . . . . . . . . . . . . . . . . . . . . . . . .

. . 233

disassemble . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . 58

display . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . 67

display-begin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . 166

display-end . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . 166

display-expression . . . . . . . . . . . . . . . . . . . . . . . .

. . 166

display-expression-end . . . . . . . . . . . . . . . . . . . .

. . 166

display-format . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . 166

display-number-end . . . . . . . . . . . . . . . . . . . . . . . .

. . 166

display-value. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . 166

do (down) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . 53

do-uppercase-version (M-a, M-b, M-x, ...) .

. . 243

document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . 157

down . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 down-silently. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 downcase-word (M-l) . . . . . . . . . . . . . . . . . . . . . . . . . 241 dump-functions (). . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 dump-macros () . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 dump-variables (). . . . . . . . . . . . . . . . . . . . . . . . . . . . 244

E

 

`eb.log', VURNALXNYJ FAJL DLQ EB29K . . . . . . .

138

EBMON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

137

echo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

159

ecoff I sI++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

84

editing-mode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

233

elf/dwarf I sI++ . . . . . . . . . . . . . . . . . . . . . . . . . . . .

84

elf/stabs I sI++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

84

else . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

157

elt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

164

elt-rep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

165

elt-rep-end . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

165

Emacs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

161

enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

39

enable breakpoints. . . . . . . . . . . . . . . . . . . . . . . . . . . .

39

enable display . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

67

enable-keypad. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

233

end . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

41

end-kbd-macro (C-x )) . . . . . . . . . . . . . . . . . . . . . . . .

243

end-of-history (M->) . . . . . . . . . . . . . . . . . . . . . . . .

239

end-of-line (C-e). . . . . . . . . . . . . . . . . . . . . . . . . . . .

239

error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

168

error-begin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

168

exceptionHandler . . . . . . . . . . . . . . . . . . . . . . . . . . . .

116

exchange-point-and-mark (C-x C-x) . . . . . . . . . . .

244

exec-file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

105

exited . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

169

expand-tilde. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

233

F

f (frame) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 fg (PRODOLVITX WYPOLNENIE W FONOWOM REVIME)

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 field-begin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 field-end . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 field-name-end . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 field-value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 finish . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 flush_i_cache. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 foo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 fork, OTLADKA PROGRAMM, ISPOLXZU@]IH \TOT WYZOW

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 forward-backward-delete-char () . . . . . . . . . . . . 240

256

oTLADKA S POMO]X@ GDB

forward-char (C-f). . . . . . . . . . . . . . . . . . . . . . . . . . . 239 forward-search. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 forward-search-history (C-s) . . . . . . . . . . . . . . . . 240 forward-word (M-f). . . . . . . . . . . . . . . . . . . . . . . . . . . 239 frame, command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 frame, selecting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 frame-address. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 frame-address-end . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 frame-args . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 frame-begin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 frame-end . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 frame-function-name . . . . . . . . . . . . . . . . . . . . . . . . . 166 frame-source-begin . . . . . . . . . . . . . . . . . . . . . . . . . . 166 frame-source-end . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 frame-source-file . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 frame-source-file-end . . . . . . . . . . . . . . . . . . . . . . . 166 frame-source-line . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 frame-where . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 frames-invalid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 Fujitsu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 function-call. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165

G

g++, KOMPILQTOR gnu sI++. . . . . . . . . . . . . . . . . . . . . 81 `gdb.ini' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 gdb/mi, WNEO^EREDNYE ZAPISI . . . . . . . . . . . . . . . . . 175 gdb/mi, WHODNOJ SINTAKSIS . . . . . . . . . . . . . . . . . . . 171 gdb/mi, WYHODNOJ SINTAKSIS. . . . . . . . . . . . . . . . . . 172 gdb/mi, EGO NAZNA^ENIE . . . . . . . . . . . . . . . . . . . . . . . 171 gdb/mi, KOMANDY TO^KI OSTANOWA . . . . . . . . . . . . . 176 gdb/mi, POTO^NYE ZAPISI . . . . . . . . . . . . . . . . . . . . . 175 gdb/mi, PROSTYE PRIMERY . . . . . . . . . . . . . . . . . . . . 174 gdb/mi, REZULXTIRU@]IE ZAPISI. . . . . . . . . . . . . . 175 gdb/mi, SOWMESTIMOSTX S CLI . . . . . . . . . . . . . . . . . 174 gdb/mi, UPRAWLENIE DANNYMI . . . . . . . . . . . . . . . . . 183 gdb/mi, ^ERNOWIK IZMENENIJ K WYHODNOMU

SINTAKSISU. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 GDBHISTFILE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 gdbserve.nlm. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 gdbserver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 getDebugChar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 gnu Emacs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 gnu sI++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

H

h (help) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 H8/300 ILI H8/500, ZAGRUZKA NA . . . . . . . . . . . . . . 139 handle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 handle_exception . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 hbreak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 help target . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 help user-defined. . . . . . . . . . . . . . . . . . . . . . . . . . . . 157

heuristic-fence-post (Alpha, MIPS) . . . . . . . . . 149 history-search-backward () . . . . . . . . . . . . . . . . . . 240 history-search-forward () . . . . . . . . . . . . . . . . . . . 240 Hitachi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 Hitachi SH, ZAGRUZKA NA . . . . . . . . . . . . . . . . . . . . . . . 139 horizontal-scroll-mode . . . . . . . . . . . . . . . . . . . . . . 233

I

i (info) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 i386 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 `i386-stub.c'. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 i960 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 if . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 ignore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 INCLUDE_RDB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 info address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 info all-registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 info args . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 info breakpoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 info catch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 info display . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 info extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 info f (info frame) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 info files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 info float . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 info frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 info frame, POKAZATX ISHODNYJ QZYK . . . . . . . . . . . 78 info functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 info line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 info locals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 info proc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 info proc id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 info proc mappings . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 info proc status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 info proc times . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 info program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 info registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 info s (info stack) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 info set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 info share . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 info sharedlibrary. . . . . . . . . . . . . . . . . . . . . . . . . . . 108 info signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 info source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 info source, POKAZATX ISHODNYJ QZYK . . . . . . . . . . 78 info sources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 info stack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 info target . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 info terminal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 info threads. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26, 27 info types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 info variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 info watchpoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 input-meta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233

aLFAWITNYJ UKAZATELX

insert-comment (M-#) . . . . . . . . . . . . . . . . . . . . . . . . 244 insert-completions (M-*) . . . . . . . . . . . . . . . . . . . . 243 inspect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 Intel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 isearch-terminators . . . . . . . . . . . . . . . . . . . . . . . . . 233

J

jump . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

102

K

keymap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 kill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 kill-line (C-k) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 kill-region () . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 kill-whole-line (). . . . . . . . . . . . . . . . . . . . . . . . . . . 241 kill-word (M-d) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241

L

l (info list) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 load IMQ-FAJLA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

M

m680x0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 `m68k-stub.c'. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 maint info breakpoints. . . . . . . . . . . . . . . . . . . . . . . . 34 maint print psymbols . . . . . . . . . . . . . . . . . . . . . . . . . . 99 maint print symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 make . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 mapped . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 mark-modified-lines . . . . . . . . . . . . . . . . . . . . . . . . . 234 memset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 menu-complete () . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 meta-flag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 MIPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 MIPS, STEK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 Motorola 680x0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

N

n (next) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 next . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 next-history (C-n). . . . . . . . . . . . . . . . . . . . . . . . . . . 239 nexti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 ni (nexti) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Nindy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 non-incremental-forward-search-history (M-n)

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 non-incremental-reverse-search-history (M-p)

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240

257

O

output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 output-meta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 overload-choice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167

P

path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 possible-completions (M-?) . . . . . . . . . . . . . . . . . . 242 post-commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 post-overload-choice . . . . . . . . . . . . . . . . . . . . . . . . 167 post-prompt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 post-prompt-for-continue . . . . . . . . . . . . . . . . . . . . 167 post-query . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 pre-commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 pre-overload-choice . . . . . . . . . . . . . . . . . . . . . . . . . 167 pre-prompt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 pre-prompt-for-continue . . . . . . . . . . . . . . . . . . . . . 167 pre-query . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 prefix-meta (hESCi) . . . . . . . . . . . . . . . . . . . . . . . . . . 243 previous-history (C-p) . . . . . . . . . . . . . . . . . . . . . . 239 print . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 printf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 prompt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 prompt-for-continue . . . . . . . . . . . . . . . . . . . . . . . . . 167 ptype . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 putDebugChar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 pwd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

Q

q (quit) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 query . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 quit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 quit [WYRAVENIE] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 quoted-insert (C-q, C-v) . . . . . . . . . . . . . . . . . . . . 240

R

r (run) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 rbreak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 re-read-init-file (C-x C-r) . . . . . . . . . . . . . . . . . 243 readline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 readnow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 record . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 redraw-current-line () . . . . . . . . . . . . . . . . . . . . . . 239 remotedebug, PROTOKOL MIPS. . . . . . . . . . . . . . . . . . 144 remotetimeout. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 RET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

RET (POWTORITX POSLEDN@@ KOMANDU) . . . . . . . . . . . 15 retransmit-timeout, PROTOKOL MIPS . . . . . . . . . . 145 return . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 reverse-search. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

258

oTLADKA S POMO]X@ GDB

reverse-search-history (C-r) . . . . . . . . . . . . . . . . 239 revert-line (M-r). . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 run . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 rwatch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

S

s (step) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 select-frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 self-insert (a, b, A, 1, !, ...) . . . . . . . . . . . . . 241 set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 set args . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 set auto-solib-add. . . . . . . . . . . . . . . . . . . . . . . . . . . 108 set check range . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 set check type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 set check, DIAPAZON . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 set check, TIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 set complaints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 set confirm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 set debug arch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 set debug event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 set debug expression . . . . . . . . . . . . . . . . . . . . . . . . . 155 set debug overload . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 set debug remote . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 set debug serial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 set debug target . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 set debug varobj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 set demangle-style. . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 set disassembly-flavour . . . . . . . . . . . . . . . . . . . . . . 59 set editing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 set endian auto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 set endian big . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 set endian little . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 set environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 set extension-language . . . . . . . . . . . . . . . . . . . . . . . 79 set follow-fork-mode . . . . . . . . . . . . . . . . . . . . . . . . . 28 set gnutarget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 set height . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 set history expansion. . . . . . . . . . . . . . . . . . . . . . . . 152 set history filename . . . . . . . . . . . . . . . . . . . . . . . . . 151 set history save . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 set history size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 set input-radix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 set language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 set listsize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 set machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 set memory MOD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 set mipsfpu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 set opaque-type-resolution . . . . . . . . . . . . . . . . . . . 99 set overload-resolution . . . . . . . . . . . . . . . . . . . . . . 86 set print address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 set print array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 set print asm-demangle. . . . . . . . . . . . . . . . . . . . . . . . 71

set print demangle . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 set print elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 set print max-symbolic-offset . . . . . . . . . . . . . . . . 69 set print null-stop . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 set print object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 set print pretty on . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 set print sevenbit-strings . . . . . . . . . . . . . . . . . . . 70 set print static-members . . . . . . . . . . . . . . . . . . . . . 72 set print symbol-filename . . . . . . . . . . . . . . . . . . . . 68 set print union . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 set print vtbl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 set processor ARG . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 set prompt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 set remotedebug, PROTOKOL MIPS. . . . . . . . . . . . . . 144 set retransmit-timeout . . . . . . . . . . . . . . . . . . . . . . 145 set rstack_high_address . . . . . . . . . . . . . . . . . . . . . 148 set symbol-reloading . . . . . . . . . . . . . . . . . . . . . . . . . 98 set timeout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 set variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 set verbose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 set width . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 set write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 set-mark (C-@) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 set_debug_traps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 SH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 `sh-stub.c'. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 share . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 sharedlibrary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 show . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 show args . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 show auto-solib-add . . . . . . . . . . . . . . . . . . . . . . . . . 108 show check range . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 show check type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 show complaints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 show confirm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 show convenience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 show copying . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 show debug arch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 show debug event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 show debug expression. . . . . . . . . . . . . . . . . . . . . . . . 155 show debug overload . . . . . . . . . . . . . . . . . . . . . . . . . . 155 show debug remote . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 show debug serial . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 show debug target . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 show debug varobj . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 show demangle-style . . . . . . . . . . . . . . . . . . . . . . . . . . 72 show directories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 show editing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 show environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 show gnutarget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 show history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 show input-radix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 show language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 show listsize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

aLFAWITNYJ UKAZATELX

259

show machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 show mipsfpu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 show opaque-type-resolution . . . . . . . . . . . . . . . . . . 99 show output-radix . . . . . . . . . . . . . . . . . . . . . . . 153, 154 show paths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 show print address . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 show print array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 show print asm-demangle. . . . . . . . . . . . . . . . . . . . . . . 71 show print demangle . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 show print elements . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 show print max-symbolic-offset . . . . . . . . . . . . . . . 69 show print object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 show print pretty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 show print sevenbit-strings . . . . . . . . . . . . . . . . . . 70 show print static-members . . . . . . . . . . . . . . . . . . . . 72 show print symbol-filename . . . . . . . . . . . . . . . . . . . 68 show print union . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 show print vtbl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 show processor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 show prompt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 show remotedebug, PROTOKOL MIPS. . . . . . . . . . . . . 144 show retransmit-timeout . . . . . . . . . . . . . . . . . . . . . 145 show rstack_high_address . . . . . . . . . . . . . . . . . . . . 149 show symbol-reloading . . . . . . . . . . . . . . . . . . . . . . . . 99 show timeout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 show user . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 show values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 show verbose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 show version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 show warranty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 show width . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 show wight . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 show write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 show-all-if-ambiguous . . . . . . . . . . . . . . . . . . . . . . . 234 shows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 si (stepi) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 signal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103, 169 signal-handler-caller . . . . . . . . . . . . . . . . . . . . . . . 165 signal-name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 signal-name-end . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 signal-string. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 signal-string-end . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 signalled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 silent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 sim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 source. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159, 170 Sparc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 `sparc-stub.c' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 `sparcl-stub.c' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 Sparclet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 SparcLite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 speed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 st2000 KOM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 start-kbd-macro (C-x () . . . . . . . . . . . . . . . . . . . . . 243 starting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169

step . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 stepi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 stop, PSEWDOKOMANDA . . . . . . . . . . . . . . . . . . . . . . . . . . 158 stopping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 symbol-file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

T

tab-insert (M-TAB). . . . . . . . . . . . . . . . . . . . . . . . . . . 240 target . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 target abug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 target adapt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 target amd-eb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 target array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 target bug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 target core . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 target cpu32bug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 target dbug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 target ddb PORT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 target dink32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 target e7000, c Hitachi ICE . . . . . . . . . . . . . . . . . . . 141 target e7000, S H8/300 . . . . . . . . . . . . . . . . . . . . . . . 139 target e7000, S Hitachi SH . . . . . . . . . . . . . . . . . . . . 145 target es1800 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 target est . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 target exec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 target hms I POSLEDOWATELXNYJ PROTOKOL . . . . . 140 target hms, S H8/300 . . . . . . . . . . . . . . . . . . . . . . . . . 138 target hms, S Hitachi SH . . . . . . . . . . . . . . . . . . . . . . 145 target lsi PORT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 target m32r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 target mips PORT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 target mon960 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 target nindy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 target nrom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 target op50n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 target pmon PORT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 target ppcbug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 target ppcbug1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 target r3900 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 target rdi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 target rdp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 target remote . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 target rom68k . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 target rombug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 target sds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 target sh3, S H8/300 . . . . . . . . . . . . . . . . . . . . . . . . . 139 target sh3, S SH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 target sh3e, S H8/300 . . . . . . . . . . . . . . . . . . . . . . . . 139 target sh3e, S SH . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 target sim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 target sim, S Z8000. . . . . . . . . . . . . . . . . . . . . . . . . . . 148 target sparclite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 target vxworks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134

260

target w89k . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 tbreak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 TCP-PORT, target remote . . . . . . . . . . . . . . . . . . . . . 117 thbreak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 this, WNUTRI FUNKCIJ-^LENOW sI++ . . . . . . . . . . . . 84 thread NOMER-NITI . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 threads apply . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 tilde-expand (M-~). . . . . . . . . . . . . . . . . . . . . . . . . . . 244 timeout, PROTOKOL MIPS . . . . . . . . . . . . . . . . . . . . . . 145 transpose-chars (C-t) . . . . . . . . . . . . . . . . . . . . . . . 241 transpose-words (M-t) . . . . . . . . . . . . . . . . . . . . . . . 241 tty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

U

u (until) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 UDI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 udi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 undisplay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 undo (C-_, C-x C-u) . . . . . . . . . . . . . . . . . . . . . . . . . . 243 universal-argument () . . . . . . . . . . . . . . . . . . . . . . . 242 unix-line-discard (C-u) . . . . . . . . . . . . . . . . . . . . . 241 unix-word-rubout (C-w) . . . . . . . . . . . . . . . . . . . . . . 241 unset environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 until . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 up-silently . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 upcase-word (M-u). . . . . . . . . . . . . . . . . . . . . . . . . . . . 241

V

value-begin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 value-end . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 value-history-begin . . . . . . . . . . . . . . . . . . . . . . . . . 164 value-history-end . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 value-history-value . . . . . . . . . . . . . . . . . . . . . . . . . 164 visible-stats. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 VxWorks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 vxworks-timeout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134

W

watch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 watchpoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 whatis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 where . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157

X

x (ISSLEDOWANIE PAMQTI) . . . . . . . . . . . . . . . . . . . . . . . 65 x(ISSLEDOWATX) I info line . . . . . . . . . . . . . . . . . . . . 58 xcoff I sI++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

oTLADKA S POMO]X@ GDB

Y

yank (C-y) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 yank-last-arg (M-., M-_) . . . . . . . . . . . . . . . . . . . . 240 yank-nth-arg (M-C-y) . . . . . . . . . . . . . . . . . . . . . . . . 240 yank-pop (M-y) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242

Z

Z8000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148

Zilog Z8000, IMITATOR . . . . . . . . . . . . . . . . . . . . . . . . 148

a

AWTOMATI^ESKIJ WYBOR NITI . . . . . . . . . . . . . . . . . . . 28 AWTOMATI^ESKOE OTOBRAVENIE . . . . . . . . . . . . . . . . . . 66 AWTOMATI^ESKOE PEREKL@^ENIE MEVDU NITQMI . . 28

AKTIWNYE CELI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

APPARATNYE TO^KI NABL@DENIQ. . . . . . . . . . . . . . . . . 35 ARGUMENTY (WA[EJ PROGRAMMY) . . . . . . . . . . . . . . . . 22 ASINHRONNYJ WYWOD W gdb/mi . . . . . . . . . . . . . . . . . 173 ASSEMBLERNYE INSTRUKCII . . . . . . . . . . . . . . . . . . 58, 59

w

WWOD ^ISEL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 WWOD-WYWOD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 WZAIMODEJSTWIE S readline . . . . . . . . . . . . . . . . . . . . . 229

WNEO^EREDNYE ZAPISI W gdb/mi . . . . . . . . . . . . . . . . 175 WNESENIE IZMENENIJ W DWOI^NYE FAJLY . . . . . . . . 104

WNE[NIJ KADR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

WNUTRENNIE TO^KI OSTANOWA GDB. . . . . . . . . . . . . . . 34

WNUTRENNIJ KADR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 WOZBUVDENIE ISKL@^ENIJ . . . . . . . . . . . . . . . . . . . . . . 38 WOZWRAT IZ FUNKCII . . . . . . . . . . . . . . . . . . . . . . . . . . 103

WOZOBNOWLENIE WYPOLNENIQ . . . . . . . . . . . . . . . . . . . . . 44

WOSSTANOWLENIE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 WOSSTANOWLENIE TEKSTA. . . . . . . . . . . . . . . . . . . . . . . . 230

WREMQ OTWETA, OTLADKA MIPS. . . . . . . . . . . . . . . . . . 149 WSPOMOGATELXNYE KOMANDY ST2000 . . . . . . . . . . . . 148 WSPOMOGATELXNYE PEREMENNYE . . . . . . . . . . . . . . . . . . 73 WSTROENNYE FUNKCII mODULY-2 . . . . . . . . . . . . . . . . 88 WHODNOJ SINTAKSIS DLQ gdb/mi. . . . . . . . . . . . . . . . 171 WYBOR CELEWOGO PORQDKA BAJTOW . . . . . . . . . . . . . . . 113

WYBRANNYJ KADR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 WYWOD DANNYH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

WYWOD MA[INNYH INSTRUKCIJ . . . . . . . . . . . . . . 58, 59

WYWOD SOSTOQNIQ W gdb/mi . . . . . . . . . . . . . . . . . . . . 173 WYZOW make. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

WYZOW PEREGRUVENNYH FUNKCIJ . . . . . . . . . . . . . . . . 84

WYZOW FUNKCIJ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 WYPOLNENIE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 WYPOLNENIE BEZ KADROW . . . . . . . . . . . . . . . . . . . . . . . . 51

WYPOLNENIE I OTLADKA PROGRAMM Sparclet . . . . . 147

WYPOLNENIE, NA Sparclet . . . . . . . . . . . . . . . . . . . . . . 146

aLFAWITNYJ UKAZATELX

WYPOLNQEMYJ FAJL . . . . . . . . . . . . . . . . . . . . . . . . . . .

105

WYRAVENIQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

61

WYRAVENIQ W mODULE-2 . . . . . . . . . . . . . . . . . . . . . . . .

87

WYRAVENIQ W sI I sI++ . . . . . . . . . . . . . . . . . . . . . . .

81

WYRAVENIQ W sI++. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

84

WYHOD W OBOLO^KU. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

13

WYHOD IZ GDB. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

13

WYHODNOJ SINTAKSIS gdb/mi . . . . . . . . . . . . . . . . . .

172

g

GLUPYE WOPROSY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154

d

DAMP SIMWOLOW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

DWOJNOE DWOETO^IE KAK OPERATOR OBLASTI WIDIMOSTI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

DWOJNOE DWOETO^IE, KONTEKST DLQ PEREMENNYH/FUNKCIJ. . . . . . . . . . . . . . . . . . . . . . 62

DIALEKT DISASSEMBLIROWANIQ AT&T . . . . . . . . . . . . 59 DIALEKT DISASSEMBLIROWANIQ Intel. . . . . . . . . . . . . . 59

DIAPAZON, PROWERKA . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

DIAPAZONY DLQ TO^EK OSTANOWA . . . . . . . . . . . . . . . . . 31 DIAPAZONY TO^EK OSTANOWA . . . . . . . . . . . . . . . . . . . . . 31

DINAMI^ESKAQ SBORKA . . . . . . . . . . . . . . . . . . . . . . . . . 107 DOKUMENTACIQ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17, 247

v

VURNALXNYJ WYWOD W gdb/mi . . . . . . . . . . . . . . . . . 173

VURNALXNYJ FAJL DLQ EB29K . . . . . . . . . . . . . . . . 138

z

 

ZAWER[ENIE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. 15

ZAWER[ENIE SLOW. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

15

ZAWER[ENIE STROK, ZAKL@^ENNYH W KAWY^KI. . . . .

16

ZAGRUZKA NA H8/300 ILI H8/500 . . . . . . . . . . . . . . .

139

ZAGRUZKA NA Hitachi SH . . . . . . . . . . . . . . . . . . . . . . .

139

ZAGRUZKA NA Nindy-960 . . . . . . . . . . . . . . . . . . . . . . . .

141

ZAGRUZKA NA Sparclet . . . . . . . . . . . . . . . . . . . . . . . . . .

147

ZAGRUZKA NA VxWorks . . . . . . . . . . . . . . . . . . . . . . . . .

135

ZAPISX W WYPOLNQEMYE FAJLY. . . . . . . . . . . . . . . . .

104

ZAPISX W FAJLY DAMPA . . . . . . . . . . . . . . . . . . . . . . . .

104

ZAPUSK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

21

ZAPUSK ZADA^ VxWorks . . . . . . . . . . . . . . . . . . . . . . . .

135

ZAPUSK PROGRAMM 29K. . . . . . . . . . . . . . . . . . . . . . . . .

136

ZNA^ENIQ PEREMENNYH, NEWERNYE. . . . . . . . . . . . . . . .

62

ZNA^ENIQ sI I sI++ PO UMOL^ANI@. . . . . . . . . . . . .

85

261

i

IDENTIFIKATOR NITI (GDB) . . . . . . . . . . . . . . . . 26, 27

IDENTIFIKATOR NITI (SISTEMNYJ). . . . . . . . . . . . . . 26

IDENTIFIKATOR NITI (SISTEMNYJ), W HP-UX . . . . 27

IDENTIFIKATOR POSLEDOWATELXNOSTI, DLQ UDALENNOGO GDB . . . . . . . . . . . . . . . . . . . . . . . . . 118

IZMENQEMYE OB_EKTY W gdb/mi . . . . . . . . . . . . . . . . 219

IMENA W KAWY^KAH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 IMENA SIMWOLOW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 IMITATOR, Z8000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148

IMQ FAJLA INICIALIZACII . . . . . . . . . . . . . . . . . . . . 159

INSTRUKCII ASSEMBLERA. . . . . . . . . . . . . . . . . . . . . 58, 59 ISKUSSTWENNYE MASSIWY. . . . . . . . . . . . . . . . . . . . . . . . 63 ISSLEDOWANIE DANNYH . . . . . . . . . . . . . . . . . . . . . . . . . . 61 ISSLEDOWANIE PAMQTI . . . . . . . . . . . . . . . . . . . . . . . . . . 65 ISTORIQ ZNA^ENIJ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

k

 

KAWY^KI W KOMANDAH . . . . . . . . . . . . . . . . . . . . . . . . . . .

16

KADR STEKA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

51

KADR, OPREDELENIE . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

51

KANALY. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

22

KATALOG KOMPILQCII. . . . . . . . . . . . . . . . . . . . . . . . . . .

57

KATALOG, TEKU]IJ . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

57

KATALOGI S ISHODNYMI FAJLAMI. . . . . . . . . . . . . . . .

57

KOLXCEWOJ SPISOK UNI^TOVENIJ . . . . . . . . . . . . . . .

230

KOMANDNYE FAJLY . . . . . . . . . . . . . . . . . . . . . . . . . . . .

158

KOMANDY STDBUG (ST2000) . . . . . . . . . . . . . . . . . .

148

KOMANDY DLQ STDBUG (ST2000) . . . . . . . . . . . . . .

148

KOMANDY DLQ sI++. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

85

KOMANDY DLQ TO^EK OSTANOWA . . . . . . . . . . . . . . . . . . .

41

KOMANDY TO^KI OSTANOWA DLQ gdb/mi . . . . . . . . . .

176

KOMANDY-LOWU[KI . . . . . . . . . . . . . . . . . . . . . . . . . . . .

158

KOMMENTARIJ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

15

KOMPILQCII, KATALOG . . . . . . . . . . . . . . . . . . . . . . . . . .

57

KOMPILQCIQ, NA Sparclet . . . . . . . . . . . . . . . . . . . . . .

146

KONSOLXNYJ WYWOD W gdb/mi . . . . . . . . . . . . . . . . . .

173

KONSTANTY mODULY-2 . . . . . . . . . . . . . . . . . . . . . . . . . .

89

KONSTANTY sI I sI++. . . . . . . . . . . . . . . . . . . . . . . . . .

83

KONTROLXNAQ SUMMA, DLQ UDALENNOGO GDB . . . . .

118

KONFIGURACIQ GDB. . . . . . . . . . . . . . . . . . . . . . . . . . .

249

KONFLIKT IMEN PEREMENNYH. . . . . . . . . . . . . . . . . . . .

62

KRITERIJ O[IBKI. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

225

l

LOWU[KI DLQ KOMAND. . . . . . . . . . . . . . . . . . . . . . . . . . 158

262

m

MA[INNYE INSTRUKCII . . . . . . . . . . . . . . . . . . . . . 58, 59 MNOGIE PROCESSY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 MNOVESTWENNYE CELI . . . . . . . . . . . . . . . . . . . . . . . . . 111 MODELI PAMQTI, H8/500 . . . . . . . . . . . . . . . . . . . . . . . 141 mODULA-2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 mODULA-2, OTKLONENIQ OT . . . . . . . . . . . . . . . . . . . . . . 90 mODULA-2, PODDERVKA GDB . . . . . . . . . . . . . . . . . . . . 87

n

NALOVENIE CELEJ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 NASLEDOWANIE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 NA^ALXNYJ KADR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 NEWERNYE ZNA^ENIQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

NEDOPUSTIMYE WHODNYE DANNYE. . . . . . . . . . . . . . . . 225 NEIZWESTNYJ ADRES, NAHOVDENIE . . . . . . . . . . . . . . . . 64 NEMEDLENNOE ^TENIE SIMWOLOW . . . . . . . . . . . . . . . . . 106

NITI WYPOLNENIQ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 NITI I TO^KI NABL@DENIQ. . . . . . . . . . . . . . . . . . . . . . 37

NITI, AWTOMATI^ESKOE PEREKL@^ENIE . . . . . . . . . . . 28

NITI, OSTANOWLENNYE . . . . . . . . . . . . . . . . . . . . . . . . . . 48 NITI, PRODOLVENIE . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

NITX, WYDELENNAQ DLQ OTLADKI . . . . . . . . . . . . . . . . . 26

NOMER WERSII . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 NOMER KADRA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 NOMER NITI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26, 27 NOMERA W ISTORII. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

NOMERA DLQ TO^EK OSTANOWA. . . . . . . . . . . . . . . . . . . . . 31

NOMERA TO^EK OSTANOWA. . . . . . . . . . . . . . . . . . . . . . . . . 31

o

 

OBZOR UDALENNOJ POSLEDOWATELXNOJ OTLADKI . . .

116

OBLASTX WIDIMOSTI . . . . . . . . . . . . . . . . . . . . . . . . . . . .

90

OBOZNA^ENIQ, readline . . . . . . . . . . . . . . . . . . . . . . . . .

229

OBRABOTKA ISKL@^ENIJ sI++ . . . . . . . . . . . . . . . . . . .

86

OBRABOTKA SIGNALOW. . . . . . . . . . . . . . . . . . . . . . . . . . . .

47

OBRABOTKA SOBYTIJ . . . . . . . . . . . . . . . . . . . . . . . . . . . .

37

OBRABOT^IKI ISKL@^ENIJ . . . . . . . . . . . . . . . . . . . . . .

37

OBRABOT^IKI ISKL@^ENIJ, KAK IH PROSMOTRETX. .

54

OBRAZ PROCESSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

133

OB_EKT QDRA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

132

OB_EKTNYE FORMATY I sI++ . . . . . . . . . . . . . . . . . . .

84

OB_QWLENIE SSYLOK . . . . . . . . . . . . . . . . . . . . . . . . . . . .

84

ODINO^NYJ UKAZATELX, INTERPRETACIQ . . . . . . . . . .

69

OPERATORY mODULY-2 . . . . . . . . . . . . . . . . . . . . . . . . . .

87

OPERATORY sI I sI++. . . . . . . . . . . . . . . . . . . . . . . . . .

81

OPREDELENIE OBLASTI WIDIMOSTI W sI++ . . . . . . . .

62

OPREDELQEMYE POLXZOWATELEM KOMANDY . . . . . . . .

157

OPTIMIZIROWANNYJ KOD, OTLADKA . . . . . . . . . . . . . . .

21

OSTANOW W PEREGRUVENNYH FUNKCIQH. . . . . . . . . . . .

85

OSTANOWLENNYE NITI . . . . . . . . . . . . . . . . . . . . . . . . . . .

48

OTLADKA OPTIMIZIROWANNOGO KODA . . . . . . . . . . . . . .

21

oTLADKA S POMO]X@ GDB

OTLADO^NAQ ZAGLU[KA, PRIMER . . . . . . . . . . . . . . . .

118

OTLADO^NAQ CELX. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

111

OTOBRAVENIE WYRAVENIJ. . . . . . . . . . . . . . . . . . . . . . .

66

OTOBRAVENIE OB_EKTOW QDRA. . . . . . . . . . . . . . . . . . .

132

OTOBRAVENIE SIMWOLOW sI++ . . . . . . . . . . . . . . . . . . .

86

OTRICATELXNYE NOMERA TO^EK OSTANOWA . . . . . . . . .

34

OT^ETY OB O[IBKAH. . . . . . . . . . . . . . . . . . . . . . . . . . .

225

OT^ETY OB O[IBKAH W GDB. . . . . . . . . . . . . . . . . . . .

225

O^ISTKA TO^EK OSTANOWA, NABL@DENIQ, PEREHWATA

 

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

38

O[IBKA PRI PRAWILXNYH WHODNYH DANNYH . . . . .

225

O[IBKI W GDB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

225

O[IBKI W GDB, OT^ETY. . . . . . . . . . . . . . . . . . . . . . .

225

p

 

PAKETY, OT^ET NA STANDARTNYJ WYWOD . . . . . . . . .

155

PAMQTX, PROSMOTR W WIDE TIPIZIROWANNOGO OB_EKTA

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

61

PARAMETRY FORMATA . . . . . . . . . . . . . . . . . . . . . . . . . . .

68

pASKALX. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. 1

PAUZY PRI WYWODE . . . . . . . . . . . . . . . . . . . . . . . . . . . .

153

PEREGRUVENNYE FUNKCII, WYZOW . . . . . . . . . . . . . . . .

84

PEREGRUVENNYE FUNKCII, RAZRE[ENIE

 

PEREGRUVENNYH IMEN . . . . . . . . . . . . . . . . . . . . . .

86

PEREGRUZKA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

42

PEREGRUZKA W sI++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

85

PEREGRUZKA SIMWOLOW. . . . . . . . . . . . . . . . . . . . . . . . . . .

42

PEREKL@^ENIE MEVDU NITQMI . . . . . . . . . . . . . . . . . .

26

PEREMENNYE, PRISWAIWANIE ZNA^ENIJ . . . . . . . . . .

101

PERENAPRAWLENIE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

24

PEREHWAT ISKL@^ENIJ, SPISOK AKTIWNYH

 

OBRABOT^IKOW . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

54

PLAWA@]AQ TO^KA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

75

PLAWA@]AQ TO^KA, UDALENNYJ MIPS . . . . . . . . . . .

144

PLATA EB29K. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

136

POWTOR KOMAND. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

15

POWTORNAQ ZAGRUZKA SIMWOLOW . . . . . . . . . . . . . . . . . .

98

PODDERVKA sI++, BEZ coff . . . . . . . . . . . . . . . . . . . . .

84

PODPROGRAMMA breakpoint, UDALENNAQ . . . . . . . . .

115

PODSTANOWKA ISTORII . . . . . . . . . . . . . . . . . . . . . . . . .

151

PODTWERVDENIE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

154

PODTWERVDENIE, DLQ UDALENNOGO GDB . . . . . . . . .

118

POISK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

56

POSLEDNQQ TO^KA OSTANOWA. . . . . . . . . . . . . . . . . . . . . .

32

POSLEDOWATELXNAQ LINIQ, target remote . . . . . . .

117

POSLEDOWATELXNOE USTROJSTWO, MIKROPROCESSORY

 

Hitachi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

139

POSLEDOWATELXNYE SOEDINENIQ, OTLADKA. . . . . . . .

155

POSLEDOWATELXNYJ PROTOKOL, UDALENNYJ GDB

 

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

118

POTO^NYE ZAPISI W gdb/mi . . . . . . . . . . . . . . . . . . . .

175

PO[AGOWOE WYPOLNENIE. . . . . . . . . . . . . . . . . . . . . . . . .

44

PREDSTAWLENIE ^ISEL. . . . . . . . . . . . . . . . . . . . . . . . . .

153

aLFAWITNYJ UKAZATELX

PREOBRAZOWANIE TIPOW W sI++ . . . . . . . . . . . . . . . . . .

84

PRERYWANIE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

13

PRERYWANIE UDALENNOJ PROGRAMMY . . . . . . . . . . . .

117

PRERYWANIE UDALENNYH CELEJ . . . . . . . . . . . . . . . . .

116

PREFIKS server DLQ PRIME^ANIJ . . . . . . . . . . . . . . .

163

PRIWEDENIE OBLASTI PAMQTI K TIPU. . . . . . . . . . . . .

61

PRIWEDENIE, DLQ PROSMOTRA PAMQTI . . . . . . . . . . . .

61

PRIGLA[ENIE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

151

PRIMER ZAGLU[KI, UDALENNAQ OTLADKA . . . . . . . . .

118

PRIME^ANIQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

163

PRIME^ANIQ K WYPOLNQ@]IMSQ PROGRAMMAM . . .

169

PRIME^ANIQ K ZNA^ENIQM. . . . . . . . . . . . . . . . . . . . . .

164

PRIME^ANIQ K KADRAM. . . . . . . . . . . . . . . . . . . . . . . . .

165

PRIME^ANIQ K OTOBRAVENI@ ISHODNOGO TEKSTA. .

170

PRIME^ANIQ K OTOBRAVENIQM. . . . . . . . . . . . . . . . . .

166

PRIME^ANIQ K O[IBKAM, PREDUPREVDENIQM I

 

PRERYWANIQM. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

168

PRIME^ANIQ K PRIGLA[ENIQM . . . . . . . . . . . . . . . . .

167

PRIME^ANIQ K SOOB]ENIQM O NEDOSTOWERNOSTI. .

169

PRIME^ANIQ K TO^KAM OSTANOWA . . . . . . . . . . . . . . .

168

PRISWAIWANIE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

101

PRISOEDINENIE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

25

PROWERKA DIAPAZONA . . . . . . . . . . . . . . . . . . . . . . . . . . .

80

PROWERKA TIPOW. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

79

PROWERKI W sI I sI++ . . . . . . . . . . . . . . . . . . . . . . . . .

85

PROWERKI mODULY-2. . . . . . . . . . . . . . . . . . . . . . . . . . . .

90

PROGRAMMNYE TO^KI NABL@DENIQ . . . . . . . . . . . . . . .

35

PRODOLVENIE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

44

PRODOLVENIE S NITQMI. . . . . . . . . . . . . . . . . . . . . . . . .

48

PROSTRANSTWO IMEN W sI++ . . . . . . . . . . . . . . . . . . . . .

84

PROTOKOL MIPS remotedebug . . . . . . . . . . . . . . . . . .

144

PROTOKOL, UDALENNYJ POSLEDOWATELXNYJ GDB

 

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

118

PUTI DLQ ISHODNYH FAJLOW. . . . . . . . . . . . . . . . . . . . .

57

r

RABO^IJ KATALOG. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

RABO^IJ KATALOG (WA[EJ PROGRAMMY). . . . . . . . . . . 24

RABO^IJ QZYK. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 RAZDELQEMYE BIBLIOTEKI. . . . . . . . . . . . . . . . . . . . . . 107 RAZMER ISTORII . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 RAZMER \KRANA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 RASKRYWANIE ISTORII . . . . . . . . . . . . . . . . . . . . 152, 245 REGISTRY. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

REGISTRY S PLAWA@]EJ TO^KOJ . . . . . . . . . . . . . . . . . 74

REGULQRNOE WYRAVENIE. . . . . . . . . . . . . . . . . . . . . . . . . 33 REDAKTIROWANIE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 REDAKTIROWANIE KOMAND. . . . . . . . . . . . . . . . . . . . . . . 229

REDAKTIROWANIE KOMANDNOJ STROKI . . . . . . . . . . . . 151 REDAKTIROWANIE KOMANDNYH STROK. . . . . . . . . . . . . 229 REZULXTIRU@]IE ZAPISI W gdb/mi . . . . . . . . . . . . 175

263

s

 

SBOJ OTLAD^IKA. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . 225

sI I sI++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . 81

sI++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . 81

sI++ I OB_EKTNYE FORMATY . . . . . . . . . . . . . . . . . .

. 84

SIGNALY. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. 46

SIMWOLY, NEMEDLENNOE ^TENIE. . . . . . . . . . . . . . . . .

106

SKOROSTX POSLEDOWATELXNOJ LINII,

 

MIKROPROCESSORY Hitachi . . . . . . . . . . . . . . . . .

139

SOBYTIQ ISTORII . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

245

SOWMESTIMOSTX, gdb/mi I CLI . . . . . . . . . . . . . . . . .

174

SOGLA[ENIQ, ISPOLXZUEMYE W SISTEME OBOZNA^ENIJ,

DLQ gdb/mi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

171

SOEDINENIE (S STDBUG) . . . . . . . . . . . . . . . . . . . . . .

148

SOKRA]ENIQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

15

SOOB]ENIE O NOWOM SIST-TEGE . . . . . . . . . . . . . . . . . . .

26

SOOB]ENIE O NOWOM SIST-TEGE, W HP-UX . . . . . . . . . .

27

SOHRANENIE ISTORII . . . . . . . . . . . . . . . . . . . . . . . . . .

152

SOHRANENIE TABLICY SIMWOLOW . . . . . . . . . . . . . . . .

106

SPISOK UDALENNYH POSLEDOWATELXNYH ZAGLU[EK

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

114

SPRAWO^NAQ KARTO^KA . . . . . . . . . . . . . . . . . . . . . . . . .

247

SPRAWO^NAQ KARTO^KA PO GDB . . . . . . . . . . . . . . . . .

247

SREDA (WA[EJ PROGRAMMY) . . . . . . . . . . . . . . . . . . . . .

23

STEK WYZOWOW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

51, 52

STEK NA Alpha . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

149

STEK NA MIPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

149

STEK REGISTROW, AMD 29K . . . . . . . . . . . . . . . . . . . .

148

STILX DEKODIROWANIQ SIMWOLOW sI++ . . . . . . . . . . .

71

S^ET^IK IGNORIROWANIJ (TO^EK OSTANOWA) . . . . . . .

41

t

TABLICA SIMWOLOW . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 TEKU]AQ NITX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 TEKU]IJ KADR STEKA . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 TEKU]IJ KATALOG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 TERMINAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 TIPY, PROWERKA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 TIHIJ WYBOR STEKA . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

TO^KA OSTANOWA PO ADRESU PAMQTI . . . . . . . . . . . . . . 31 TO^KA OSTANOWA PO IZMENENI@ PEREMENNOJ . . . . . . 31 TO^KA OSTANOWA PO SOBYTI@ . . . . . . . . . . . . . . . . . . . . 31

TO^KI NABL@DENIQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 TO^KI NABL@DENIQ I NITI. . . . . . . . . . . . . . . . . . . . . . 37 TO^KI OSTANOWA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 TO^KI OSTANOWA W NITQH. . . . . . . . . . . . . . . . . . . . . . . . 48 TO^KI OSTANOWA I NITI. . . . . . . . . . . . . . . . . . . . . . . . . 48 TO^KI PEREHWATA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

TO^KI PEREHWATA, USTANOWKA. . . . . . . . . . . . . . . . . . . . 37

TRASSIROWKA PAMQTI . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

264

u

UWEDOMITELXNYJ WYWOD W gdb/mi. . . . . . . . . . . . . . 173 UDALENNAQ ZAGLU[KA, PODPROGRAMMY PODDERVKI

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

UDALENNAQ ZAGLU[KA, PRIMER. . . . . . . . . . . . . . . . . . 118

UDALENNAQ OTLADKA . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

UDALENNAQ POSLEDOWATELXNAQ ZAGLU[KA . . . . . . . . 115 UDALENNAQ POSLEDOWATELXNAQ ZAGLU[KA, GLAWNAQ

PODPROGRAMMA. . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

UDALENNAQ POSLEDOWATELXNAQ ZAGLU[KA,

INICIALIZACIQ . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

UDALENNAQ POSLEDOWATELXNAQ OTLADKA, OBZOR . . . 114 UDALENNOE SOEDINENIE BEZ ZAGLU[EK . . . . . . . . . . . 130 UDALENNYE PROGRAMMY, PRERYWANIE . . . . . . . . . . . 117 UDALENNYJ POSLEDOWATELXNYJ PROTOKOL . . . . . . . 118

UKAZATELI SOBYTIJ . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 UKAZATELI STROK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 UKAZATELX KADRA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

UKAZATELX, NAHOVDENIE OB_EKTA SSYLKI. . . . . . . . . 69

UNI^TOVENIE TEKSTA . . . . . . . . . . . . . . . . . . . . . . . . . . 230

UNI^TOVENIE TO^EK OSTANOWA. . . . . . . . . . . . . . . . . . . 39 UNI^TOVENIE TO^EK OSTANOWA, NABL@DENIQ,

PEREHWATA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

UPRAWLENIE DANNYMI, W gdb/mi . . . . . . . . . . . . . . . 183

UPRAWLQ@]IJ TERMINAL . . . . . . . . . . . . . . . . . . . . . . . 24 USLOWIQ I TO^KI OSTANOWA . . . . . . . . . . . . . . . . . . . . . . 40 USLOWNYE TO^KI OSTANOWA . . . . . . . . . . . . . . . . . . . . . . 40 USTANOWKA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249

USTANOWKA ZNA^ENIJ PEREMENNYH . . . . . . . . . . . . . . 101 USTANOWKA TO^EK NABL@DENIQ. . . . . . . . . . . . . . . . . . . 35

USTANOWKI WYWODA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

oTLADKA S POMO]X@ GDB

USTANOWKI PO UMOL^ANI@ mODULY-2 . . . . . . . . . . . . 90

f

FAJL DAMPA PAMQTI . . . . . . . . . . . . . . . . . . . . . . . . . . 105 FAJL INICIALIZACII . . . . . . . . . . . . . . . . . . . . . . . . . 158

FAJL INICIALIZACII, readline. . . . . . . . . . . . . . . . . 232

FAJL ISTORII . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151

FAJLY SIMWOLOW, OTOBRAVAEMYE W PAMQTX . . . . . 106

FATALXNYE SIGNALY . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 FATALXNYJ SIGNAL. . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 FORMATIROWANNYJ WYWOD . . . . . . . . . . . . . . . . . . . . . . 64 FORMATY WYWODA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 fORTRAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 FUNKCII-^LENY. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

c

CELEWOJ WYWOD W gdb/mi . . . . . . . . . . . . . . . . . . . . . . 173 CELEWOJ PORQDOK BAJTOW. . . . . . . . . . . . . . . . . . . . . . . 113 CEPO^KI WYZOWOW. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

~

^ASTI^NYJ DAMP SIMWOLOW . . . . . . . . . . . . . . . . . . . . . 99 ^ERNOWIK IZMENENIJ K WYHODNOMU SINTAKSISU

gdb/mi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222

q

QZYKI PROGRAMMIROWANIQ . . . . . . . . . . . . . . . . . . . . . . 77

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]