您好,欢迎访问代理记账网站
  • 价格透明
  • 信息保密
  • 进度掌控
  • 售后无忧

CLION 从脚本中调试c++ 程序

问题描述

在以下webget_t.sh脚本中调用了可执行程序webget

#!/bin/bash

WEB_HASH=`./apps/webget cs144.keithw.org /hasher/xyzzy | tee /dev/stderr | tail -n 1`
CORRECT_HASH="QWx0NhMPkoM/bJr/ohvHXlviFhOyYrYb+qqdOnwLYo4"

if [ "${WEB_HASH}" != "${CORRECT_HASH}" ]; then
    echo ERROR: webget returned output that did not match the test\'s expectations
    exit 1
fi
exit 0

想通过CLION在webget.cc上打断点并调试,直接debug 脚本肯定是不行的,因为webget和bash不属于同一个进程。

解决方法

在webget源码中加入

cout << "pid=_______________ " << getpid() <<endl;
for(int i=0;i<30;i++){
    cout<<"wait"<<i<<endl;
    sleep(1);
}

debug 脚本,然后看到终端输出进程号
在这里插入图片描述
之后借助clion的detach process 功能,找到2818号进程并attach。
等待30秒后,就可以和一般的c++程序一样进行调试了。

在这里插入图片描述


分享:

低价透明

统一报价,无隐形消费

金牌服务

一对一专属顾问7*24小时金牌服务

信息保密

个人信息安全有保障

售后无忧

服务出问题客服经理全程跟进