1.linux shellç¼ç¨ find -name *.c -print|xargs grep $1
2.linux printå½ä»¤
3.c语言print这个函数怎么用
linux shellç¼ç¨ find -name *.c -print|xargs grep $1
find -name *.c -print æ¾*.cå¹é çæ件
| 管é
xargs é²æ¢å½ä»¤è¡è¿é¿ï¼è¯¦ç»çåè½ä½ æ¥ä¸ä¸å§
grep $1 è¿æ»¤å符å¹é åé$1çè¡
ä½ è¿è¯åºè¯¥æ¯ä»èæ¬æåºæ¥çå§ï¼$1ä¸è¬ä»£è¡¨èæ¬æå½æ°ç第ä¸ä¸ªåæ°
linux printå½ä»¤
å ·ä½åæ°å讲解å¦ä¸ï¼
printå½ä»¤çæ ¼å¼æ¯ï¼
print xxx
p xxx
1. print æä½ç¬¦
@
æ¯ä¸ä¸ªåæ°ç»æå ³çæä½ç¬¦ï¼å¨åé¢ä¼ææ´è¯¦ç»ç说æã
::
æå®ä¸ä¸ªå¨æ件ææ¯ä¸ä¸ªå½æ°ä¸çåéã
{ }
表示ä¸ä¸ªæåå åå°åçç±»å为typeçä¸ä¸ªå¯¹è±¡ã
2. å¯çå 容
å ¨å±åéï¼æææ件å¯è§çï¼
éæå ¨å±åéï¼å½åæ件å¯è§çï¼
å±é¨åéï¼å½åScopeå¯è§çï¼
å¦æä½ çå±é¨åéåå ¨å±åéåçå²çªï¼ä¹å°±æ¯éåï¼ï¼ä¸è¬æ åµä¸æ¯å±é¨åéä¼éèå ¨å±åéãå¦ææ¤æ¶ä½ æ³æ¥çå ¨å±åéçå¼æ¶ï¼ä½ å¯ä»¥ä½¿ç¨â::âæä½ç¬¦ï¼
file::variable
function::variable
eg:
æ¥çæ件f2.cä¸çå ¨å±åéxçå¼ï¼
gdb) p 'f2.c'::x
注ï¼å¦æä½ çç¨åºç¼è¯æ¶å¼å¯äºä¼åé项ï¼é£ä¹å¨ç¨GDBè°è¯è¢«ä¼åè¿çç¨åºæ¶ï¼å¯è½ä¼åçæäºåéä¸è½è®¿é®ï¼ææ¯åå¼é误ç çæ åµã对ä»è¿ç§æ åµæ¶ï¼éè¦å¨ç¼è¯ç¨åºæ¶å ³éç¼è¯ä¼åãGCCï¼ä½ å¯ä»¥ä½¿ç¨â-gstabsâ é项æ¥è§£å³è¿ä¸ªé®é¢ã
3. å¯çæ°ç»
(1)å¨ææ°ç»ï¼
p *array@len
array:æ°ç»çé¦å°åï¼len:æ°æ®çé¿åº¦
eg:
(gdb) p *array@len
$1 = { 2, 4, 6, 8, }
(2)éææ°ç»
å¯ä»¥ç´æ¥ç¨printæ°ç»åï¼å°±å¯ä»¥æ¾ç¤ºæ°ç»ä¸æææ°æ®çå 容äºã
4. è¾åºæ ¼å¼
x æåå è¿å¶æ ¼å¼æ¾ç¤ºåéã
d æåè¿å¶æ ¼å¼æ¾ç¤ºåéã
u æåå è¿å¶æ ¼å¼æ¾ç¤ºæ 符å·æ´åã
o æå «è¿å¶æ ¼å¼æ¾ç¤ºåéã
t æäºè¿å¶æ ¼å¼æ¾ç¤ºåéã
a æåå è¿å¶æ ¼å¼æ¾ç¤ºåéã
c æåç¬¦æ ¼å¼æ¾ç¤ºåéã
f ææµ®ç¹æ°æ ¼å¼æ¾ç¤ºåéã
eg:
(gdb) p i
$ =
(gdb) p/a i
$ = 0x
(gdb) p/c i
$ = 'e'
5. å¯çå å
使ç¨examineï¼ç®åxï¼æ¥æ¥çå åå°åä¸çå¼ãè¯æ³ï¼
x/
nãfãuæ¯å¯éçåæ°ã
ï¼1ï¼n æ¯ä¸ä¸ªæ£æ´æ°ï¼è¡¨ç¤ºæ¾ç¤ºå åçé¿åº¦ï¼ä¹å°±æ¯è¯´ä»å½åå°åååæ¾ç¤ºå 个å°åçå 容ã
ï¼2ï¼f 表示æ¾ç¤ºçæ ¼å¼ï¼åè§ä¸é¢ãå¦æå°åææçæ¯å符串ï¼é£ä¹æ ¼å¼å¯ä»¥æ¯sï¼å¦æå°åæ¯æ令å°åï¼é£ä¹æ ¼å¼å¯ä»¥æ¯iã
ï¼3ï¼u 表示ä»å½åå°åå¾å请æ±çåèæ°ï¼å¦æä¸æå®çè¯ï¼GDBé»è®¤æ¯4个bytesãuåæ°å¯ä»¥ç¨ä¸é¢çå符æ¥ä»£æ¿ï¼b表示ååèï¼h表示ååèï¼w表示åå èï¼gè¡¨ç¤ºå «åèãå½æ们æå®äºåèé¿åº¦åï¼GDBä¼ä»æå åå®çå åå°åå¼å§ï¼è¯»åæå®åèï¼å¹¶æå ¶å½ä½ä¸ä¸ªå¼ååºæ¥ã
eg:
x/3uh 0x ï¼ä»å åå°å0x读åå 容ï¼h表示以ååè为ä¸ä¸ªåä½ï¼3表示ä¸ä¸ªåä½ï¼u表示æåå è¿å¶æ¾ç¤ºã
6. å¯çå¯åå¨
ï¼1ï¼è¦æ¥çå¯åå¨çå¼ï¼å¾ç®åï¼å¯ä»¥ä½¿ç¨å¦ä¸å½ä»¤ï¼
info registers
ï¼2ï¼æ¥çå¯åå¨çæ åµãï¼é¤äºæµ®ç¹å¯åå¨ï¼
info all-registers
ï¼3ï¼æ¥çææå¯åå¨çæ åµãï¼å æ¬æµ®ç¹å¯åå¨ï¼
info registers
ï¼4ï¼æ¥çææå®çå¯åå¨çæ åµã
å¯åå¨ä¸æ¾ç½®äºç¨åºè¿è¡æ¶çæ°æ®ï¼æ¯å¦ç¨åºå½åè¿è¡çæ令å°åï¼ipï¼ï¼ç¨åºçå½åå æ å°åï¼spï¼ççãä½ åæ ·å¯ä»¥ä½¿ç¨printå½ä»¤æ¥è®¿é®å¯åå¨çæ åµï¼åªéè¦å¨å¯åå¨åååå ä¸ä¸ª$符å·å°±å¯ä»¥äºãå¦ï¼p $eipã
7. displayèªå¨æ¾ç¤ºçåé
ï¼1ï¼æ ¼å¼ï¼display[/i|s] [expression | addr]
eg:
display/i $pc
$pcæ¯GDBçç¯å¢åéï¼è¡¨ç¤ºçæ令çå°åï¼/iå表示è¾åºæ ¼å¼ä¸ºæºå¨æ令ç ï¼ä¹å°±æ¯æ±ç¼ãäºæ¯å½ç¨åºåä¸åï¼å°±ä¼åºç°æºä»£ç åæºå¨æ令ç ç¸å¯¹åºçæ å½¢ï¼è¿æ¯ä¸ä¸ªå¾æææçåè½ã
ï¼2ï¼å ¶ä»
undisplay
delete display
å é¤èªå¨æ¾ç¤ºï¼dnumsæ为æ设置好äºçèªå¨æ¾å¼çç¼å·ãå¦æè¦åæ¶å é¤å 个ï¼ç¼å·å¯ä»¥ç¨ç©ºæ ¼åéï¼å¦æè¦å é¤ä¸ä¸ªèå´å çç¼å·ï¼å¯ä»¥ç¨åå·è¡¨ç¤ºï¼å¦ï¼2-5ï¼
disable display
enable display
disableåenalbeä¸å é¤èªå¨æ¾ç¤ºç设置ï¼èåªæ¯è®©å ¶å¤±æåæ¢å¤ã
info display
æ¥çdisplay设置çèªå¨æ¾ç¤ºçä¿¡æ¯ãGDBä¼æåºä¸å¼ è¡¨æ ¼ï¼åä½ æ¥åå½ç¶è°è¯ä¸è®¾ç½®äºå¤å°ä¸ªèªå¨æ¾ç¤ºè®¾ç½®ï¼å ¶ä¸å æ¬ï¼è®¾ç½®çç¼å·ï¼è¡¨è¾¾å¼ï¼æ¯å¦enableã
8. 设置
ï¼1ï¼set print address
set print address on
æå¼å°åè¾åºï¼å½ç¨åºæ¾ç¤ºå½æ°ä¿¡æ¯æ¶ï¼GDBä¼æ¾åºå½æ°çåæ°å°åã
ï¼2ï¼set print array
set print array on
æå¼æ°ç»æ¾ç¤ºï¼æå¼åå½æ°ç»æ¾ç¤ºæ¶ï¼æ¯ä¸ªå ç´ å ä¸è¡ï¼å¦æä¸æå¼çè¯ï¼æ¯ä¸ªå ç´ å以éå·åéã
ï¼3ï¼set print elements
è¿ä¸ªé项主è¦æ¯è®¾ç½®æ°ç»çï¼å¦æä½ çæ°ç»å¤ªå¤§äºï¼é£ä¹å°±å¯ä»¥æå®ä¸ä¸ªæ¥æå®æ°æ®æ¾ç¤ºçæ大é¿åº¦ï¼å½å°è¾¾è¿ä¸ªé¿åº¦æ¶ï¼GDBå°±ä¸åå¾ä¸æ¾ç¤ºäºãå¦æ设置为0ï¼å表示ä¸éå¶ã
ï¼4ï¼set print null-stop
å¦ææå¼äºè¿ä¸ªé项ï¼é£ä¹å½æ¾ç¤ºå符串æ¶ï¼éå°ç»æ符ååæ¢æ¾ç¤ºãè¿ä¸ªé项é»è®¤ä¸ºoffã
ï¼5ï¼set print pretty on
å¦ææå¼printf prettyè¿ä¸ªé项ï¼é£ä¹å½GDBæ¾ç¤ºç»æä½æ¶ä¼æ¯è¾æ¼äº®ãå¦ï¼
$1 = {
next = 0x0,
flags = {
sweet = 1,
sour = 1
},
meat = 0x "Pork"
}
ï¼6ï¼set print union
设置æ¾ç¤ºç»æä½æ¶ï¼æ¯å¦æ¾å¼å ¶å çèåä½æ°æ®ã
ï¼7ï¼set print object
å¨C++ä¸ï¼å¦æä¸ä¸ªå¯¹è±¡æéæåå ¶æ´¾çç±»ï¼å¦ææå¼è¿ä¸ªé项ï¼GDBä¼èªå¨æç §èæ¹æ³è°ç¨çè§åæ¾ç¤ºè¾åºï¼å¦æå ³éè¿ä¸ªé项çè¯ï¼GDBå°±ä¸ç®¡èå½æ°è¡¨äºã
c语言print这个函数怎么用
C语言中的printf函数是一个强大的格式化输出工具,其核心在于"格式控制字符串"和变量列表的配合。格式控制字符串以%符号开始,可以指定输出类型,如%d表示整数,netty的源码%c表示字符。伪装短信源码变量列表则是要输出的实际数据,如int a=3, b=4时,`printf("a=%d, b=%d", a, b)`会显示a和b的值。 printf的主要作用是按照预设的格式将信息输出到标准输出设备,其调用格式为`printf("", )`。这个函数在stdio.h库中定义,输出内容可以包含普通字符、java众筹源码转义字符,甚至通过格式控制符定制输出的细节,如宽度、精度和类型。量化源码 经典策略 具体使用时,格式控制字符串由字符串常量、格式控制符和转义字符构成。字符串常量通常作为提示,小程序 源码 破解而格式符如`%d`或`%c`后面跟的参数类型决定了输出的数据类型。例如,`printf("%d", i)`会输出整型变量i的值。 格式控制字符串的详细构成是`%[flags][width][.prec][length]type`,其中flags、width、prec和length用于设置格式化选项,type则指定数据类型。总的来说,printf函数允许用户灵活定制输出的样式,是C语言编程中不可或缺的输出工具。