SSH Secure Shell 的使用

一,安装Secure Shell ,之后会出现SSH Secure Shell client 和SSH Secure File Transfer client 两个快捷方式。

  需要服务器的IP地址,用户名和密码,就连上服务器了。

二,使用SSH Secure File Transfer client 上传要运行的源程序文件。

三,编译源程序

  使用命令 g++ /home/olap/lyr/main.cpp -lpthread 编译程序。

  其中/home/olap/lyr/main.cpp 是源程序main.cpp的路径,此路径可以在transfer client中得到。

四,运行程序

  使用命令 ./a.out 

  在本次试验中由于,需要线程的个数作为参数传入。因此运行命令是 ./a.out 1

  其中1位线程的个数。   a.out 是编译之后产生的程序的名字。

五,程序的调试

  1,在编译时产生调试信息。

    使用命令 g++ -g

    例:g++ -g /home/olap/lyr/main.cpp -lpthread

  2,进入调试状态。

    使用命令gdb --args 程序名  需要的参数

    例:gdb --args a.out 31

    出现以下信息:

        

  3,运行程序

    看到(gdb)命令提示符之后,输入 r ,然后回车。其中r是run的缩写,表示开始运行程序。

    会出现以下信息:

    

  4,再上一步进行2-3秒之后,不能太久,即程序还在运行过程中,按ctrl+c ,此时,程序会停下来

    显示以下:

    

    每次按Ctrl+C的时候实际是在一个随机的时间暂停的程序,那么这个时刻每个线程执行的东西就很有代表性,

    表示可能很长时间这个线程都在执行这个。

  5,再输入 info threads,就会显示各个线程的信息。其中带??的线程,表示该线程的运行有问题。意味着该线程陷入操作系统调用了。

    

  6,针对有问题的线程,使用命令 thread  线程号,回车之后,再输入bt,就会显示该线程的调用栈,看看各个函数的情况,进一步发现问题。

    

    注意,在显示线程的信息之后,输入thread 线程号之前,要是线程太多,显示要超过一屏的时候,会出现以下最后一行信息:

    

    这时,输入q,出现(gdb)命令提示符之后,输入thread 线程号,才可以显示相关线程的栈信息。

原文地址:https://www.cnblogs.com/lyr2015/p/7410826.html