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

如何做公司网站空间辽宁建设工程信息网公司评分

如何做公司网站空间,辽宁建设工程信息网公司评分,公司网站制作设计价格,应用asp做网站近年来,随着嵌入式技术飞速发展,嵌入式产品随处可见,Linux的应用也越来越广泛。接下来是小编为大家收集的linux gdb调试基本命令#xff0c;希望能帮到大家。linux gdb调试基本命令1.启动调试前置条件#xff1a;编译生成执行码时带上 -g#xff0c;如果使用Makefile#x…近年来,随着嵌入式技术飞速发展,嵌入式产品随处可见,Linux的应用也越来越广泛。接下来是小编为大家收集的linux gdb调试基本命令希望能帮到大家。linux gdb调试基本命令1.启动调试前置条件编译生成执行码时带上 -g如果使用Makefile通过给CFLAGS指定-g选项否则调试时没有符号信息。gdb program //最常用的用gdb启动程序开始调试的方式gdb program core //用gdb查看core dump文件跟踪程序core的原因gdb program pid //用gdb调试已经开始运行的程序指定pid即可gdb attach pid //用gdb调试已经开始运行的程序指定pid即可2.调试命令(1)执行命令模式-batch选项。比如打印$pid进程所有线程的堆栈并退出。gdb -ex set pagination 0 -ex thread apply all bt -batch -p $pid(2).交互模式run //运行程序continue //中断后继续运行到下一个断点step //单步执行进入函数next //单步执行return //函数未执行完忽略未执行的语句返回。finish //函数执行完毕返回。call //调用某一个函数 fun(1234)(backtrace)bt //显示栈桢bt N //显示开头N个栈桢bt -N //显示最后N个栈桢(frame)f N //显示第N层栈桢list //显示源码set directory //设置gdb的工作目录pwd //当前的工作目录(3)反复执行continue N //连续执行cointiue N次一般用于避免频繁断点step Nnext N3.断点break 函数名 //设置断在某个函数break 文件名:行号 //设置断在某一行info break //查看设置的断点信息break if condition //条件断点break 函数名 thread 线程号 //设置断点只断某个线程通过info threads 查看线程号delete 断点号 断点号... //删除一个或多个断点diable 断点号 断点号... //禁止一个或多个断点enable 断点号 断点号... //打开一个或多个断点command 断点号 //断点触发时执行命令一般用于打印变量(gdb) command 1Type commands for breakpoint(s) 1, one per line.End with a line saying just end.print xend(gdb)4.检测点watch //为表达式(变量)expr设置一个观察点。一量表达式值有变化时马上停住程序。rwatch //当表达式(变量)expr被读时停住程序。awatch //当表达式(变量)的值被读或被写时停住程序。info watchpoints //列出当前所设置了的所有观察点。经验观察某个变量是否变化被读或者被写由于变量只在某一个作用域可以获取变量的地址然后观察。比如观察examined_rows变量神马时候被修改(1).p examined_rows,得到地址(2).watch *(ha_rows *) 0x7ffec8005e28,则可以观察这个变量的变化情况。5.查看变量(1)设置set print elements N //指定打印的长度对长字符串特别有用。set print element 0 //输出完整的字符串set print pretty //设置GDB打印结构的时候每行一个成员并且有相应的缩进缺省是关闭的print {type} variable比如(gdb) p {ABC} 0x7fffffffe710$2 {val 1.5, val2 10}print xxx //打印变量p /x xxx //16进制显示p strstr_len //打印字符串info locals //打印出当前函数中所有局部变量及其值。info args //打印出当前函数的参数名及其值。display 变量 //自动打印变量undisplay //取消自动打印注意默认编译的时候调试过程是看不见宏的值的编译时候需要给选项。-g36.内存查看格式: x /nfu x 是 examine 的缩写a.n表示要显示的内存单元的个数b.f表示显示方式, 可取如下值(1).x 按十六进制格式显示变量。(2).d 按十进制格式显示变量。(3).u 按十进制格式显示无符号整型。(4).o 按八进制格式显示变量。(5).t 按二进制格式显示变量。(6).a 按十六进制格式显示变量。(7).i 指令地址格式(8).c 按字符格式显示变量。(9).f 按浮点数格式显示变量。c.u表示一个地址单元的长度(1).b表示单字节(2).h表示双字节(3).w表示四字节(4).g表示八字节比如x/3xh buf表示从内存地址buf读取内容3表示三个单位x表示按十六进制显示h表示以双字节为一个单位。7.多线程调试info threads //查看线程thread thread_no //切换到线程号thread apply all command //所有线程都执行命令打印栈桢比如thread apply all bt //所有线程都打印栈桢(1)线程锁show scheduler-lockingset scheduler-locking onset scheduler-locking off默认是off当程序继续运行的时候如果有断点那么就把所有的线程都停下来直到你指定某个线程继续执行(thread thread_no apply continue).但是如果直接在当前线程执行continue的话默认是会启动所有线程。这种模式有一种副作用如果多个线程都断在同一个函数这时候调试会出问题。这个时候需要打开线程锁但打开线程锁意味着其它线程不能运行了。(2)non-stop模式(7.0以后的版本支持)set target-async 1set pagination offset non-stop ongdb启动了不停模式除了断点有关的线程会被停下来其他线程会执行。8.信号量(1).singal 发送信号假定你的程序已将一个专用的 SIGINT(键盘输入或CTRL-C;信号2)信号处理程序设置成采取某个清理动作要想测试该信号处理程序你可以设置一个断点并使用如下命令(gdb) signal 2(2).handle 拦截信号Handle命令可控制信号的处理他有两个参数一个是信号名另一个是接受到信号时该作什么。几种可能的参数是* nostop 接收到信号时不要将它发送给程序也不要停止程序。* stop 接受到信号时停止程序的执行从而允许程序调试;显示一条表示已接受到信号的消息(禁止使用消息除外)* print 接受到信号时显示一条消息* noprint 接受到信号时不要显示消息(且隐含着不停止程序运行)* pass 将信号发送给程序从而允许你的程序去处理它、停止运行或采取别的动作。* nopass 停止程序运行但不要将信号发送给程序。比如handle SIGPIPE stop print //截获SIGPIPE信号程序停止并打印信息handle SIGUSR1 nostop noprint //忽略SIGUSR1信号9.生成环境使用GDB场景内核转储(coredump)(1).配置产生core文件前置条件确保系统配置的core file size足够一般设置成unlimitedulimit -c unlimited配置corefile的参数echo 2 /proc/sys/fs/suid_dumpable [程序中切换用户也要产生corefile]mkdir /tmp/corefileschmod 777 /tmp/corefilesecho /tmp/corefiles/core/proc/sys/kernel/core_pattern //配置core文件产生的目录为/tmp/corefilesecho 1 /proc/sys/kernel/core_uses_pid注意a.确保配置的目录有足够的磁盘空间否则产生core文件可能不完整。b.对于mysqld而言要保证正确产生core-file需要加上--core-file默认这个参数是不打开的。c.kill -9 pid 是不能产生core文件的因为SIGKILL信号不能被捕获。(2).使用core文件gdb /usr/MySQL/bin/mysqld core.24556(3).dump已经运行进程的状态信息gdb attach pid(gdb) generate-core-file调试完毕后通过detach命令退出。另外通过gcore pid 命令也可以dump core文件生成在当前目录下。(4).打印线程信息pstack pidpt-pmp -p pidpstack和pt-pmp都可以打印线程的信息但是pt-pmp会对同类堆栈的线程做聚合汇总相对于pstack功能更强大显示也更友好。(5).altert日志这里主要针对mysqld问题排查mysqld异常crash后有时候在alter日志中可以看到最后crash线程的堆栈但是一般只有函数名或一串二进制地址无法定位到具体是crash到哪一行通过addr2line可以解这个问题。比如alter日志中记录crash时的地址是0x64bd60通过如下命令可以定位到具体是哪一行addr2line -e /usr/mysql/bin/mysqld 0x64bd60/home/admin/131_20160715135613566_11155487_code/rpm_workspace/sql/sql_parse.cc:3067参考文档https://www.percona.com/blog/2011/08/26/getting-mysql-core-file-on-linux/GDB调试程序用法 http://www.linuxidc.com/Linux/2013-06/86044.htmGDBGDBserver无源码调试Android 动态链接库的技巧 http://www.linuxidc.com/Linux/2013-06/85936.htm使用hello-gl2建立ndk-GDB环境(有源码和无源码调试环境) http://www.linuxidc.com/Linux/2013-06/85935.htm在Ubuntu上用GDB调试printf源码 http://www.linuxidc.com/Linux/2013-03/80346.htmLinux下用GDB调试可加载模块 http://www.linuxidc.com/Linux/2013-01/77969.htmUbuntu下使用GDB断点Go程序 http://www.linuxidc.com/Linux/2012-06/62941.htm使用GDB命令行调试器调试C/C程序 http://www.linuxidc.com/Linux/2014-11/109845.htm看了“linux gdb调试基本命令”还想看
http://www.zqtcl.cn/news/394181/

相关文章:

  • 如何做旅游休闲网站苍南做网站
  • wordpress jp theme关键词排名优化公司成都
  • Soho外贸常用网站wordpress下不了插件吗
  • 企业网站建设小技巧有哪些WordPress网站小程序
  • 公司招聘网站续费申请seo编辑是干什么的
  • 58同城泉州网站建设人工投票平台app
  • dede 网站地图 插件网站引导页flash
  • 聊城做网站的公司渠道网站总体结构
  • 北京比较大的网站建设公司wap网站引导页特效
  • 做关于植物的网站即墨网站设计
  • 怎么提升网站收录商品网页制作
  • 做网站建设的平台wordpress5.0发布
  • 站长工具a级查网站域名
  • 免费做网站电话手机开发者模式打开有什么影响
  • 上海免费网站建站模板毕节做网站优化
  • 影响网站建设的关键点手机网站制作app
  • 商务网站建设的流程深圳模板网站建设案例
  • 做中英文网站多少钱方维制网站
  • 做一个信息发布网站要多少钱开发小程序多少钱一个
  • 山东网站设计网站关键词设置技巧
  • 做网站服务怎么赚钱产品展示型的网站功能有哪些
  • 丹东网站制作宁波网站建设公司制作网站
  • 南宁建设工程质量网站九江网站建设九江
  • 永州市住房和城乡建设厅网站服务器可以做几个网站
  • 哪里学网站建设与管理做移动端电影网站
  • 境外企业网站推广大冶市建设局网站
  • 户网站建设的不全.阿里巴巴国际站
  • 定制手机壳的网站能在家做的兼职的网站
  • 温州营销型网站建设郴州网络推广公司
  • asp.net 做网站源代码网站怎么做配置文件夹