精华内容
下载资源
问答
  • Python命令行调试

    千次阅读 2019-01-03 10:30:14
    再有就是其他人源码,多部分都是命令行运行,于是我就很好奇,他们都是怎么调试程序的(总不会,上来就一下子写好了吧!-_-!) 这几天,看《Python进阶》这本书,受益颇多! 看到Debugging这一节,看到了pdb这个...

    2020-12-30 update:

    • 最近用pdb反而多了起来,具体原因是因为在一些项目中,运行代码是通过shell脚本运行,不能想之前那样,在IDE中添加断点,用pdb反而更加省事,提高效率

    Notes: 之前一直依赖于Pycharm编辑器,后来发现,许多情况下,并总是可以用IDE,方便调试代码。再有就是其他人源码,多部分都是命令行运行,于是我就很好奇,他们都是怎么调试程序的(总不会,上来就一下子写好了吧!-_-!)

    这几天,看《Python进阶》这本书,受益颇多!
    看到Debugging这一节,看到了pdb这个好用的调试工具,在此简单记录一下。

    关于代码调试

    • 添加断点
    • 观察代码运行情况,推断问题所在
      • 添加断点位置
      • 单步执行
      • 查看当前变量情况
      • 继续执行
      • 进入函数
      • 跳出函数
    • 满足以上功能,我想基本就可以满足自己要求了

    Python debugger(pdb)

    脚本内部设置断点

    • 代码如下:
    import pdb
    def make_bread():
    	pdb.set_trace()
    	return "I don't have time"
    make_bread()
    
    • 命令行列表
      • c : 继续执行
      • w : 显示当前正在执行的代码行的上下文信息
      • a : 打印当前函数的参数列表
      • s : 执行当前代码行,并停在第一个能停的地方
      • n : 继续执行到当前函数的下一行,或者当前行直接返回
      • q: 退出调试,程序执行会被终止
        我想这样,就能满足基本要求了,我觉得直接在可能出问题的代码前加
    pdb.set_trace()
    

    这种用法好用一些。

    展开全文
  • 最近在调虚幻的编辑器的时候遇到了一个问题。 调试模式运行UE4Editor.exe 实际上只是一个带...直接找到任务管理器,运行的程序,右键调试 就可以调试了。不过前提是你要有这个exe的代码。 尤其适合调试那些...

    最近在调虚幻的编辑器的时候遇到了一个问题。

    调试模式运行UE4Editor.exe 实际上只是一个带参的命令行。

    打开后,它又通过这个参数生成了一份详细配置,重新调用了自己。如图

    这就悲剧了,断点都没有执行就直接打开新程序退出了。

    那要怎么调试呢?

    直接找到任务管理器,运行中的程序,右键调试

    就可以调试了。不过前提是你要有这个exe的代码。

    尤其适合调试那些,多层次互相调用的exe架构

     

    转载于:https://www.cnblogs.com/Again/p/6182984.html

    展开全文
  • 运行于Windows操作系统上一种网络协议及数据包测试和调试工具。 该工具可发送和接收TCP,UDP数据。 主要用于在网络通讯程序开发时,测试TCP或UDP通讯连接和测试数据接收和发送情况。该工具通过直观友好界面...

    软件介绍

    运行于Windows操作系统上的一种网络协议及数据包测试和调试工具。 该工具可发送和接收TCP,UDP数据。
    主要用于在网络通讯程序开发时,测试TCP或UDP通讯连接和测试数据的接收和发送情况。该工具通过直观友好的界面实时展示发送和接收的数据。

    特点:

    支持TCP协议发送和接收数据。支持服务器模式和客户端模式。服务器模式主要用于测试TCP接收。客户端主要用于TCP主动请求。

    支持UDP和UDP广播方式发送和接收

    支持多连接,可同时对多路网络连接进行操作

    支持发送汉字

    支持十六进制发送和接收方式

    支持自动间隔时间发送

    支持自动应答

    支持调试方案保存
    16进制
    支持以16进制发送和接收数据,可随时进行16进制切换。

    自动应答
    支持在收到消息时自动应答,数据可定义设置。

    广播
    支持UDP广播。 测试方案
    支持保存设置好的方案,下次直接加载。

    TCP/UDP测试工具更新记录

    2013-10-24
    修复:
    1、在某些情况下程序会自动退出。
    2、在某些情况下切换16进制会提示错误。

    TCP/UDP测试工具使用帮助:

    1、下载程序压缩包。

    2、解压缩文件,进入解压目录,双击主程序运行。

    3、这里显示的是主界面的菜单栏。

    4、新建测试,可选择TCP测试或UDP测试(包括UDP广播)。

    5、TCP测试
    TCP测试包括服务器模式客户端模式

    服务器模式:该程序作为TCP协议的接收端,通过设置本机的TCP监听端口,开始TCP监听。

    客户端模式:该程序作为TCP协议的发送端,通过设置目标机的TCP监听端口,开始TCP连接。

    如有TCP数据包发送过来,程序会自动将数据显示在接收区。数据可设置为十六进制方式显示。

    7、 UDP测试。设置监听和发送端口,可测试UDP数据的发送和接收。

    软件标签: TCP测试

    软件截图

    TCP/UDP测试工具 2.1.1 绿色版
    展开全文
  • 首先我Ubuntu是装在虚拟机下,然后我配置好了jdk环境,没有装开发...我试过把整个项目文件夹拖到Ubuntuhome路径下,然后在终端一个打开文件夹之后,用javac,java的命令行编译调试我主方法所在类,但是报错。。。
  • (题外话: 其实我也是刚学怎么编写shell脚本,可能写得有不好地方,多多见谅)平时我们编写完java程序后,运行调试都是ide帮我们弄好,但是实际情况肯定不会用ide运行,而是打包成jar,用命令行执行命令来运行程序,所以...

    (题外话: 其实我也是刚学怎么编写shell脚本,可能写得有不好的地方,多多见谅)

    平时我们编写完java程序后,运行调试都是ide帮我们弄好的,但是实际情况肯定不会用ide运行,而是打包成jar,用命令行执行命令来运行程序,所以本着项目部署的方便,我就写了个shell脚本.

    首先,来解释下这个shell脚本需要用到的知识:

    首先是这行代码#!/bin/sh

    这行代码表示这个脚本使用/bin/sh这个目录下的解释器来执行,即这个脚本就是我们常见的.sh脚本了

    JAVAHOME=$JAVA_HOME

    初始化jdk的环境变量,这需要linux系统配置好java环境

    RUNNING_USER=$USER

    跟上面一样,这个也是初始化执行该脚本的用户变量的,方便我们下面用shell执行控制台命令

    BASEPATH=$(cd dirname $0; pwd)

    获取项目根目录的绝对路径,防止项目迁移后又需要修改这个shell脚本

    除了以上几行代码之外,其他函数我都写了注释,脚本比较简单,大家看注释就能明白了

    #!/bin/sh

    # radius server 运行脚本

    # jdk路径

    JAVAHOME=$JAVA_HOME

    # 运行程序的用户

    RUNNING_USER=$USER

    # 项目根目录的绝对地址

    BASEPATH=$(cd `dirname $0`; pwd)

    # 程序路径,项目是用maven编译打包的,所以jar在target文件夹中,绝对路径在执行时构建,方便项目迁移

    APP_HOME=$BASEPATH/target/radiusServer-1.0-SNAPSHOT-jar-with-dependencies.jar

    # main方法类

    MAIN_CLASS=your.main.class

    #构建完整的classpath,除了main_class外,还需包含程序运行必须的依赖包

    #因为项目是用maven打包的,所以依赖包会打包到target/lib目录下

    CLASSPATH=$APP_HOME/classes

    for i in $APP_HOME/lib/*.jar; do

    CLASSPATH="$CLASSPATH":"$i"

    done

    ################################################################

    # 判断程序是否已经启动,若已启动,则初始化全局psid(程序的id),方便下面停止程序时使用.

    #

    # psid: 全局变量,程序的在系统中的id

    # jps: java的一个命令行工具,用于查找本机上正在运行的java程序及其pid

    # grep: 正则表达式搜索命令

    # awk: linux上的分割函数,分割后的结果中,$0表示整行,$1表示第一个字段,以此类推

    #

    ################################################################

    psid=0

    initPsid(){

    javaps=`$JAVAHOME/bin/jps -l | grep $APP_HOME`

    if [ -n "$javaps" ]; then

    psid=`echo $javaps | awk '{ print $1}'`

    else

    psid=0

    fi

    }

    ################################################################

    # 启动程序

    # 1.首先判断程序是否已经启动

    # 2.已启动,则提示用户;未启动,则执行命令启动程序

    # 3.最后输出启动启动程序的结果

    #

    # -ne: not equal

    # nohup 其他命令 &: 让程序在后台运行的的命令,

    # 其中,./program >/dev/null 表示将程序普通的输出流输出到dev目录下null文件中(该文件会自动清空,相当于黑洞),

    # 2>log.out 表示将程序的异常及错误日志输出到/home/log.out这个文件中

    # su - user -c commandline: 以user身份运行commandline这句命令

    # &? 表示上一句命令或函数执行的结果

    #

    ################################################################

    start(){

    initPsid

    if [ ! -n "$1" ]; then

    echo "没有指定配置文件,使用默认配置文件..."

    configPath=$BASEPATH/conf.json

    else

    echo "使用指定的配置文件: $1"

    configPath=$1

    fi

    if [ $psid -ne 0 ]; then

    echo "=================================================="

    echo "| server has already started |"

    echo "=================================================="

    else

    echo "starting $MAIN_CLASS ..."

    JAVA_CMD="nohup $JAVAHOME/bin/java -jar $APP_HOME -c $configPath ./program >log.out &"

    su - $RUNNING_USER -c "$JAVA_CMD"

    initPsid

    if [ $psid -ne 0 ]; then

    echo "start [OK] pid=$psid"

    else

    echo "start [FAILED], $?"

    fi

    fi

    }

    ################################################################

    #

    # 停止程序

    # 执行kill pid来使程序退出

    # kill命令默认是退出,非强制,服务端收到退出指令后将执行停止操作(如关闭线程池之类的),

    # 执行完才算真正退出

    #

    ################################################################

    stop(){

    initPsid

    if [ $psid -ne 0 ]; then

    echo -n "Stopping $MAIN_CLASS pid=$psid ..."

    su - $RUNNING_USER -c "kill $psid"

    if [ $? -eq 0 ]; then

    echo "Stop [OK]"

    else

    echo "Stop [FAILED]"

    fi

    else

    echo "=================================================="

    echo "| WARN: $MAIN_CLASS is not running! |"

    echo "=================================================="

    fi

    }

    #################################################################

    #

    # 获取服务端程序是否正在运行

    #

    #################################################################

    status(){

    initPsid

    if [ $psid -ne 0 ]; then

    echo "Running"

    else

    echo "not Running"

    fi

    }

    ##################################################################

    #

    # 输出程序运行的环境

    #

    ##################################################################

    info(){

    echo "********* System Information ***********"

    echo `head -n 1 /etc/issue`

    echo `uname -a`

    echo

    echo "JAVAHOME=$JAVAHOME"

    echo `$JAVAHOME/bin/java -version`

    echo

    echo "USER=$RUNNING_USER"

    echo "BASEPATH=$BASEPATH"

    echo "APP_HOME=$APP_HOME"

    echo "MAIN_CLASS=$MAIN_CLASS"

    echo "*****************************************"

    }

    #################################################################

    #

    # 根据参数确定调用哪个函数

    #

    # 函数传递参数的方式: funcName param1 param2

    # 在函数中获取参数的方式: $1 $2,第一个参数就是$1,第n个就是$n

    #

    #################################################################

    case "$1" in

    'start')

    start $2

    ;;

    'stop')

    stop

    ;;

    'restart')

    stop

    start $2

    ;;

    'status')

    status

    ;;

    'info')

    info

    ;;

    *)

    echo "Usage $0 { start | stop | status | restart | info }"

    exit

    esac

    exit 0

    展开全文
  • 昨日入手Windows网络编程经络这本书,第一章给了Echo客户端和服务器简单通信实例程序。从小白到入门目测都是比较苦逼,居然想不到怎么来测试结果。什么同时运行啊、分别编译运行啊乱七八糟想法就开始冒。最后...
  • 但是如果使用pycharm在终端调试服务器上train.py,一般需要在本地打开train.py,然后配置好解释器什么之后直接点击按钮debug,但是这个时候因为和直接在服务器上使用命令行运行当前路径不一样,如果程序里面有...
  • 但是我想看一下程序具体的运行过程 于是我在VS2019 项目——文件操作 属性——弹出方框的调试标签下 有一个命令参数 我写入了123.txt 直接点调试 一直显示123.txt无法打开 请问正确带参数的调试方法...
  • 1.使用硬件设备 ... 你可以使用Android设备作为环境来运行调试或测试你的程序,在SDK中的工具使你每次编译时简单的安装到手机,并运行的程序。你可以直接从Eclipse或者使用ADB的命令行来安装程序到手机上。
  • 使用vs code环境调试scrapy框架程序

    千次阅读 2019-03-29 10:46:10
    最近使用scrapy框架,因为我们使用scrapy框架一般都是通过...要想在vocode里进行调试,首先我们要先模拟一下,在vs code端进行运行scrapy,所以我们首先解决怎么在python端运行框架,而不是使用命令行来执行...
  • 比如,笔者在使用pyinstaller打包pyqt的程序成exe之后,运行exe,无故闪退,或者弹窗报错。作为一个工程师,这个时候有一千万个理由想要看到这个错误的内荣到底是啥。 经过阅读文章无数,终于发现了怎么来看这个...
  • 当我们成功打包并运行程序后,黑框中会显示程序输出内容。但是如果程序运行不成功,那黑框中就会显示报错信息,这个对我们非常重要。而有些时候我们程序显示是一个GUI界面,所以不想要黑框,不然用户会觉得不友好...
  • 当我们建好了wcf服务应用程序之后,也添加了相应接口方法,那么我们怎么测试添加接口方法是否可行呢?接下来就介绍一个vswcf客户端调试工具。(当前示范使用是vs2012) 步骤如下: 1.在开始菜单中找到vs2012...
  • Unity3D利用Logcat调试安卓

    千次阅读 2017-07-13 08:38:59
    发布安卓包之后再次测试发生什么问题很难知道怎么了,比如说出现闪退等情况,可以用Logcat检测到,logcat是Android中一个命令行工具,可以用于得到程序的log信息,可以用 logcat 命令来查看系统日志缓冲区内容. ...
  • 运行npm run dev以开发模式打开调试好了你案例程序;你还不满足于仅仅把代码放在github上,想直接能把案例效果build版本代码在本地预览或者放在你个人博客上供大家直接看效果学习。 这时如果直接运行npn run ...
  • 也可以通过在运行里输入"cmd"在弹出cmd命令行里输入netstat -an 来查看自己开放端口.ip地址后面就是端口号.以下是我自己写一篇关于关闭端口详细步骤和多种方法有很多人问我如何关闭端口,所以我(流云)整理...
  • 在Spyderpython程序怎么调试,特别是需要带命令行参数时。 左边是代码区,双击左侧可设置断点。右侧上部是变量及值,下部是IPython console控制台,调试程序命令就在这里输入 第一种:直接运行,按F5或者在...
  • GDB调试方法总结

    2018-04-22 18:26:22
    以上面的程序为例进行编译gcc gdb_test.c -o gdb_test -g有两种运行用法一是在编译成功后输入gdb + 编译后的文件名二是在命令行中先输入gdb,按回车,再输入file + 编译后的文件这两种方法选择其中一个就可以。...
  • 其中交互式主要用于简单python运行或者测试调试python时用到,而脚本式是运行python程序的主要方法。下面我们来了解一下Python如何使用交互式运行:通过Windows命令行工具进行交互式运行python。同时按下Windows键...
  • 程序调试运行该窗口。 版权所有2019 Roshini Sundar 根据Apache许可版本2.0(“许可”)许可; 除非遵守许可,否则不得使用此文件。 您可以在以下位置获得许可副本: ...
  • 以前做了个项目,因为要调试所以在使用该程序的机器上也装上了vc6.0,最近机器重装之后应用程序就没法有运行了,登陆时候一点确定程序就不见了,而且任务管理器里也找不到该程序进程,郁闷了两三天才知道原来是打包...
  • 1)开发时,在解决方案中,鼠标右键选择项目,然后点选“属性”,在“调试”项目中命令行参数”里面,可以预先输入需在命令行接收参数,这样开发时候就可以直接读入了。注意,不用对这些参数进行校验,默认...
  • 有时候,在运行/调试脚本时候,我们需要指定一些参数,这在命令行中,直接指定即可。 假设在命令行中,运行脚本命令是这样 python main.py init --local 对于刚使用 Pycharm 同学,可能并不知道 Pycharm 也是...
  • 你在 Pycharm 运行项目,通常是怎么执行?...有时候,在运行/调试脚本时候,我们需要指定一些参数,这在命令行中,直接指定即可。 假设在命令行中,运行脚本命令是这样 python main.py init --local 对于
  • 20165103 2017-2018-2 《Java程序设计》第4周...问题1:在课堂上使用jdb调试代码时,不知道怎么命令行参数输入。 问题1解决方案:在运行jdb时在项目文件后面加上要输入值。 问题2:使用jdb调试时无法进入堆栈,w...
  • 不过直接运行或者从命令行上手工起gdb调试是好,可见是 Eclipse 问题。查一圈,发现是Binary Parser问题,默认居然不是Mach-O。官方文档有介绍怎么改 : http://help.eclipse.org/indi
  • 安全里面复制地址作为调试参数,在运行程序识别地址会多一个问号“?”后来通过试验发现在命令行里面粘贴地址会在前面多一个符号:线框里面有LRE三个字母(据百度上一篇文章说是Unicode控制字符)进一步试验...

空空如也

空空如也

1 2 3 4
收藏数 70
精华内容 28
关键字:

命令行运行的程序怎么调试