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 线程号,才可以显示相关线程的栈信息。

  • 相关阅读:
    作业3——turtle
    作业2——Python基础
    作业——理解管理信息系统
    测试用例挑选策略
    UVALive 5903 Piece it together(二分图匹配)
    UVALive 4953 Wormly--【提醒自己看题要仔细】
    HDU 3111 Sudoku(精确覆盖)
    FZU 2165 v11(最小重复覆盖)+ codeforces 417D Cunning Gena
    UVALive 6577 Binary Tree 二叉树的LRU串
    codeforces 425C Sereja and Two Sequences(DP)
  • 原文地址:https://www.cnblogs.com/lyr2015/p/7410826.html
Copyright © 2011-2022 走看看