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

网站建设教程出售用苏州久远网络招聘网站开发计划

网站建设教程出售用苏州久远网络,招聘网站开发计划,辽宁省建设工程信息网官网新网站入口,绍兴网站建设哪家好1. 默认设置下#xff0c;在调试多进程程序时GDB只会调试主进程。但是GDB#xff08;V7.0#xff09;支持多进程的分别以及同时调试#xff0c;换句话说#xff0c;GDB可以同时调试多个程序。只需要设置follow-fork-mode(默认值#xff1a;parent)和detach-on-fork在调试多进程程序时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 转载于:https://www.cnblogs.com/chezxiaoqiang/archive/2012/03/14/2674388.html
http://www.zqtcl.cn/news/763597/

相关文章:

  • 建设网站的规则建设公司网站的原则
  • 专业网站定制 北京龙泉驿网站seo
  • 网站标签是什么网站flash导入页
  • 城市网站建设摘要论文网站建设基本步骤包括哪些
  • 如何做招聘网站分析wordpress状态修改
  • 兰考网站建设微信运营是干嘛的
  • 网站ps照片怎么做的网站开发项目实训报告
  • 做流量网站it建设人才网
  • 杭州拱墅区网站建设推荐定制型网站建设
  • 网站建设需要达到什么样的效果上海营销网站推广多
  • 现代化公司网站建设长沙公司网站建立
  • 网站开发需要哪些人才辽宁奔之流建设工程有限公司网站
  • 做旅游产品的网站有哪些个人做搜索网站违法吗
  • 营销型网站的功能网站制作价钱多少
  • angularjs 网站模板工作感悟及心得
  • 福州 网站定制设计哈尔滨网站建设咨询
  • 酒吧网站模板创办网页
  • 外贸网站建设软件有哪些现在网站建设用什么语言
  • lnmp wordpress 主题不见高级seo课程
  • 成都哪家公司做网站最好杭州软件开发
  • 做网站多少宽带够wordpress编辑文章中图片
  • 无锡网站制作排名软件工程公司
  • 做网站国内好的服务器美食网站建设项目规划书
  • 三亚市住房和城乡建设厅网站江西电信网站备案
  • 联谊会总结网站建设对外宣传如何在家做电商
  • 360建站系统徐州建设银行网上银行个人网站
  • 网站域名在哪里备案石家庄站规模
  • 重庆南川网站制作公司电话工会网站群建设
  • 深圳高端建设网站忘了网站链接怎么做
  • 郑州做网站报价wordpress中文4.8