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

个人网站设计与实现源码苏州公司企业网站建设

个人网站设计与实现源码,苏州公司企业网站建设,网站名查找,做网站图片显示不来1. 默认设置下#xff0c;在调试多进程程序时GDB只会调试主进程。但是GDB#xff08;V7.0#xff09;支持多进程的 分别以及同时 调试#xff0c;换句话说#xff0c;GDB可以同时调试多个程序。只需要设置follow-fork-mode(默认值#xff1a;parent)和detach-on-fork…1. 默认设置下在调试多进程程序时GDB只会调试主进程。但是GDBV7.0支持多进程的 分别以及同时 调试换句话说GDB可以同时调试多个程序。只需要设置follow-fork-mode(默认值parent)和detach-on-fork默认值on即可。follow-fork-mode  detach-on-fork   说明 parent                   on               只调试主进程GDB默认 child                     on               只调试子进程 parent                   off              同时调试两个进程gdb跟主进程子进程block在fork位置 child                     off              同时调试两个进程gdb跟子进程主进程block在fork位置 设置方法set follow-fork-mode [parent|child]   set detach-on-fork [on|off]查询正在调试的进程info inferiors切换调试的进程 inferior infer number添加新的调试进程 add-inferior [-copies n] [-exec executable] ,可以用file executable来分配给inferior可执行文件。其他remove-inferiors infno detach inferior2. GDB默认支持调试多线程跟主线程子线程block在create thread。查询线程info threads切换调试线程thread thread number例程#include stdio.h #include pthread.h void processA(); void processB(); void * processAworker(void *arg); int main(int argc, const char *argv[])   {   int pid;   pid fork();   if(pid ! 0)     processA();   else     processB();   return 0;   } void processA()   {   pid_t pid getpid();   char prefix[] ProcessA: ;   char tprefix[] thread ;   int tstatus;   pthread_t pt;   printf(%s%lu %s\n, prefix, pid, step1);   tstatus pthread_create(pt, NULL, processAworker, NULL);   if( tstatus ! 0 )     {     printf(ProcessA: Can not create new thread.);     }     processAworker(NULL);   sleep(1);   } void * processAworker(void *arg)   {   pid_t pid getpid();   pthread_t tid pthread_self();   char prefix[] ProcessA: ;   char tprefix[] thread ;   printf(%s%lu %s%lu %s\n, prefix, pid, tprefix, tid, step2);   printf(%s%lu %s%lu %s\n, prefix, pid, tprefix, tid, step3);   return NULL;   } void processB()   {   pid_t pid getpid();   char prefix[] ProcessB: ;   printf(%s%lu %s\n, prefix, pid, step1);   printf(%s%lu %s\n, prefix, pid, step2);   printf(%s%lu %s\n, prefix, pid, step3);   } 输出[cnwuwilcentos c-lab]$ ./test ProcessA: 802 step1 ProcessB: 803 step1 ProcessB: 803 step2 ProcessB: 803 step3 ProcessA: 802 thread 3077555904 step2 ProcessA: 802 thread 3077555904 step3 ProcessA: 802 thread 3077553008 step2 ProcessA: 802 thread 3077553008 step3 调试1. 调试主进程block子进程。(gdb) set detach-on-fork off (gdb) show detach-on-fork Whether gdb will detach the child of a fork is off. (gdb) catch fork Catchpoint 1 (fork) (gdb) r [Thread debugging using libthread_db enabled] Catchpoint 1 (forked process 3475), 0x00110424 in __kernel_vsyscall () Missing separate debuginfos, use: debuginfo-install glibc-2.12-1.47.el6.i686 (gdb) break test.c:14 Breakpoint 2 at 0x8048546: file test.c, line 14. (gdb) cont [New process 3475] [Thread debugging using libthread_db enabled] Breakpoint 2, main (argc1, argv0xbffff364) at test.c:14 Missing separate debuginfos, use: debuginfo-install glibc-2.12-1.47.el6.i686 (gdb) info inferiors   Num  Description       Executable          2    process 3475      /home/cnwuwil/labs/c-lab/test * 1    process 3472      /home/cnwuwil/labs/c-lab/test 2. 切换到子进程(gdb) inferior 2 [Switching to inferior 2 [process 3475] (/home/cnwuwil/labs/c-lab/test)] [Switching to thread 2 (Thread 0xb7fe86c0 (LWP 3475))] #0  0x00110424 in ?? () (gdb) info inferiors   Num  Description       Executable        * 2    process 3475      /home/cnwuwil/labs/c-lab/test   1    process 3472      /home/cnwuwil/labs/c-lab/test (gdb) inferior 1 [Switching to inferior 1 [process 3472] (/home/cnwuwil/labs/c-lab/test)] [Switching to thread 1 (Thread 0xb7fe86c0 (LWP 3472))] #0  main (argc1, argv0xbffff364) at test.c:14 (gdb) info inferiors   Num  Description       Executable          2    process 3475      /home/cnwuwil/labs/c-lab/test * 1    process 3472      /home/cnwuwil/labs/c-lab/test 3. 设断点继续调试主进程主进程产生两个子线程(gdb) break test.c:50 Breakpoint 3 at 0x804867d: file test.c, line 50. (2 locations) (gdb) cont ProcessA: 3472 step1 [New Thread 0xb7fe7b70 (LWP 3562)] ProcessA: 3472 thread 3086911168 step2 Breakpoint 3, processAworker (arg0x0) at test.c:50 (gdb) info inferiors   Num  Description       Executable          2    process 3475      /home/cnwuwil/labs/c-lab/test * 1    process 3472      /home/cnwuwil/labs/c-lab/test (gdb) info threads   3 Thread 0xb7fe7b70 (LWP 3562)  0x00110424 in __kernel_vsyscall ()   2 Thread 0xb7fe86c0 (LWP 3475)  0x00110424 in ?? () * 1 Thread 0xb7fe86c0 (LWP 3472)  processAworker (arg0x0) at test.c:50 4. 切换到主进程中的子线程注意线程2为前面产生的子进程(gdb) thread 3 [Switching to thread 3 (Thread 0xb7fe7b70 (LWP 3562))]#0  0x00110424 in __kernel_vsyscall () (gdb) cont ProcessA: 3472 thread 3086911168 step3 ProcessA: 3472 thread 3086908272 step2 [Switching to Thread 0xb7fe7b70 (LWP 3562)] Breakpoint 3, processAworker (arg0x0) at test.c:50 (gdb) info threads * 3 Thread 0xb7fe7b70 (LWP 3562)  processAworker (arg0x0) at test.c:50   2 Thread 0xb7fe86c0 (LWP 3475)  0x00110424 in ?? ()   1 Thread 0xb7fe86c0 (LWP 3472)  0x00110424 in __kernel_vsyscall () (gdb) thread 1
http://wiki.neutronadmin.com/news/119608/

相关文章:

  • 易语言怎么做ifa网站填表口碑营销案例分析
  • gps建站步骤视频易读网站建设
  • 汕头站扩建后比哪个站大企业网站备案名称窍门
  • 网站建设腾讯课堂静态网站 服务器
  • 房地产网站解决方案我要自学网官网入口
  • 阿玛尼高仿手表网站建筑网页设计
  • 装修网站vr全景图怎么做网站证书怎么做
  • 成都网站设计培训长春网站优化页面
  • 专门做评测的网站虹口门户网站建设
  • 网站版权模板自己做个网站多少钱
  • 网站不用模板如何更新文章全国防疫大数据平台
  • 同城网站全球云邮登陆网站
  • 服装设计素材网站淘宝 网站建设教程视频教程
  • 郑州网站设计报价表抓好网站建设工作
  • 个人网站做seo线上活动策划方案
  • 电子商务网站开发文档wordpress的分享插件下载地址
  • 网站建设方案书 5个备案没有网站怎么做cpa赚钱
  • 做纸箱在什么网站找客户在线设计自己的签名免费
  • 石家庄网站建设排名北京东站
  • 闸北品牌网站建设四川建设人才网官网登录
  • 网站开发基础教程企业融资规划师证书
  • 网站的建设需要考虑什么html5做网站导航
  • 杭州市网站建设合肥网站营销
  • 坪地网站建设哪家好wordpress评分
  • 聊城网站开发培训微网站 模板
  • 有偷菜餐厅城市建设的网站网站建设服务流程
  • 佛山市建设企业网站服务机构wordpress添加留言
  • 网站登录验证码显示不出来温州品牌推广
  • 在线代理浏览器网站免费网站app哪个最好
  • 协会网站建设计划东莞微信网站