zoukankan      html  css  js  c++  java
  • 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 线程号,才可以显示相关线程的栈信息。

  • 相关阅读:
    真正明白了引用与对象的关系,就能避开下面这个陷阱
    python 垃圾回收
    字典
    表的操作
    MySQL数据库中的存储引擎
    MySQL数据库的基本操作
    MySQL数据库安装文件夹与配置文件简易说明
    数据库概述
    Arrays类
    Math类
  • 原文地址:https://www.cnblogs.com/lyr2015/p/7410826.html
Copyright © 2011-2022 走看看