当前位置: 首页 > news >正文

凡科网站自己如何做黑科技广告推广神器

凡科网站自己如何做,黑科技广告推广神器,大数据学出来做什么工作,如何找推广平台File/file 装入想要调试的可执行文件 run(r) 执行当前被调试的程序 kill(k) 终止正在调试的程序 quit(q) 退出gdb shell 使用户不离开gdb就可以执行Linux的shell命令 backtrace(bt) 回溯跟踪#xff08;当对代码进行调试时#xff0c;run后…        File/file 装入想要调试的可执行文件     run(r) 执行当前被调试的程序     kill(k) 终止正在调试的程序       quit(q)  退出gdb   shell 使用户不离开gdb就可以执行Linux的shell命令                  backtrace(bt) 回溯跟踪当对代码进行调试时run后出现错误则可以使用bt命令查出详细的错误信息         frame n  定位到发生错误的代码段n为backtrace命令的输出结果中的行号位于行首。    (1) 设置断点break   break function          在进入指定函数时被停住。C可以使用class::function或functiontype,type格式来指定函数名。 //在该处停止断点该处不执行下同 break linenum 在指定行号停住 break filename:linenum   在源文件filename的linenum行处停止 break filename:function   在源文件filename的function函数的入口处停止 break    没有参数表示在下一条指令处停止 break *address 在程序运行的内存地址处停止 break与step结合使用时step(s)确认后执行上一次显示的未执行命令并且显示出将要执行的下一行程序。使用单步调试命令step来跟踪程序它一次只执行程序中的一行代码。 info break(i b)  命令  可以显示所有断点的信息 (2) 查看运行时的数据 在调试程序的过程中需要查看程序中某些表达式或变量的值以判断程序运行是否正确。 print命令(p) 在调试程序时当程序被停住时如在断点处可以使用printp命令或其同义命令inspect来查看当前程序的运行数据。 print expr  //输出表达式的值 print /f expr  //按某种格式输出表达式的值如/x 则为16进制 (gdb) print n1 $1 4 (gdb) inspect n1 $2 4 (gdb) print n1 $3 4 (gdb) print n2 $4 5 (gdb) print $2 $5 4     //$2的值 (gdb) print $   //$5的值 $6 4 (gdb) print $ $  //$5的值    注意之间没有空格  这是防止CSDN编辑器转义而加上的空格 $7 4 (gdb) print $ $6 //$4的值 $8 5 每一个print都会被gdb记录下来并且会以$1、$2、$3······这样的方式为每一个print命令编号。于是可以使用这个编号访问以前的表达式。 另外要注意print命令的表达式中两个具有特殊意义的符号$、$ $。print $表示显示当前序号的前一个序号的值$ $表示给定序号的前两个序号如果未给定序号则默认当前序号为给定序号。 另外info local命令可以显示当前本地的所有变量的值。 print命令的功能除了打印表达式或变量的值以外还有对变量进行赋值和打印内存中某个变量开始的一段区域的内容。 gdb的数据输出格式 x 十六进制格式     d 十进制格式   u 十六进制格式无符号整型 o 八进制格式       t 二进制格式    a 十六进制格式等价x c  ASCII字符格式     f 浮点数格式     s字符串格式   i指令地址指令文件 p /x n1    //以十六进制格式显示n1的值 自动显示命令display 当程序停住时或单步跟踪时这些变量会自动显示。 display expr        display /f expr    display /f addr  addr表示内存地址 display /i $pc  $pc为gdb的环境变量表示指令的地址/i则表示输出格式为机器指令码也就是汇编。该句指令表示当程序停下后就会出现源代码和机器指令码相对应的情形。 即输出当前指令的地址程序运行到当前处以机器指令码的格式输出从而出现源代码和机器指令码汇编代码相对应的情形。 查看内存examine(x) examine(简写为x)指令可以查看内存地址中的值格式 x /n/f/u addr n、f、u为可选的参数可以独立使用也可以联合使用。 n为一个正整数表示显示内存的长度即从当前地址向后显示几个地址的内容。 f表示显示的格式即地址所指内容以什么样的格式显示出s为字符串如果所指的内容为指令地址则为i。 u表示从当前地址往后请求的字节数如果不指定则默认为4个Bytes。u参数可以用下面的字符代替b表示单字节h表示双字节w表示四字节g表示八字节。 addr表示一个内存地址 x /4uh 0x48723  // 从内存地址0x48723读取内容h表示以双字节为1个单位4表示4个单位u表示按16进制显示。 gdb的环境变量 可以在gdb的调试环境中定义自己的变量用来保存一些调试程序中的运行数据。set命令用于定义gdb的环境变量gdb的环境变量与Linux一样都是以$起始。 set $foo*object_ptr 第一次使用环境变量时需要创建这个变量set以后使用直接对其赋值即可环境变量没有类型可以给环境变量定义任意的类型包括结构体和数组。 在gdb的调试过程中show convenience 命令用于查看当前设置的所有环境变量 查看寄存器 在调试程序的过程中有时需要查看某些寄存器中的值。寄存器存放了程序运行时的数据比如程序当前运行时的指令地址IP程序的当前堆栈地址SP等。可以使用info命令来查看寄存器中的值。 info registers //查看寄存器的情况不包括浮点寄存器 info all-registers //查看所有寄存器的情况包括浮点寄存器 info registersname1,name2,······  //查看指定寄存器的情况name表示寄存器名 也可以使用print命令来访问寄存器的情况只需要在寄存器名字前加一个$就可以了如print $ip。 查看源程序list(l) 在程序的调试过程中有时需要查看源程序的内容以及源代码在内存中的情况。用list命令可以显示程序的源代码。 list linenum 显示程序第linenum行周围的源程序 list filenamelinenum  显示某个.c文件中的第linenum行周围的源程序对于多个源文件的编译 list function 显示函数名为function的函数的源程序 list filenamefunction list 显示当前行后面的源程序 list - 显示当前行前面的源程序 list first,last 显示从first行到last行之间的源代码 list ,last 显示从当前行到last行之间的源代码 可以使用info line命令来查看源代码在内存中的地址info line命令后面也可以跟行号、函数名、文件名行号、文件名函数名等从而显示指定的源代码在内存中的地址。如要显示zsx.c源文件中calculate( )函数在内存中的地址 info line zsx.c:calculate  (3) 改变程序的执行 修改变量的值。print命令还可以修改被调试程序中运行时的变量值。如 print x9 跳转执行。可以修改程序的执行顺序让程序执行随意跳跃。 jump linespec  linespec可以是文件的行号可以是file:linenum格式表示下一条运行语句从哪里开始。 jump address  address是代码行的内存地址 注意jump命令不会改变当前的程序栈中的内容。 程序运行时有一个寄存器用于保存当前代码所在的内存地址所以jump命令也就是改变了这个寄存器中的值。可以使用set $pc来更改跳转执行的地址set $pc0x485。 (4) 具体事例 15           for (i 0; i len; i) (gdb) b 15 if i5 Breakpoint 1 at 0x4008d3: file ../src/main.c, line 15. (gdb) b 27 Breakpoint 2 at 0x400936: file ../src/main.c, line 27. (gdb) i b Num     Type           Disp Enb               Address                      What 1       breakpoint     keep y        0x00000000004008d3  in main at ../src/main.c:15 stop only if i5 2       breakpoint     keep y        0x0000000000400936  in main at ../src/main.c:27 //断点编号id 断点类型    断点是否可用y表示可用n表示不可用 断点地址  断点的详细信息 (5) 总结重点内容 运行程序start开始运行只执行一步就停住run开始运行在断点处停住continue(c)继续运行到下一个断点处停止steps单步执行进入函数内部nextn单步执行不进入函数内部u跳出循环体执行循环体后面的第一个语句。 set var i10  //将变量i的值设为10比如在一个循环体中i为控制变量当单步执行时i依次增加如果想让变量i循环到10时才停住则可以set var i 10。 gdb调试: 1. 启动gdb start -- 只执行一步 n -- next s -- step(单步) -- 可以进入到函数体内部 c - continue -- 直接停在断点的位置 2. 查看代码: l -- list l 10或者函数名 l filename行号或者函数名 3. 设置断点: 设置当前文件断点: b -- break b 10或函数名 设置指定文件断点: b fileName:行号或函数名 设置条件断点: b 10 if value19 删除断点: d 断点编号 获取编号i b 4. 查看设置的断点 info break   i b 5. 开始 执行gdb调试 执行一步操作:  start 继续执行:  n s 执行多步, 直接停在断点处:  continue 5. 单步调试 进入函数体内部: s 从函数体内部跳出: finish如果在循环处有断点, 需要将断点删掉 不进入函数体内部:n 退出当前循环: u //该退出是指直接一次性执行完该循环体 6. 查看变量的值: p -- print 7. 查看变量的类型: ptype 变量名 8. 设置变量的值:  set var 变量名 赋值  //注意同理不是硬性的 9. 设置追踪变量 display 取消追踪变量 undisplay 编号 获取编号 info display 10. 退出gdb调试 quit
http://www.sadfv.cn/news/343857/

相关文章:

  • 漳州做网站wordpress 网页抓取
  • 做阿里巴巴小企业网站正规网站建设公司
  • html5 php 网站源码海门公司网站制作费用
  • 松原手机网站开发广东建设工程造价管理协会网站
  • 网站排名优化公司哪家好河北城乡建设学校官方网站
  • 长沙网站seo价格上海专业产品摄影
  • 自己网站郑州手机网站建设多少钱
  • 济南智能网站建设报价餐饮业建设网站意义
  • 佛山网站建设联系电话网页微信登录不了提示为了安全考虑
  • 模板网站有哪几类网站文件夹没有权限设置
  • 四川淘宝网站建设方案网站开发与运维收费明细
  • 合肥建公司网站简洁轻便的wordpress主题
  • 刘涛做的婴儿玩具网站中山建设公司网站
  • 建站平台需要授权吗做h的小说网站
  • 德州网站建设维护软件外包公司怎么赚钱
  • 蓝色系 网站制作服务网站
  • 做名片赞机器人电脑网站是多少公司注册在哪里合适
  • 通辽做家教的网站泗洪做网站
  • 大连网站优化多少钱wordpress阅读量随机生成
  • 做女装代理需要自建网站么虚拟空间的网站赚钱吗
  • 广州网站建设亅新科送推广西部数码网站管理助手2.0
  • 网站 网安备案查询外贸网站如何传产品
  • 培训类网站开发简单的静态 新闻 asp 网站源码
  • 门户网站设计说明长沙个人做网站排名
  • 苏州高端网站开发注册城乡规划师考试大纲
  • 如何把网站建设好古典网站建设公司
  • 给你网站你会怎么做的wordpress外贸网站好用的模板下载
  • 哈尔滨企业自助建站系统企业网络营销企业网站建设章节习题
  • 水果网站策划书申请个网站要多少钱
  • 网站建设完不管了自己怎么接手网站在当地做宣传