时间:2021-07-01 10:21:17 帮助过:7人阅读
find ./ -name "*.sql" | awk ‘{ cmd_str="\""$0"\""; print cmd_str}‘ | xargs grep -rn IFUSEDESTROUTE
dir /v8t/ngtf/server/trade_server:$cdir:$cwd
break commit_mq_thread.cpp:59 if (processing_idx==636645)
dir /tmp/src/data_pump:$cdir:$cwd
dir /home/yong.liu2/src/arch/offer2/offer/exch_market/offer_test/recv_czcemd:$cdir:$cwd
break zk_mgr.cpp:210
break zk_mgr.cpp:902
gdb -c core文件 执行文件 #查看core文件
gdb -d /tmp/jinyuankehuwenti/src_v8t/product/v8t/trade_server:/tmp/jinyuankehuwenti/src_v8t/ngtf/server/trade_server trade_server
>dir /tmp/jinyuankehuwenti/src_v8t/product/v8t/trade_server:/tmp/jinyuankehuwenti/src_v8t/ngtf/server/trade_server:$cdir:$cwd  #设置源代码路径
break process_thread.cpp:123 if ((info.serialno==660390))
>break public_business.cpp:8321 if (FldCancelReturnReq.entrust_no==1)
>display FldShMarginDisSyn.bs_margin_flag
>break public_business.cpp:5774 if ((cur_serial>=854398)&&(cur_serial<=85502)) 
break sync_hold_handle.cpp:5290 if ((strcmp(req.tx_no.buf, "02200667")==0)&&(strcmp(req.contract_code.buf,"ag1512")==0)) 
dir /tmp/offer:/tmp/offer/zk_2:$cdir:$cwd
break zk_mgr.cpp:1153
 gdb -d /tmp/v8t_8316_test/src/product/v8t/trade_server trade_server
 
gdb -d {src路径}  程序名|;|core文件
>start           #开始运行并在main中停止
>dir /tmp/v8t_8316_test/src/product/v8t/trade_server:/tmp/v8t_8316_test/src/ngtf/server/trade_server/:$cdir:$cwd  #设置源代码路径
>list CAppServer::Run()      #查看源代码
>ctrl+x+a #显示/隐藏图形化
> break appserver.cpp:318 if ((serialno==101475)||(serialno==105431))  #条件断点
break process_thread.cpp:123 if (nextSequence==25528)
break appserver.cpp:238
> break public_business.cpp:5933 if (FldDoneReturnReq.entrust_no==151940)
> break order_manage.cpp:2045 if (strcmp(FldFundReq.cust_no, "1001101771")==0)
break order_manage.cpp:12530
>break appserver.cpp:318 if ((serialno>=1023942)) #((serialno>=1048506))
 break public_business.cpp:10088 if (strcmp(FldDoneReturnReq.exch_done_no, "00000594")==0)
(gdb) call close(1)   
(gdb) call close(2)  
(gdb) shell tty  
/dev/pts/0  
(gdb) call open("/dev/pts/0",2)  
(gdb) call open("/dev/pts/0",2) 
>dir /tmp/v8t_src/v8t_8311/product/v8t/trade_bu
>break entrust.cpp:78
> break module_func.cpp:1258
  break trade_pub.cpp:14562
  break P_cal_can_open_qty
1.命令:file 文件名
  功能:将指定的可执行文件加载到gdb中;
  
  命令:-d {directory}
       -directory={directory}
  功能:指定源文件和头文件所在的路径
  
  命令:set args 运行参数
       show args
  功能:设置或查看运行参数
  
  命令:path [directory] #把目录directory加入到搜索可执行文件和符号文件的路径中
       show paths #查看程序的运行路径。
  功能:设置或查看程序运行路径
  
  命令:-cd={directory}
  功能:以指定目录作为当前路径来运行 gdb 
  
  命令:
      set environment varname [=value] #设置环境变量。如:set env USER=hchen
      show environment [varname] #查看环境变量。 
  功能:设置或查看环境变量
  
  命令:cd
  
  命令:
       attach
       detach
  功能:挂接/取消挂接的进程
  
  命令:info program #查看程序的是否在运行,进程号
       info break [n] #查看断点
	   info breakpoints [n]
	   info watchpoints #列出当前设置的所有观察点
	   info locals #打印出当前函数中所有局部变量及其值
	   info catch  #打印出当前的函数中的异常处理信息
	   info [files/share] #列出当前的文件,共享库
  功能:查看程序的是否在运行,进程号
  
  命令:?????
  功能:指定工作目录、运行参数
  
  命令:?????
  功能:加载可执行文件或依赖的动态库
  
  
  
  
  命令: list
  功能: 查看源代码
  
  命令:?????
  功能:查看指定文件、指定位置或函数的源代码
  
  
  命令: b/break [行号] #设置断点
        b/break [函数名] #设置断点  
		b/break [+/-]offset
		b/break file:func | file:nth
		b/break *address
		b/break line-number if condition
		b/break line threadthread-number
		tbreak #设置临时的断点。中断一次后断点会被删除
  命令: d/delete [breakpoint-number]#删除所有断点
        d/delete [range]
		clear func  #清除函数func处的断点
		clear nth   #清除第nth行处的断点
		disable [breakpoint-number | range] #
		enable  [breakpiont-number | range] #
		enable once breakpint-number #设置指定断点有效,当到达断点时置为无效
		enable del breakpiont-number #设置指定断点有效,当到达断点时删除它
		
  命令: condition <break_list断点号列表> (condition条件)
  功能: 如cond 4  i==3  在断点4上增加中断条件
		
		
  
  命令:run
  功能:运行
  
  命令:start
  功能:运行,单在main处停止;
  
  命令: c
  功能:继续运行,直到结束或碰到断点
  
  命令:n/next
       n/next number
  功能:单步执行
  
  命令:step
       s/step number-of-steps-to-perform #
  功能:进入函数执行
  
  命令:finish
  功能:运行程序,直到当前函数完成返回。
       并打印函数返回时的堆栈地址和返回值及参数值等信息
	   
  命令:u/until             #当你厌倦了在一个循环体内单步跟踪时,这个命令可以运行程序直到退出循环体
       u/until line-number #继续运行直到到达指定行号,或者函数,地址等。
	   u/until line-number ifcondition
  功能: 当你厌倦了在一个循环体内单步跟踪时,这个命令可以运行程序直到退出循环体
  
  命令:bt/backtrace [n]
  功能:打印当前的函数调用栈的所有信息
       n是一个正整数,表示只打印栈顶上n层的栈信息
       
  
  命令:
     watch   #为表达式(变量)expr设置一个观察点。一量表达式值有变化时,马上停住程序
	 rwatch  #当表达式(变量)expr被读时,停住程序
	 awatch  #当表达式(变量)的值被读或被写时,停住程序。
  命令:
     display 	  #程序停止时显示变量和表达时
	 info display #显示当前所有的要显示值的表达式。
    delete display/undisplay [表达式编号] #删除要显示值的表达式
   disable display [表达式编号] #暂时不显示一个要表达式的值
   enable display 表达式编号 #与disable display相反,使用表达式恢复显示
  whatis #显示变量或函数类型
  ptype  #比whatis的功能更强,他可以提供一个结构的定义 
  
二、远程调试
   1.服务端
     gdbserver :2345  [options] trade_server -b
	 gdbserver [options] COMM PROG [ARGS...]
     gdbserver [] --attach COMM PID
     gdbserver [] --multi  COMM
	 
     Options:
		      --debug
			  --remote-debug Enable remote protocol debugging output.
  2.客户端
    gdb
	> target remote ip:port
			  
      break public_business.cpp:14746 if (strcmp(cust_no, "82070418")==0)
	  break order_manage.cpp:2103 if(strcmp(req_vector[0].all_contract_code.getValue(),"SR1705-C-7000")==0)
	  break order_manage.cpp:753
	  break match_return.cpp:235
	  break public_business.cpp:6715
gdb常用命令
标签:$0 and 显示 margin .sql line 整数 进入 set