如何在程序开始时停止程序,以便将GDB连接到该程序? 我想在我的C++程序开始时显示一个PID,并发送一个等待信号,这样我就可以在另一个终端上运行GDB—PID。然后在gdb终端中按run,程序应继续
如果我使用如何在程序开始时停止程序,以便将GDB连接到该程序? 我想在我的C++程序开始时显示一个PID,并发送一个等待信号,这样我就可以在另一个终端上运行GDB—PID。然后在gdb终端中按run,程序应继续,c++,gdb,signals,C++,Gdb,Signals,如果我使用 pid_t pid = getpid(); cout << "PID = " << pid << endl; raise(SIGSTOP); 因此,程序进入后台并停止。另一方面,如果我使用SIGINT,我看到 如何解决这个问题?您不需要使用信号来暂停应用程序,只需等待您感兴趣的特定信号即可 int main(){ std::cout << "PID = " <&
pid_t pid = getpid();
cout << "PID = " << pid << endl;
raise(SIGSTOP);
因此,程序进入后台并停止。另一方面,如果我使用SIGINT,我看到
如何解决这个问题?您不需要使用信号来暂停应用程序,只需等待您感兴趣的特定信号即可
int main(){
std::cout << "PID = " << getpid() << std::endl;
int sig;
sigset_t signal_set;
sigemptyset(&signal_set);
sigaddset(&signal_set, SIGCONT);
sigwait( &signal_set, &sig );
std::cout << "continued" << std::endl;
}
您不需要使用信号来暂停应用程序,只需等待您感兴趣的特定信号即可
int main(){
std::cout << "PID = " << getpid() << std::endl;
int sig;
sigset_t signal_set;
sigemptyset(&signal_set);
sigaddset(&signal_set, SIGCONT);
sigwait( &signal_set, &sig );
std::cout << "continued" << std::endl;
}
因此,程序进入后台并停止
是什么阻止您连接到已停止的进程
现在,您可以附加到pid号为30261的进程并继续执行程序。另见相关问题
因此,程序进入后台并停止
是什么阻止您连接到已停止的进程
现在,您可以附加到pid号为30261的进程并继续执行程序。另见相关问题
int main(){
std::cout << "PID = " << getpid() << std::endl;
int sig;
sigset_t signal_set;
sigemptyset(&signal_set);
sigaddset(&signal_set, SIGCONT);
sigwait( &signal_set, &sig );
std::cout << "continued" << std::endl;
}
gdb ./run 30261