精华内容
下载资源
问答
  • 调试器
    千次阅读
    2021-02-25 20:56:58

    一.无线调试器说明

    许多单片机支持使用SWD与JTAG接口在线仿真调试,但很多场景下(如无人机、移动机器人),我们没有办法在设备运行的过程中将线缆插到设备上进行有线调试,这时候一个可以远程debug和查看曲线的无线调试器就显得非常重要了。

    市面上大多数(几乎100%)无线调试器都是基于开源的CMSIS-DAP协议再加上WIFI或2.4G射频等无线通讯模块制作的,代表产品是正点原子的高速/普速版无线调试器,这种方案的优点是:1.全开源,可控性强,社区力量强;2.若硬件软件完全自制,则成本很低。

    segger公司在去年8月时发布了j-link软件对树莓派的支持包:SEGGER J-Link adds support for Raspberry Pi as host,这使得我们有机会使用树莓派制作一款基于J-Link Remote Server的无线调试器,被调试的设备通过J-Link连接到树莓派,而树莓派和debug的主机之间通过TCP/IP进行通信。

    基于J-Link Remote Server制作的无线调试器有以下特点:1.成本较高,需Cortex-A7及以上架构的CPU,以及支持glibc-2.28的操作系统;2.软件闭源,即使出了问题,由于国内使用的几乎都是盗版的j-link和keil,也无法寻求技术支持;3.软硬件商业化,方案稳定、简单;4.可使用segger公司成熟的j-scope数据可视化软件,便于调试。

    我想制作这样一个无线调试器主要是因为上面说的优点4,我们使用正点原子或市面上其他的无线调试器时,其实是没有太好的数据可视化方法的,东南大学RM战队在交流分享时提到了两种使用正点原子无线调试器时的数据可视化方法,第一种是使用单独引出串口进行可视化,第二种是使用Cube IDE内置的工具进行可视化。事实上第二种方法是不成立的,ST明确指出STM32CubeMonitor(即上述可视化工具)只支持ST-Link,而正点原子无线调试器是基于CMSISI-DAP协议的,无法使用该工具。而第一种方式也有很多缺点,它是一种侵占式的监视,需要改变程序来监视不同的变量,数据获取的速度和程序中串口输出的速度有关,也无法同时监视很多变量的变化曲线,和segger的j-scope以及ST的STM32CubeMonitor的高速非侵占式监视都有较大差距。

    二.软硬件配置及参数

    硬件:Raspberry Pi 4B + J-Link V11

    操作系统:Ubuntu Desktop 20.10

    无线烧录速度:15M

    J-Scope采样率:10K samples / s

    J-Scope最大监视变量数目:20

    事实上,在网络良好的情况下,无线调试器的下载速度和j-scope的采样速率只和我们所使用的j-link型号有关, j-link ob,j-link v9,j-link v11的速率各不相同。j-link 的手册中写到:

    J-Link Remote Server allows using J-Link / J-Trace remotely via TCP/IP. This enables you to connect to and fully use a J-Link / J-Trace from another computer. Performance is just slightly (about 10%) lower than with direct USB connection.

    在实际测试中,网络状况也会对远程j-link的连接产生影响,在远程调试的时候去网上下载东西会导致调试中断。我校校园网晚高峰时也会使j-link偶尔出现丢包的情况。

    三.配置过程

    1.说明

    在第一节中我说过,segger公司的j-link软件需要Cortex-A7及以上架构的CPU,以及支持glibc-2.28的操作系统才可以运行,我使用过Raspberry Pi Zero W和友善之臂的NanoPi NEO Air进行了测试,均以失败告终,上面的数据就是这么得到的,所以我也不确定该软件在别的平台和环境下可以运行(我没有找到官方的最低配置要求),以下的教程均基于树莓派4b + 16G tf卡。

    2.刷系统

    Install Ubuntu on a Raspberry Pi

    安装Ubuntu Desktop 20.10,我这里选择安装桌面是为了方便,若很熟悉命令行配网并愿意花时间去安装依赖,安装Server也是很好的,但事实上我还不清楚如何在命令行下进行校园网的锐捷认证。

    刷完系统需要例行更新一下。

    sudo apt -y update && sudo apt -y upgrade
    

    若出现Temporary failure resolving 'ports.ubuntu.com'之类的域名解析错误,则需要手动添加DNS服务器,将下面两句话添加进/etc/resolv.conf文件。

    nameserver 8.8.8.8
    nameserver 8.8.4.4
    

    3.安装J-Link软件

    cd ~/Downloads
    wget --post-data 'accept_license_agreement=accepted&non_emb_ctr=confirmed&submit=Download+software'   https://www.segger.com/downloads/jlink/JLink_Linux_arm64.deb
    sudo dpkg -i JLink_Linux_arm64.deb
    sudo apt -y update && sudo apt -y upgrade
    

    四.使用方法

    1.树莓派端

    首先我们需要把j-link一端通过USB连接到树莓派上,另一端通过SWD或JTAG连接到我们要调试的嵌入式设备上,然后在树莓派上运行如下指令打开j-link的远程服务端。

    JLinkRemoteServerCLExe -Port 19020
    

    如果没有检测到j-link,可能会出现Unable to load library icui18n的错误提示,可以忽略,不影响使用。

    如果是通过ssh运行该指令,或者没有安装图形界面,那么可能还会出现JLinkGUIServerExe: cannot connect to X server的报错,可忽略。

    现在应该有如下界面:
    在这里插入图片描述
    随后我们需要获取树莓派的IP:

    hostname -I
    

    2.PC端

    首先打开KEIL–Options for Target–Debug–Settings进行如下配置,IP地址就填我们刚刚获取到的树莓派的IP地址,这里注意一定要保证PC端和树莓派连接的是一个WIFI,即处在一个局域网内并且可以相互访问,我们可以在Windows的cmd里面ping树莓派的IP地址,看是否接收到回复。
    在这里插入图片描述
    随后我们要点击JLink Cmd按钮,在弹出的界面中再次输入树莓派的IP。
    在这里插入图片描述
    现在已经通过命令行连接上jlink了,如下图所示,这个命令行界面需要一直保持,不能关闭。
    在这里插入图片描述
    这时候在树莓派上,我们可以看到Client connected的提示:
    在这里插入图片描述
    随后,我们就可以在KEIL中远程下载程序和运行debug了,一切和直连设备没有任何区别。J-Scope也可以使用,输入远程IP和端口即可。

    五.TO DO

    我现在是简单设置了一个开机自启,通过ssh远程连接到树莓派,程序就会自动运行。我想做到真正的“即插即用”,即将树莓派连接到被调试设备上,就可以直接在KEIL中连接jlink了。同时,我也考虑到在没有网络或网络差的地方进行调试,所以我想尝试一下树莓派WIFI的AP模式信号强度是否足够;最后,我也会继续尝试其余廉价、体积更小的arm板卡。但是因为自己的懒惰和要做的事情太多,所以暂时搁置掉这些想法,有时间我会回来把坑填上的。

    六.参考资料

    SEGGER J-Link adds support for Raspberry Pi as host

    Using a Raspberry Pi as a remote headless J-Link Server

    KEIL开发环境使用JLINK远程调试

    更多相关内容
  • 蓝牙调试器-划时代无线调试器

    千次阅读 多人点赞 2019-08-14 16:57:54
    蓝牙调试器 这篇文章的受众是本专科院校有理想的青年或已经踏入社会的电子工程师们。本文章旨在介绍一款在Android设备上通过使用蓝牙功能实现无线调试的应用。 一、蓝牙调试器介绍 此蓝牙调试器历时一个多月...

    蓝牙调试器

        这篇文章的受众是本专科院校有理想的青年或已经踏入社会的电子工程师们。本文章旨在介绍一款在Android设备上通过使用蓝牙功能实现无线调试的应用。

    一、蓝牙调试器介绍

        此蓝牙调试器历时一个多月开发完成,其基于安卓设备,通过安卓设备的蓝牙通信功能实现单片机的无线调试。编写这款软件的目的主要是为了盈利, 嗯,当然是为了广大的单片机开发爱好者,拯救他们于繁琐的调试步骤之中。没错,我已经做好了一分钱都收不到的觉悟了,为此我在这个应用的开头加了个广告,至少保证我能一天收入一根冰棍。

       先说一下本应用适用的场景,首先最迫切需要本应用的场景是采用PID或者其它控制器的单片机系统,比如自写飞行器飞控、自写直立车控制、智能车竞赛、板球控制系统、风力摆控制系统、倒立摆控制系统、电机调速系统、温控系统、液位系统等等。总之所有需要不断设置参数以获得最佳效果的单片机系统都是我要搭救的目标。

        不说废话了,前方大量截图警报!!!

    在使用本应用前,你首先需要有这种模块(HC-05、HC-06 或者 其它支持串口数据透传的模块):

     

    蓝牙串口模块

        本应用针对一些BLE透传模块专门做过优化,可以支持一部分BLE蓝牙透传模块,如JDY-08型,至于其它的模块由于舍不得买我也就不知道能不能用了。

    二、设备的扫描和连接

     

    设备扫描列表

        打开应用,会出现上图的界面。应用提供了一个蓝牙设备扫描和连接的界面,点击下方的圆形按钮可以启动扫描功能,扫描到的设备会出现在列表中。

        点击列表中右方的加号按钮进行连接,初次连接可能会弹出设备配对的对话框,需要输入配对密码,此时不要慌,尝试输入0000或者 1234,一般是会通过的,不然就输入123456,如果还不行那只有一种可能就是此蓝牙模块的配对密码被改动过。

        配对成功后,再次点击加号按钮,此时不出意外的话,就可以连接成功了,连接成功后,加号会变成红色的“X”,如果在点击此“X”号的话,则应用会断开与此模块的连接。

        在连接成功后,界面最上方的状态栏会显示已经连接的设备,并且显示当前蓝牙连接的数据收发的情况。

    注意:1.当开启扫描时,应用会自动断开当前正在连接的设备

               2.应用无法连接手机等设备,只能与蓝牙串口模块建立通信

    三、简单文本收发

     

    对话模式

        成功连接设备后,可以使用应用直接与蓝牙模块实现文本形式的发送和接收。在下方的输入框输入要发送的文本数据,然后点击向上的箭头,文本就会被发送到蓝牙模块。此时单片机就可以从蓝牙模块的TX口接收到传输的数据。

    注意:1、蓝牙模块的串口波特率的设定是非常重要的,单片机的串口在配置时一定要与蓝牙模块的串口波特率一致,否则只能接收到乱码。

               2、在传输较大量的数据时(超过每秒500B),需要确保蓝牙模块被设定为较高的串口波特率。

    四、快捷按钮发送

     

    按钮界面

        应用共11个可自定义的按钮,按下和抬起时都会发送不同的数据,从而适用更多的使用场景。画面上方的空白横条将会将会显示从单片机传输过来的数据,可以用来观察单片机的状态。点击右下角的编辑模式,然后点击按钮即可编辑按钮。

     

    按钮编辑

        对于每个按钮,都可以编辑其显示名称、按下时发送的数据和松开时发送的数据。编辑结束后,可以按下“结束编辑”按钮,应用会退出编辑模式,再按按钮时即发送数据,这一点非常人性化,嗯,个人认为。

    五、调试工程

    5.1 添加工程

     

    调试工程列表

        调试工程这一功能是应用最核心的功能,它提供了高度自由化的控制界面让你可以为你的设计实时调试参数,实时反馈状态,并以波形的形式显示出来。对于每一个设计你都可以对应的建立一个工程。

    点击下面的“+”按钮可以添加新的工程。

     

    添加新工程

        在此,你可以为你的工程命名,并可以选择以横屏或者竖屏的界面来调试。

     

    工程列表

        可以看到已经添加了一个工程,这个工程所有的配置会一直保留,直到你将应用卸载。此时点击此工程可以弹出操作选项。

    调试工程下方的四个选项

        工程下有四个选项,第一个是修改名称,同时也可以改变调试的横竖屏方向。第二个是控件布局的编辑,你可以自由定义多种控件以支持你的调试。第三个是通信设置,设置通信结构是最为重要的一个环节,你需要根据实际要反馈的状态和要设定的参数进行配置。第四个是删除工程。

    此时点开“编辑控件”按钮。

    5.2 编辑控件

     

    控件编辑

        图为编辑控件的界面,右上角有一堆工具,靠上方的分别是:新建控件、控件数据链接、控件参数设置、控件删除以及退出调试。靠右方的三个按钮则是编辑模式切换:分别为位置、大小和旋转。

    此时点击“新建控件”。

     

    控件列表

        本应用支持多种控件,可以根据实际要操作的变量合理选择。此时点击“按钮”控件。

    为控件链接数据

        此时会出现链接对话框,要求你为新建的控件链接一个变量。之后当你按下按钮时,其链接的变量就会被赋值。然后发送到单片机端。由于我事先没有在“通信设置”中添加变量,因此现在暂时不链接。点击对话框以外的区域跳过此步骤。

     

    按钮

        此时会发现画面中多了一个按钮,你可以按住它并来回拖动,左下方会显示该按钮的坐标以及尺寸。如果你觉得按钮太小,可以点击右上角的缩放按钮,然后手指在屏幕中向右下角滑动

     

    按钮放大

    如此就实现了控件缩放的调整。如果你想要控件摆放的不拘一格,那么你可以点击右上角的旋转按钮,然后手指在屏幕中左右滑动。

     

    按钮旋转

        如此就实现了控件的旋转,现在多添加几个控件。

     

    几种不同的控件

        从上到下依次是按钮、开关、文本框、可编辑文本框、能量槽、滑动条和参数微调框。

    此外,还有三个大家伙:

     

    三个大控件

    分别是X-Y型波形图,摇杆和Y-T型波形图:

    X-Y型波形图可以显示由两个变量表示的点,并记录和显示这个点的轨迹。

    摇杆,就是摇杆,手指在摇杆区域拖动时,其XY轴链接的两个变量也会变化。

    Y-T型波形图其实就是波形图,最多可以显示六个通道的波形。

    编辑完成后,可点击右上角的“X”按钮回到主界面。

    5.3 调试界面

     

    调试界面

        在主界面中点击调试工程右边的“运行”(三角)按钮。进入调试界面,如上图,此时没有控件编辑的一堆工具了,右上角只有一个“X”,左上角的标签正在显示实时的通信速率。Tx  Rx分别代表手机通过蓝牙发送和接收的速率。而Err则表示手机接收到的数据不准确速率。如果此速率与Rx相近,则说明,单片机没有按照指定的数据包协议传输数据。

        以上是没有链接变量的调试界面,接下来要加入变量了。

    5.4 数据设置

    5.4.1 数据包结构设置

    数据结构设置

        在主界面,点击调试工程下面的黑色按钮“通信设置”。进入通信设置界面,可能你会感到一阵头晕,东西好抽象。其实一点都不抽象,让我来理一理。首先,看界面的上半部分,有一个白色区域,里面有比例条状图形,这个比例条状的图就描述了数据包的结构中各个成分的占比。比如我现在没有添加变量,那么只有一个黑色的包头字节和灰色的校验和包尾字节,共三个字节。点击右上角的“?”看一下数据包的解释。

     

    数据包解释

        这已经是我能想到的最简单的一种可以按结构进行数据传输的协议了。包头、校验、包尾的存在意义就是为了同步,将数据按照一定的结构发出去然后从接收端取出来。再看下半部分:

     

    五种类型的变量

        本应用支持五种不同类型的变量:分别为逻辑值、字节值、短整形、整形和浮点型。之所以分类分得如此细,是为了减少通信的数据,减轻单片机的负担,并提高通信的速率。比如逻辑bool类型的值取值只有0和1,而一个逻辑值只占1/8个字节的大小,当控制等的开关,电机的启停、状态的使能时都可以使用bool类型以减轻通信负担。字节类型的取值范围为-128~127,短整形则为-32768~32767,以及范围更大的整形和浮点型。

        对于每一个类型的变量,在右上角都有相应的编辑按钮,“+”为添加变量。绿色按钮为修改名称。“X”为删除变量。

    现在添加一个逻辑值变量:

     

    添加一个变量

     

    添加变量后

         可以看到,在界面上半部分的比例条状图中,多出了一个紫色块,下面的列表中多了一个“led1”的圆圈。再多添加几个变量:

    添加多个变量

        你可以自由地无限添加变量,数目是没有限制的。配置好发送数据包后,可以在下方可以选择接收数据包,接收数据包描述的是单片机发过来的数据的结构,因此你在通过单片机回传数据的时候,也要以规定的协议发送数据。

    5.4.2 通信模式设置

    然后是“通信模式”的设置。点击下方的通信模式按钮,进入设置界面:

    通信模式设置

        应用支持三种通信行为,一种是定时向单片机发送数据包,单片机接收到数据后,将当前需要的状态数据打包回传到手机。第二种是不发送只接收单片机定时向手机发送的数据包。第三种则是比较高级,由于用户并不是每时每刻都在修改参数,因此定时发送的数据包会有大量的重复,发送没有意义。为了解决这个问题,在第三种模式下,应用只有在用户操作控件时才发送数据包。这样可以大幅减轻单片机处理数据的负担。除了设置通信模式外,还可以设置定时发送时的发送间隔。以及控件操作时发送的数据间隔等。

    5.5 控件数据链接

        设置好数据包变量后,进入“控件编辑”界面,为现有的控件链接变量。如下图所示

     

    选中摇杆

    点击选中中间的摇杆,然后点击上方的绿色链接按钮,出现如下画面

    链接变量

        在此界面中,你可以选择要连接的变量的方向、类型以及名称。这里我链接了之前定义的发送方向、short类型的X变量和Y变量。选定后点击对话框周围的区域进入下一步。

    控件参数设定

        应用需要你指定这个摇杆的上下限,默认为-128~127,同时你也可以设置其它参数比如使摇杆在你松开后自动归零。此时点击“OK”。以同样的方法配置其它的控件,返回主界面,进入调试界面:

    调试界面

        可以看到在下面的波形显示中已经有一条黄线了,只是由于现在没有配置好接收数据包的结构,因此波形没有起伏。至此调试功能基本就简单的介绍到这了,里面各种控件的使用可以自行摸索。

    六、设置

    设置

        设置界面主要是设置关于蓝牙的表现,如自动扫描,自动连接等。同时应用支持过滤的功能,你可以通过输入关键字的方式让设备列表中只出现相关的设备,而不会出现手机等设备乱入的情况。

        好了,这就是关于蓝牙调试器的简单介绍了,之后会以实战的形式带大家领略其强大的功能。相信我,用这个应用可以让你把单片机玩出花来。

    其实现在这个应用还远没有做到预期效果,目前正在考虑加入 重力感应控件、二值化图像传输、HEX收发功能,添加TCP/IP网络设备调试等。但我已经花费了一个月多的时间,现在看来并没有多少人用,心中难免失落。

    如果你觉得我做的东西有些意义的话, 评论或者打赏支持一下吧,让我有坚持“不务正业”下去的动力。

    展开全文
  • 【VSCode】调试器debugger详细使用手册

    千次阅读 2022-04-01 14:09:01
    VS Code 的内置调试器有助于加速您的编辑、编译和调试循环。 调试器扩展 VS Code 具有对Node.js运行时的内置调试支持,并且可以调试 JavaScript、TypeScript 或任何其他转换为 JavaScript 的语言。 开始调试 以下...

    Visual Studio Code 的主要功能之一是其出色的调试支持。VS Code 的内置调试器有助于加速您的编辑、编译和调试循环。
    请添加图片描述

    调试器扩展

    VS Code 具有对Node.js运行时的内置调试支持,并且可以调试 JavaScript、TypeScript 或任何其他转换为 JavaScript 的语言。

    开始调试

    以下文档基于内置的Node.js调试器,但大部分概念和功能也适用于其他调试器。

    在阅读有关调试的信息之前先创建一个示例 Node.js 应用程序会很有帮助。您可以按照Node.js 演练安装 Node.js 并创建一个简单的“Hello World”JavaScript 应用程序 ( app.js)。设置简单的应用程序后,此页面将带您了解 VS Code 调试功能。

    var msg = 'Hello World';
    console.log(msg);
    

    运行视图

    要打开运行视图,请在VS Code 一侧的活动栏中选择运行图标。您也可以使用键盘快捷键 ⇧⌘D。

    在这里插入图片描述

    运行视图显示与运行和调试相关的所有信息,并有一个带有调试命令和配置设置的顶栏。

    如果尚未配置运行和调试(未launch.json创建),VS Code 将显示运行开始视图。

    运行菜单

    顶级运行菜单具有最常见的运行和调试命令:
    在这里插入图片描述

    启动配置

    要在 VS Code 中运行或调试一个简单的应用程序,请在“调试”开始视图中选择“运行和调试”或按F5,VS Code 将尝试运行您当前活动的文件。

    但是,对于大多数调试方案,创建启动配置文件是有益的,因为它允许您配置和保存调试设置详细信息。VS Code 将调试配置信息保存在launch.json位于.vscode工作区文件夹(项目根文件夹)或用户设置或工作区设置中的文件中。

    要创建launch.json文件,请单击运行开始视图中的创建 launch.json 文件链接。

    在这里插入图片描述

    VS Code 将尝试自动检测您的调试环境,但如果失败,您将不得不手动选择它:
    在这里插入图片描述

    这是为 Node.js 调试生成的启动配置:

    {
      "version": "0.2.0",
      "configurations": [
        {
          "type": "pwa-node",
          "request": "launch",
          "name": "Launch Program",
          "skipFiles": [
            "<node_internals>/**"
          ],
          "program": "${file}"
        }
      ]
    }
    

    如果您返回文件资源管理器视图 (⇧⌘E ),您将看到 VS Code 已创建一个.vscode文件夹并将launch.json文件添加到您的工作区。

    在这里插入图片描述

    注意:即使您没有在 VS Code 中打开文件夹,也可以调试简单的应用程序,但无法管理启动配置和设置高级调试。如果您没有打开文件夹,则 VS Code 状态栏为紫色。

    请注意,启动配置中可用的属性因调试器而异。您可以使用 IntelliSense 建议 ( ⌃Space ) 找出特定调试器存在哪些属性。悬停帮助也适用于所有属性。

    不要假设一个调试器可用的属性也自动适用于其他调试器。如果您在启动配置中看到绿色曲线,请将鼠标悬停在上面以了解问题所在,并在启动调试会话之前尝试修复它们。

    在这里插入图片描述
    查看所有自动生成的值,并确保它们对您的项目和调试环境有意义。

    启动与附加配置

    在 VS Code 中,有两种核心调试模式Launch和Attach,它们分别处理两个不同的工作流程和开发人员细分。根据您的工作流程,知道哪种类型的配置适合您的项目可能会令人困惑。

    如果您来自浏览器开发者工具背景,您可能不习惯“从您的工具启动”,因为您的浏览器实例已经打开。当您打开 DevTools 时,您只是将DevTools 附加到您打开的浏览器选项卡。另一方面,如果您来自服务器或桌面背景,让您的编辑器为您启动进程是很正常的,并且您的编辑器会自动将其调试器附加到新启动的进程。

    解释启动和附加之间区别的最佳方法是将启动配置视为如何在VS Code 附加到它之前以调试模式启动应用程序的秘诀,而附加配置是如何连接 VS Code 的秘诀调试器到已经运行的应用程序或进程。

    VS Code 调试器通常支持在调试模式下启动程序或在调试模式下附加到已经运行的程序。根据请求(attach或launch),需要不同的属性,VS Code 的launch.json验证和建议应该对此有所帮助。

    添加新配置

    要将新配置添加到现有配置launch.json,请使用以下技术之一:

    • 如果您的光标位于配置数组内,请使用 IntelliSense。
    • 按添加配置按钮以在数组开头调用片段 IntelliSense。
    • 在运行菜单中选择添加配置选项。
      请添加图片描述

    VS Code 还支持同时启动多个配置的复合启动配置;

    为了启动调试会话,首先使用运行视图中的配置下拉菜单选择名为启动程序的配置。设置好启动配置后,使用F5启动调试会话。

    或者,您可以通过命令面板( ⇧⌘P ) 运行配置,方法是过滤调试:选择并开始调试或键入’debug '并选择要调试的配置。

    一旦调试会话开始,就会显示DEBUG CONSOLE面板并显示调试输出,并且状态栏会改变颜色(默认颜色主题为橙色):

    请添加图片描述

    此外,调试状态会出现在状态栏中,显示活动的调试配置。通过选择调试状态,用户可以更改活动启动配置并开始调试,而无需打开运行视图。
    调试状态

    调试操作

    一旦调试会话开始,调试工具栏将出现在编辑器的顶部。

    请添加图片描述

    • 继续/暂停F5
    • 跨过F10
    • 步入F11
    • 退出⇧F11
    • 重启⇧⌘F5
    • 停止⇧F5

    提示:使用设置debug.toolBarLocation来控制调试工具栏的位置。它可以是默认的floating,docked运行视图,或hidden. 调试工具栏可以floating水平拖动,也可以向下拖动到编辑器区域。

    运行模式

    除了调试程序,VS Code 还支持运行程序。Debug: Run (Start without Debugging)操作由⌃F5触发并使用当前选择的启动配置。“运行”模式支持许多启动配置属性。VS Code 在程序运行时维护一个调试会话,按下停止按钮会终止程序。

    提示:运行操作始终可用,但并非所有调试器扩展都支持“运行”。在这种情况下,“运行”将与“调试”相同。

    断点

    可以通过单击编辑器边距或在当前行上使用F9来切换断点。可以在 Run 视图的BREAKPOINTS部分中进行更精细的断点控制(启用/禁用/重新应用)。

    • 编辑器边距中的断点通常显示为红色实心圆圈。
    • 禁用的断点有一个实心灰色圆圈。
    • 当调试会话开始时,无法注册到调试器的断点会变为灰色的空心圆圈。如果在不支持实时编辑的调试会话正在运行时编辑源代码,也会发生同样的情况。

    如果调试器支持中断不同类型的错误或异常,这些也将在BREAKPOINTS视图中可用。

    Reapply All Breakpoints命令将所有断点再次设置到其原始位置。如果您的调试环境是“惰性的”并且在尚未执行的源代码中“错位”断点,这将很有帮助。
    请添加图片描述

    或者,可以通过启用设置在编辑器的概览标尺中显示断点debug.showBreakpointsInOverviewRuler:

    概览标尺中的断点
    请添加图片描述

    日志点

    日志点是断点的变体,它不会“中断”到调试器中,而是将消息记录到控制台。日志点对于在调试无法暂停或停止的生产服务器时注入日志记录特别有用。

    日志点由“菱形”形图标表示。日志消息是纯文本,但可以包含要在花括号 (’{}’) 内计算的表达式。
    请添加图片描述
    就像常规断点一样,可以启用或禁用日志点,也可以通过条件和/或命中计数来控制。

    注意:日志点由 VS Code 的内置 Node.js 调试器支持,但可以由其他调试扩展实现。

    数据检查

    可以在“运行”视图的VARIABLES部分中检查变量,也可以将鼠标悬停在编辑器中的源上。变量值和表达式评估与CALL STACK部分中选定的堆栈帧相关。
    请添加图片描述
    可以使用变量上下文菜单中的“设置值”操作修改变量值。此外,您可以使用Copy Value操作来复制变量的值,或使用Copy as Expression操作来复制表达式以访问变量。

    变量和表达式也可以在运行视图的WATCH部分进行评估和观察。

    请添加图片描述
    当焦点位于VARIABLES部分时,可以通过键入来过滤变量名称和值。
    请添加图片描述

    Launch.json 属性

    有许多launch.json属性可以帮助支持不同的调试器和调试方案。如上所述,一旦为属性指定了值,就可以使用 IntelliSense ( ⌃Space ) 查看可用属性的列表type。
    请添加图片描述
    每个启动配置都必须具有以下属性:

    • type- 用于此启动配置的调试器类型。每个安装的调试扩展都引入了一种类型:node例如,用于内置的 Node 调试器,或者php用于goPHP 和 Go 扩展。
    • request- 此启动配置的请求类型。目前,launch并attach受支持。
    • name- 出现在调试启动配置下拉列表中的易于阅读的名称。

    以下是可用于所有启动配置的一些可选属性:

    • presentation- 使用对象中的order、group和hidden属性presentation,您可以在调试配置下拉列表和调试快速选择中对配置和化合物进行排序、分组和隐藏。
    • preLaunchTask- 要在调试会话开始之前启动任务,请将此属性设置为tasks.json中指定的任务的标签(在工作区的.vscode文件夹中)。或者,可以将其设置${defaultBuildTask}为使用您的默认构建任务。
    • postDebugTask- 要在调试会话结束时启动任务,请将此属性设置为tasks.json中指定的任务的名称(在工作区的.vscode文件夹中)。
    • internalConsoleOptions- 此属性控制调试会话期间调试控制台面板的可见性。
    • debugServer-仅适用于调试扩展作者:此属性允许您连接到指定端口,而不是启动调试适配器。
    • serverReadyAction- 如果您想在正在调试的程序向调试控制台或集成终端输出特定消息时在 Web 浏览器中打开 URL。有关详细信息,请参阅下面的调试服务器程序时自动打开 URI部分。

    许多调试器支持以下一些属性:

    • program- 启动调试器时运行的可执行文件或文件
    • args- 传递给程序进行调试的参数
    • env- 环境变量(该值null可用于“取消定义”变量)
    • envFile- 带有环境变量的 dotenv 文件的路径
    • cwd- 用于查找依赖项和其他文件的当前工作目录
    • port- 附加到正在运行的进程时的端口
    • stopOnEntry- 程序启动时立即中断
    • console- 使用哪种控制台,例如internalConsole、integratedTerminal或externalTerminal

    变量替换

    VS Code 将常用路径和其他值作为变量提供,并支持在launch.json. 这意味着您不必在调试配置中使用绝对路径。例如, w o r k s p a c e F o l d e r 给 出 工 作 区 文 件 夹 的 根 路 径 、 {workspaceFolder}给出工作区文件夹的根路径、 workspaceFolder{file}在活动编辑器中打开的文件以及${env:Name}环境变量“名称”。您可以在变量参考launch.json中或通过在字符串属性中调用 IntelliSense来查看预定义变量的完整列表。

    {
      "type": "node",
      "request": "launch",
      "name": "Launch Program",
      "program": "${workspaceFolder}/app.js",
      "cwd": "${workspaceFolder}",
      "args": ["${env:USERNAME}"]
    }
    

    特定于平台的属性

    Launch.json支持定义取决于运行调试器的操作系统的值(例如,要传递给程序的参数)。为此,请将特定于平台的文字放入launch.json文件中,并在该文字中指定相应的属性。

    下面是一个在 Windows 上以不同方式传递"args"给程序的示例:

    {
      "version": "0.2.0",
      "configurations": [
        {
          "type": "node",
          "request": "launch",
          "name": "Launch Program",
          "program": "${workspaceFolder}/node_modules/gulp/bin/gulpfile.js",
          "args": ["myFolder/path/app.js"],
          "windows": {
            "args": ["myFolder\\path\\app.js"]
          }
        }
      ]
    }
    

    有效的操作属性适用"windows"于 Windows、"linux"Linux 和"osx"macOS。在操作系统特定范围中定义的属性会覆盖在全局范围中定义的属性。

    请注意,该type属性不能放在特定于平台的部分中,因为type在远程调试场景中间接确定了平台,这将导致循环依赖。

    在下面的示例中,调试程序总是在进入时停止,但在 macOS 上除外:

    {
      "version": "0.2.0",
      "configurations": [
        {
          "type": "node",
          "request": "launch",
          "name": "Launch Program",
          "program": "${workspaceFolder}/node_modules/gulp/bin/gulpfile.js",
          "stopOnEntry": true,
          "osx": {
            "stopOnEntry": false
          }
        }
      ]
    }
    

    全局启动配置

    VS Code 支持"launch"在您的用户设置中添加对象。然后,此"launch"配置将在您的工作区中共享。例如:

    "launch": {
        "version": "0.2.0",
        "configurations": [{
            "type": "node",
            "request": "launch",
            "name": "Launch Program",
            "program": "${file}"
        }]
    }
    

    高级断点主题

    条件断点

    一个强大的 VS Code 调试功能是能够根据表达式、命中计数或两者的组合设置条件。

    • 表达式条件:只要表达式求值为 ,就会触发断点true。
    • 命中计数:“命中计数”控制断点在“中断”执行之前需要命中多少次。是否尊重“命中计数”以及表达式的确切语法因调试器扩展而异。

    您可以在创建源断点(使用添加条件断点操作)或修改现有断点(使用编辑条件操作)时添加条件和/或命中计数。在这两种情况下,都会打开一个带有下拉菜单的内联文本框,您可以在其中输入表达式:
    命中计数

    函数和异常断点也支持条件和命中计数编辑。您可以从上下文菜单或新的内联编辑条件操作启动条件编辑。

    BREAKPOINTS视图 中的条件编辑示例:
    条件编辑

    如果调试器不支持条件断点,则添加条件断点和编辑条件操作将丢失。

    内联断点

    仅当执行到达与内联断点关联的列时,才会命中内联断点。这在调试在一行中包含多个语句的缩小代码时特别有用。

    可以使用⇧F9或在调试会话期间通过上下文菜单设置内联断点。内联断点在编辑器中内联显示。

    内联断点也可以有条件。可以通过编辑器左边距的上下文菜单在一行上编辑多个断点。

    函数断点

    调试器可以通过指定函数名称来支持创建断点,而不是直接在源代码中放置断点。这在源不可用但函数名称已知的情况下很有用。

    通过按BREAKPOINTS部分标题中的+按钮并输入函数名称来创建函数断点。函数断点在BREAKPOINTS部分中以红色三角形显示。

    数据断点

    如果调试器支持数据断点,则可以从VARIABLES视图设置它们,并在底层变量的值更改时受到影响。数据断点在BREAKPOINTS部分以红色六边形显示。

    调试控制台 REPL

    可以使用调试控制台REPL ( Read-Eval-Print Loop ) 功能评估表达式。要打开调试控制台,请使用调试窗格顶部的调试控制台操作或使用查看:调试控制台命令 ( ⇧⌘Y )。在您按Enter后计算表达式,并且调试控制台 REPL 在您键入时显示建议。如果您需要输入多行,请在各行之间使用Shift+Enter ,然后使用Enter发送所有行进行评估。调试控制台输入使用活动编辑器的模式,这意味着调试控制台输入支持语法着色、缩进、引号自动关闭和其他语言功能。
    调试控制台
    注意:您必须处于正在运行的调试会话中才能使用调试控制台 REPL。

    重定向输入/输出到/从调试目标

    重定向输入/输出是特定于调试器/运行时的,因此 VS Code 没有适用于所有调试器的内置解决方案。

    以下是您可能要考虑的两种方法:

    1. 在终端或命令提示符下手动启动程序进行调试(“调试目标”),并根据需要重定向输入/输出。确保将适当的命令行选项传递给调试目标,以便调试器可以附加到它。创建并运行附加到调试目标的“附加”调试配置。

    2. 如果您使用的调试器扩展可以在 VS Code 的集成终端(或外部终端)中运行调试目标,您可以尝试将 shell 重定向语法(例如,“<”或“>”)作为参数传递。

    这是一个示例launch.json配置:

    {
      "name": "launch program that reads a file from stdin",
      "type": "node",
      "request": "launch",
      "program": "program.js",
      "console": "integratedTerminal",
      "args": ["<", "in.txt"]
    }
    

    这种方法要求“<”语法通过调试器扩展并最终在集成终端中未经修改。

    多目标调试

    对于涉及多个进程的复杂场景(例如,客户端和服务器),VS Code 支持多目标调试。

    使用多目标调试很简单:启动第一个调试会话后,您可以启动另一个会话。一旦第二个会话启动并运行,VS Code UI 就会切换到多目标模式:

    • 现在,各个会话在CALL STACK视图中显示为顶级元素。
      调用堆栈视图

    • 调试工具栏显示当前活动的会话(所有其他会话都在下拉菜单中可用)。
      调试操作小部件

    • 调试操作(例如,调试工具栏中的所有操作)在活动会话上执行。可以使用调试工具栏中的下拉菜单或通过在CALL STACK视图中选择不同的元素来更改活动会话。

    复合发射配置

    启动多个调试会话的另一种方法是使用复合启动配置。复合启动配置列出了应该并行启动的两个或多个启动配置的名称。可以选择preLaunchTask指定在各个调试会话开始之前运行的 a。布尔标志stopAll控制手动终止一个会话是否会停止所有复合会话。

    {
      "version": "0.2.0",
      "configurations": [
        {
          "type": "node",
          "request": "launch",
          "name": "Server",
          "program": "${workspaceFolder}/server.js"
        },
        {
          "type": "node",
          "request": "launch",
          "name": "Client",
          "program": "${workspaceFolder}/client.js"
        }
      ],
      "compounds": [
        {
          "name": "Server/Client",
          "configurations": ["Server", "Client"],
          "preLaunchTask": "${defaultBuildTask}",
          "stopAll": true
        }
      ]
    }
    

    复合启动配置显示在启动配置下拉菜单中。

    远程调试

    VS Code 本身不支持远程调试:这是您正在使用的调试扩展的一项功能,您应该在Marketplace中查阅扩展的页面以获取支持和详细信息。

    但是,有一个例外:VS Code 中包含的 Node.js 调试器支持远程调试。请参阅Node.js 调试主题以了解如何配置它。

    调试服务器程序时自动打开 URI

    开发 Web 程序通常需要在 Web 浏览器中打开特定的 URL,以便在调试器中访问服务器代码。VS Code 有一个内置功能“ serverReadyAction ”来自动执行此任务。

    下面是一个简单的Node.js Express应用程序示例:

    var express = require('express');
    var app = express();
    
    app.get('/', function(req, res) {
      res.send('Hello World!');
    });
    
    app.listen(3000, function() {
      console.log('Example app listening on port 3000!');
    });
    

    此应用程序首先为“/” URL 安装“Hello World”处理程序,然后开始在端口 3000 上侦听 HTTP 连接。该端口在调试控制台中公布,通常,开发人员现在将http://localhost:3000在他们的浏览器应用程序中键入。

    serverReadyAction功能可以将结构化属性添加到serverReadyAction任何启动配置并选择要执行的“操作”:

    {
      "type": "node",
      "request": "launch",
      "name": "Launch Program",
      "program": "${workspaceFolder}/app.js",
    
      "serverReadyAction": {
        "pattern": "listening on port ([0-9]+)",
        "uriFormat": "http://localhost:%s",
        "action": "openExternally"
      }
    }
    

    这里的pattern属性描述了用于匹配宣布端口的程序输出字符串的正则表达式。端口号的模式放在括号中,以便它可用作正则表达式捕获组。在此示例中,我们仅提取端口号,但也可以提取完整的 URI。

    该uriFormat属性描述了端口号如何转换为 URI。第一个%s被匹配模式的第一个捕获组替换。

    然后使用为 URI 方案配置的标准应用程序在 VS Code 之外(“外部”)打开生成的 URI。

    通过 Edge 或 Chrome 触发调试

    action可以设置为debugWithEdge或debugWithChrome。在这种模式下,webRoot可以添加一个传递给 Chrome 或 Edge 调试会话的属性。

    为了简化一点,大多数属性都是可选的,我们使用以下后备值:

    • 模式:"listening on.* (https?://\\S+|[0-9]+)"匹配常用消息“正在侦听端口 3000”或“正在侦听:https://localhost:5001”。
    • uri格式:"http://localhost:%s"
    • 网络根:"${workspaceFolder}"

    触发任意启动配置

    在某些情况下,您可能需要为浏览器调试会话配置其他选项——或者完全使用不同的调试器。您可以通过将属性设置为启动配置的名称来执行此操作,以便action在匹配时启动。startDebuggingnamepattern

    命名的启动配置必须与带有serverReadyAction.

    这里的serverReadyAction功能在起作用:
    服务器就绪功能正在运行

    展开全文
  • PLS UDE调试器试用

    千次阅读 2021-07-20 09:18:00
    做嵌入式开发测试的人一般情况下都听过Lauterbach、iSystem、PLS这三个大名鼎鼎的调试器厂家。可惜的是在之前的工作中从未接触过这些大神级的调试器,只闻其声不见其人。 今天有幸从PLS厂家获取到了一款调试器,下面...

    做嵌入式开发测试的人一般情况下都听过Lauterbach、iSystem、PLS这三个大名鼎鼎的调试器厂家。可惜的是在之前的工作中从未接触过这些大神级的调试器,只闻其声不见其人。
    今天有幸从PLS厂家获取到了一款调试器,下面就简单的使用过程做一下记录和总结


    1. 总体描述

    1.1 UDE与UAD

    平时大家都叫UDE叫习惯了,严格来说这个叫法不合适,对于PLS的硬件盒子叫UAD(Universa Access Device),而PLS的集成开发环境(IDE)叫UDE(Universal Debug Engine)。下图是PLS官网给出的不同型号的UAD之间的对比,供大家参考。
    在这里插入图片描述

    1.2 外观

    前面啰里吧嗦说了半天,我们还是先看一下它长什么样子。如下图,UAD2Pro的主体是一个黑色小盒子,看上去其貌不扬,甚至还感觉有一丢丢的丑陋,不过看上去就很结实的样子,至少看上去比iSystem的BlueBox耐造。
    在这里插入图片描述
    UAD2Pro的接口位于两端,左端依次是USB口、指示灯、电源口,如下图所示。
    在这里插入图片描述
    右端三个接口,左侧顶部圆孔是接地端口、下面方口是JTAG/DAP调试口,右侧是ASC/CAN调试口,如下图所示。

    在这里插入图片描述

    1.3 组网

    本次组网验证使用的评估版是Infineon TC277(如下图)。
    在这里插入图片描述
    供应商发过来的评估样机携带的主要配件如下图所示(电源线和USB线没啥好拍的)。
    在这里插入图片描述
    整体地,把调试器和评估板连在一起(注意JTAG口连接评估板的时候,插头凸起点一侧面向评估板的电源一端),如下图所示。
    在这里插入图片描述
    UDE2Pro跟计算机、评估板的组网方式也很简单,如下图所示。
    在这里插入图片描述

    2. UDE

    2.1 下载UDE

    在下载之前,需要先在PLS官网注册账号,但是注册完成的账号无法立即使用,提示没有下载权限,如下图。
    在这里插入图片描述
    需要等PLS后台审核,审核通过以后,对应的邮箱会收到如下图所示的通知邮件。
    在这里插入图片描述
    这个时候登录PLS官网的UDE下载页面(Downloads and Updates (pls-mc.com))可以直接下载最新版本的UDE,也可以从主页通过“SERVICE/Downloads and Updates”进入UDE下载页面,如下图所示。
    在这里插入图片描述

    2.2 安装UDE

    在Windows下,直接运行UDE的exe安装包,根据提示简单几步就可以安装完成,这里不再赘述,只是在安装的最后记得输入License Key,或者安装完成后,在UDE Desktop的licence manager里面加入对应的license,如下图。
    在这里插入图片描述

    2.3 运行UDE

    UDE安装完成后,会在开始菜单中产生一系列的内容,如下图所示。
    在这里插入图片描述
    通过其中的“UDE Desktop”菜单运行UDE。打开后的UDE Desktop空空如也,如下图所示。
    在这里插入图片描述

    2.4 Workspace

    通过菜单“File/New Workspace”打开创建工作空间对话框。
    在这里插入图片描述
    输入名称,点击“打开”按钮。
    在这里插入图片描述
    出现提示对话框,点击“Default”来使用预定义的配置文件,点击“New”从头开始创建新的配置文件。

    在这里插入图片描述
    这里点击“Default”使用预定义的配置文件,从列表中的“TriCore Aurix/Infineon”下选择TC277的JTAG类型的配置,然后点击完成,如下图。
    在这里插入图片描述
    在弹出的目标配置文件保存对话框中,设置保存目标配置文件的位置和名称,然后保存。
    在这里插入图片描述
    在选择目标配置文件界面选择刚刚保存的目标配置文件,然后点击确定按钮,如下图。
    在这里插入图片描述
    这时候出现的是选择需要调试的Core的对话框,默认选中的0/1/2三个核,保持默认,点击“OK”按钮。
    在这里插入图片描述

    2.5 连接验证

    这个时候可能会报如下的错误,提示无法连接到目标,没有找到JTAG客户端,点击右上角的“Retry”重试也不起作用,如下图
    在这里插入图片描述
    直接点击“Cancel”按钮,关闭界面,发现UDE左下角的信息输出窗口中显示了类似的错误提示信息。
    在这里插入图片描述
    出现这种错误的原因有如下两种可能:
     JTAG接口没有插牢固或者没有插;
     JTAG和DAP同时连接了评估板(因为前面创建的目标配置文件是JTAG,如果是这种情况,需要把DAP连接线从评估板上拔下来);
    如果Target Configuration一直保持的是默认配置,这个问题出现的原因基本上不可能是上面错误提示页面所说的Target Configuration导致的。
    上面两个都检查完毕以后,重新点击“Connect”按钮(如下图),即可成功连接评估板。
    在这里插入图片描述
    连接成功后,Connect按钮变成灰色,Disconnect按钮变成可点击状态,页面上显示如下的连接成功的提示信息,如下图。
    在这里插入图片描述

    展开全文
  • 关于滴水的VT调试器

    千次阅读 2018-10-21 19:18:26
    关于滴水的VT调试器 论坛上今天吵的比较火热,主要是关于滴水的VT调试器,很多人不了解这个东西,我对Intel的VT技术略有了解,所以我来简单的介绍一下。 第一,什么是VT技术 VT是Intel的硬件虚拟化技术,说到VT,就...
  • IDE、编辑器、编译器、解释器与调试器写在前面IDE编辑器编译器解释器调试器编译器和解释器的区别和优缺点编译器和调试器的区别 写在前面 对于这些概念,我只是记录一下自己的理解,如果有不对的地方请多多指正。 IDE...
  • 微信开发者工具调试器是空白的

    千次阅读 2021-05-13 11:15:54
    微信开发者工具调试器是空白的 微信开发者工具开发小程序的时候想看网络请求发现调试器是空白的,我还在想,什么垃圾,竟然不能看网络请求,然后咨询了一下客服,原来是IDE升级版本之后出现的bug,退出之后重新启动...
  • 蓝牙调试器app HC05、HC06(功能非常强大)

    千次阅读 多人点赞 2021-10-01 17:45:54
    可以在百度搜索蓝牙调试器可下载。 里面分基础模式和专业模式, 基础模式 基础模式非常的简单,设置相应的按键的值就可以显现发送数据,例如用按键控制灯的亮灭。具体设置1、点击编辑模式就可以编辑相应的按...
  • 使用IDLE调试器调试Python程序

    千次阅读 2020-01-13 22:50:07
    分析定位程序错误是程序设计最基本的功能。Python标准库的调试器pdb提供了基本的调试功能:设置断点、查看变量等。集成开发环境 (IDE,例如IDLE、Spyder、 PyCharm) 则提供了更直接方便的调试器
  • QT设置调试器Debugger

    万次阅读 2019-06-27 22:37:17
    QT设置调试器Debugger 如需转载请标明出处:http://blog.csdn.net/itas109 QQ技术交流群:129518033 文章目录QT设置调试器Debugger1.调试器支持2.安装本地调试器2.1 Debugging Tools for Windows/CDB下载2.2 ...
  • 谷歌浏览器控制台调试器的基本使用方法,常用方法必备,手把手教学
  • pycharm点击工具栏的调试按钮时出现错误:连接 Python 调试器失败 Socket closed 首先采用以下方法: 选择左上角工具栏“file”→“setting”,在 Build, Execution, Deployment --> Python Debugger 里的 ...
  • Qt Creator配置MSVC调试器(解决为什么Qt可以运行但是无法调试)Qt Creator单步调试模式一:使用MinGW编译器和调试器模式二:Qt Creator配置MSVC调试器 Qt Creator单步调试 在Windows环境下,使用Qt Creator开发Qt...
  • 微信开发者工具-调试器

    千次阅读 2019-07-23 19:56:48
    微信开发者工具-调试器 调试器常用的 6 大功能模块有:Console、Sources、Network、Appdata、Storage、Wxml Console Console有两大功能: 1)开发者可以在此输入和调试代码  2)小程序的错误输出,会显示...
  • MCD2--ICD2仿真调试器USB驱动程序下载

    热门讨论 2011-03-24 15:48:42
    MCD2--ICD2仿真调试器USB驱动程序下载 MCD2--ICD2仿真调试器USB驱动程序下载
  • 一般调试器工作原理

    千次阅读 2016-06-11 12:59:20
    调试器简介 严格的讲,调试器是帮助程序员跟踪,分隔和从软件中移除bug的工具。它帮助程序员更进一步理解程序。一开始,主要是开发人员使用它,后来测试人员,维护人员也开始使用它。 调试器的发展历程: ...
  • Proteus使用心得(1) -- I2C调试器

    千次阅读 2020-05-02 23:38:31
    I2c调试器 3.1 i2c调试器位置 在这里可以找到I2C调试器 3.2 打开调试器 当仿真运行时不小心删了窗口,可以这样重新打开 3.3 调试器界面 界面刚开始很小,左右拉一下会有出现其他分栏 (1)界面 是记录数据传输日志...
  • Visual Studio 调试器的功能教程

    千次阅读 2018-03-21 14:01:04
    将官网的技术文档摘了下来链接 https://docs.microsoft.com/zh-cn/visualstudio/debugger/debugger-feature-tourVisual Studio 调试器的功能教程2017/05/19作者 本主题介绍 Visual Studio 调试器的功能。...
  • 在练习使用pycharm的debug功能,发现做好断点,点击debugger时候,报错了,报错信息有: 如题所示。 解决办法:将脚本名字struct.py改名字为s1.py
  • 微信开发者工具打开没有调试器

    千次阅读 2020-09-30 17:48:31
    目前开发微信小程序时,我们习惯用微信开发者工具的调试器进行调试,但是更新了一次版本后,发现调试器不见了 只有一个 调试器按钮,里面啥都没有了,后来找了半天原因,社区给的答复就是重新启动!重新启动!重新...
  • Qt中“调试器未设置”的解决方法

    千次阅读 2019-05-09 15:48:42
    Qt中“调试器未设置”的解决方法 1.问题的提出 QtCreator + Qt5 进行开发。然而,在此过程中,我发现程序按F5可以直接运行。但设置断点进入调试模式时,却弹出“qt 调试器未设置”错误。这个问题的原因是因为没有...
  • 问题: 由于在Qt5以上版本默认开启QML调试器造成的。用于告知用户,这将打开一个到运行QML的Javascript解释器的端口,以便从中获得调试输出。显然,这会造成一个安全漏洞,所以在不安全的地方使用时应该关闭它(在...
  • Node之使用调试器

    千次阅读 2019-12-24 17:39:45
    启动调试器 node debug<需要被执行的脚本文件名> 继续执行剩余代码 cont或者c 执行下一步 next或者n 进入函数内部 step或者s 执行函数内部剩余所有代码 在函数内部代码被逐句执行的时候,可以使用“out”...
  • 我出现这种情况是因为,老版本开发工具的项目拉取到新版本开发工具里面,出现调试器为白色。解决办法,取消勾选新的编译模块,然后重启,即可解决。
  • 开源作品——CMSIS-DAP调试器

    千次阅读 2020-05-26 17:38:16
    CMSIS-DAP调试器是一款开源调试器,网上也有很多制作资料,我也是根据这些资料,自己制作了一款CMSIS-DAP调试器,目前使用没发现什么BUG,下载调试功能都OK,就是速度没有JLink快,但是毕竟人家完全开源,还要啥...
  • stm32与蓝牙调试器的数据帧接收发送处理

    千次阅读 多人点赞 2021-10-03 11:51:44
    所用的蓝牙调试助手app可以自由添加控件,包括摇杆、参数微调框、能量槽、开关、Y-T波形图、X-Y波形图等...关于app的使用方法可以参考作者的博客:蓝牙调试器-划时代无线调试器_XLazyDog的博客-CSDN博客_蓝牙调试器...
  • 解决安装QT后无编译器和调试器问题

    千次阅读 2020-11-16 19:40:11
    @安装QT后无调试器 解决安装QT后无编译器和调试器问题 如果在安装QT后显示没有编译器,则是在安装QT的过程中忘记了选择Tools目录下的MinGW这个选项如下图所示,MSVC2015 32bit和MSVC2015 64bit是C++桌面开发的编译器...
  • 可想而知,调试起来有多么辛苦,而且这个调试器还不稳定,随时都会卡死、奔溃,你需要有足够的耐心来折腾它。 IDA pro官方文档: https://www.hex-rays.com/products/ida/support/idadoc/1669.shtml ...
  • QtCreator 调试器配置

    千次阅读 2017-05-12 15:51:23
    QtCreator 默认是没有调试器的,因此需要用户额外安装。 win10请下载安装: win8、win7请下载,使用与32位和64位:http://download.csdn.net/detail/qq_35488967/9840722配置教程 安装时,会有很多工具让你选择,...
  • 基于ESP8266的CMSIS-DAP调试器

    千次阅读 多人点赞 2019-06-04 13:12:59
    不过我们用STM32的时候,经常需要进行各种调试,这时候一个调试器就很重要了。于是我想到也许可以做一个无线调试器?本来我打算自己写一个的,不过在github发现居然有人做过了,那就直接拿来用吧哈哈哈。项目地址: ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 903,605
精华内容 361,442
关键字:

调试器