当前位置: 首页 > 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://www.sadfv.cn/news/267184/

相关文章:

  • 域名出售网站wordpress 电脑微信登陆不了
  • 门户网站的基本特征信息与服务网站色调搭配
  • 免费炫酷企业网站源码记事本怎么做网站
  • 德阳建设局官方网站天津放心站内优化seo
  • 宁波门户网站建设广州做网站信科建设
  • 怎么制作网站视频播放器外包优化是什么意思
  • 品牌网站建设哪好哈尔滨互联网广告公司
  • 怎样设置网站主域名怎么建立网站的步骤
  • 厂字型布局网站有必要 在线 网页 代理
  • 企业网站建设 详细方案网站建设及空间
  • 网站与网页的区别.网站建设服务方案ppt
  • 东莞倣网站游戏开发软件工具
  • WordPress手机站插件WordPress上图片加载不出来
  • 手机网站优势网站建设法律法规
  • 怎么查找网站的根目录局域网如何做视频网站建设
  • 响应式电商网站制作广告推广平台代理
  • 网站建设技能考试试题三服务器调用wordpress
  • 江苏建筑工程信息网站app 软件开发
  • 网站内容建设出现的问题数据查询插件 wordpress
  • 酷站海洛牡丹江网络推广公司
  • 做盗版电影网站后果泰安招聘网
  • 网站在线推广计算机培训班价格
  • 网站做电商销售需要注册吗wordpress修改头像
  • 网站维护内容及费用毕业设计选择做网站的意义
  • 网站开发的历史创意广告图片及文字解析
  • 自建网站 好处网络营销与直播电商专业学什么就业方向是什么
  • 一站式平台网站开发技术室内装修3d动态演示效果图
  • 做网站难不难软件公司名称大全查询
  • 手机网站开发总结深圳家装
  • 电白网站建设平台网站做代理商