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

宠物网站设计的代码wordpress 翻译 每页

宠物网站设计的代码,wordpress 翻译 每页,广东手机网站建设多少钱,搜狗搜索引擎优化指南目录 1.gdb介绍 2.设置断点 2.1.测试代码 2.2.设置函数断点 2.3.设置文件行号断点 2.4.设置条件断点 2.5.多线程调试 3.删除断点 3.1.删除指定断点 3.2.删除全部断点 4.查看变量信息 4.1.p命令 4.2.display命令 4.3.watch命令 5.coredump日志 6.总结 1.gdb介绍…目录 1.gdb介绍 2.设置断点 2.1.测试代码 2.2.设置函数断点 2.3.设置文件行号断点 2.4.设置条件断点 2.5.多线程调试 3.删除断点 3.1.删除指定断点 3.2.删除全部断点 4.查看变量信息 4.1.p命令 4.2.display命令 4.3.watch命令 5.coredump日志 6.总结 1.gdb介绍 gdb是一个强大的调试工具广泛用于调试 C、C 以及其他编程语言的程序。它帮助程序员在开发过程中识别并修复错误提高程序的可靠性和性能。 掌握gdb的基本使用方法非常重要它能够帮助我们快速定位一些段错误问题或者解决一些程序异常问题。 如果提示没有gdb命令需要手动安装一下gdb插件 在 Ubuntu/Debian 上安装 gdbsudo apt install gdb 在 CentOS/RHEL 上安装 gdbsudo yum install gdb 日常工作中可以选择gdb启动程序或者gdb -p 程序进程号来调试程序章节设置断点将会详细讲解。 2.设置断点 2.1.测试代码 先上一段测试代码方便讲解设置断点的方法 main.c文件 #include stdio.h #include unistd.h #include string.h #include pthread.h#define THREAD_NUM 3 #define LOOP_NUM 10void *task(void *arg) {while (1) {int num *(int *)arg;printf(my num:%d\n, num);sleep(1);} }void first_print(int num) {printf(first hello: %d\n, num);return; }void second_print(int num) {printf(second hello: %d\n, num);return; }void test_copy(char *dest, char *src) {memcpy(dest, src, strlen(src)); }int main() {char *s NULL;char *p 123;//test_copy(s, p);for (int i 0; i 10; i) {first_print(i);second_print(i);}pthread_t threads[THREAD_NUM];int thread_arg[THREAD_NUM] {0};for (int i 0; i THREAD_NUM; i) {thread_arg[i] i;pthread_create(threads[i], NULL, task, thread_arg[i]);}for (int i 0; i THREAD_NUM; i) {pthread_join(threads[i], NULL);}return 0; }makefile文件 test:main.cgcc -O0 -g -o test main.c -lpthread.PHONY:clean clean:rm -rf test *.o 代码功能非常简单两个打印函数以及创建3个线程死循环打印。 2.2.设置函数断点 函数断点顾名思义断点设置在函数上操作命令: b 函数名 经过makefile编译后会产生一个test可执行文件通常来说我们直接gdb可执行文件即可即gdb test然后输入运行程序。 那么如何设置断点呢通常可以在执行命令之前设置断点或者运行过程中设置断点但是运行过程中设置断点你需要保证程序还没有运行到你将要设置的断点的位置否则不会命中断点。 下面我们设置两个函数断点first_print和second_print执行b first_print回车然后再执行b second_print即可。 通过 i b命令查看我们当前设置断点信息可以看到设置了两个断点编号分别为1 2 然后就可以执行 r 命令运行程序。 当我们运行程序后可以看到程序命中了第一个断点执行命令 作用是跳转到下一个断点执行 n 命令可以运行到一下行。 2.3.设置文件行号断点 gdb还可以针对文件的某一行设置断点操作命令b 文件名:行号 可以看到我们将断点设置在了main.c文件的第23行运行程序程序停止在了23行的位置。 2.4.设置条件断点 设置条件断点即再设置断点的基础之上再加上额外的条件例如某一个变量等于固定的数值操作命令b 函数 if (变量 常数) 可以看到我设置了一个断点在函数first_print且仅当num值为2时命中该断点运行程序和预期结果一致。 2.5.多线程调试 在程序中如果存在多线程的情况调试起来稍微复杂一些但是这种场景经常会出现在多核开发环境上因此需要掌握其调试方法。 那么如果设置一个断点到一个函数这个函数会被多个线程调用那么必定会发生线程切换因此调试时需要加锁命令set scheduler-locking on 可以看到将断点设置到了12行如果不加锁那么这三个线程都会触发这个断点当第一次触发时我们可以加锁使得只有当前线程能停在这个断点若要解锁 执行命令set scheduler-locking off。 可以看到解锁之后发送了线程切换。 还有一种方式就是查看当前运行的全部线程然后进入需要调试的线程。查看全部线程的命令info threads 可以看到有三个子线程然后可以通过thread 线程号 命令进入具体的线程。 3.删除断点 3.1.删除指定断点 删除指定断点操作命令d 断点编号 如图开始设置了两个断点其编号分别为1 和 2 执行命令d 1 删除断点1然后查看断点情况只剩下断点2同理如果要删除断点2执行命令d 2即可。 3.2.删除全部断点 删除全部断点操作命令d  4.查看变量信息 查看变量信息有多种命令每种命令有不同的作用。 4.1.p命令 主要用于查看变量的值操作命令:p 变量名 如图执行p num可以查看到num的值。 4.2.display命令 主要用于一直显示某个变量的值好处就是不用每次手动执行p命令来查看某个变量的值操作命令display 变量名 如果想取消一直显示首先执行display获取id然后执行命令undisplay id 即可 4.3.watch命令 watch命令可以追踪某个变量变化前的值和变化后的值操作命令watch 变量名 如果需要需要watch首先查看所有监视点info watchpoints然后执行删除命令删除指定watchdelete hw watchpoint 3 5.coredump日志 将测试代码第36行//test_copy(s, p);取消注释然后重新编译很明显程序会段错误此时我们可以执行ulimit -c unlimited使其可以生产coredump日志文件然后可以使用gdb调试命令定位问题操作命令gdb 可执行文件名 core文件名 使用bt命令可以看到具体的调用堆栈信息然后f id进入具体的函数通过p命令查看变量的值很明显dest为空指针。 6.总结 gdb是程序员调试程序不可获取的工具需要大家多多使用熟能生巧 。 注makefile如果加了-o3编译优化或者其他优化手段可能在运行时行号会发生跳跃和预期不一致。
http://www.dnsts.com.cn/news/138067.html

相关文章:

  • 网站建设的目标是什么?提供了哪些栏目?陕西省建设厅官网查询
  • 快速建设企业网站石家庄网站建设案例
  • 网站后台会员管理系统做php网站时如何建立数据库
  • 社区门户网站模板广告发布网站模板
  • 建设网站的必要与可行性国产一级a做爰片免费网站
  • 深圳建站公司告诉你十个建站步骤自己制作的网站
  • 做音频后期的素材网站做服务器的网站都有哪些功能
  • 东方头条网站源码注册免费域名网站
  • 网站还在建设中建设网站公司兴田德润
  • 自己能够做投票网站吗怎样把自己做的网站发布
  • 八卦岭网站建设湖南网站seo营销
  • 温州网站推广站建设大数据精准营销服务
  • 金坛市建设银行网站网站建设高级开发语言
  • 织梦本地网站建设教程网站的建站过程
  • 主色调为绿色的网站企业广告平面设计多少钱
  • 你了解网站建设吗 软文案例宁夏建设职业技术学院官方网站
  • 怎么用flash做网站网站的域名做邮箱
  • 网站短期培训学校网站建设需求说明书
  • 怎么提高自己网站的知名度WordPress5更改logo
  • 空间站 对接一级建造师报考条件2022考试时间
  • 网站页面优化方法有哪些内容企业如何注册网站
  • 石家庄市市政建设工程公司网站中国制造网app官方下载
  • 怎么提高网站加载速度专业微网站开发
  • 教育网站平面设计网站建设初学软件
  • 山东省建设协会网站网站加入百度广告联盟
  • 哪个网站是专门做招商的平台外包公司与劳务派遣
  • 网站对图片优化网站建设心得体会
  • 长沙如何做网站网站建设 公司排名
  • 万齐网站建设阅读网站建设
  • 路由侠怎么做网站映射观澜小学 网站建设