VSCode调试代码的三种方式

VSCode调试C++ 开源、功能强大(高亮/自动补齐都是最基本的功能);轻量,相对xcode轻量太多;几乎可以用来编写所有的语言、甚至写文档,只要安装对应插件即可;个性化配置程度高; 阅读详情
AI摘要

本文介绍了在VSCode中通过auto-attach、JavaScriptDebugTerminal和LaunchConfiguration三种方式配置和调试Node.js代码的方法,包括不同选项设置和调试操作指南。

VSCode调试代码的三种方式

一、配置auto-attach(影响全局的终端)

在vscode的终端里运行node时,根据不同的选项,自动判断是否启动debug模式。

ctrl + shift + p 打开命令框并输入auto-attach根据自己实际情况设置其值,老版本默认选项是smart,新版本改成了disabled。

选项值解释
始终总是以debug模式启动
智能只有指定的文件, 才进入debug模式
仅带标志带有–inspect或者inspect-brk参数, 以debug模式启动
禁用永远不使用debug模式启动

注意:通过上面的方式(auto-attach)控制的是vscode中启动的所有终端。

二、JavaScript Debug Terminal(debug 终端)

通过ctrl + `打开vscode内置终端,在右上角加号那选择JavaScript Debug Terminal选项打开一个debug模式的终端,在这个里面启动的node都会进入debug模式。

注意:这种方式只控制它启动的这一个终端。

三、Launch Configuration(启动配置)

在vscode左侧菜单栏的第四个按钮中有一个自定义运行和调试创建launch.json文件点击后选择node,并且会在.vscode/launch.json创建这个配置文件

调试按钮

  1. 继续:点击后执行到下一个断点的位置,若之后无断点,则认为本次代码执行完成。
  2. 单步跳过:点击后执行下一行代码,不会进入函数内部。
  3. 单步调试:点击后进入函数的内部。
  4. 单步跳出:点击后跳出当前调试的函数内部。
  5. 重启:重新debug。
  6. 断开连接:结束。
debug-vscode调试方法 参考:VSCode C/C++(gdb)调试指南命令参考: https://www.cnblogs.com/chengliangsheng/p/3597010.html 二、命令 查看main反汇编 -exec disassemble /m main -exec info r -exec print s 或者 --s -exec print $pc -exec bt 或 -exec info f -exec info local x/ n、f、u是可选的参数。n 是一个正整数,表示显示内存的长度, 阅读详情

相关推荐

VSCode使用EmmyLua调试Lua代码

《Unity3D VSCode使用EmmyLua调试Lua代码》 前提: 电脑需要配置安装Java环境(javajdk, jre)。 一、将会用到的工具 -(工具都会在文中提供): Unity客户端工程用到 :emmy_core.dll 【Github】https://github.com/EmmyLua VSCode需要安装插件EmmyLua 二、具体流程 (1).在客户端工程入口处,在启动Lua虚拟机后(一般在main.lua中),使用下方两张截图中的代码,requi...

知识无止境 2万+

Visual Studio Code调试方法总结

介绍在Windows侧使用Visual Studio Code工具几种场景下的调试方法,语言为C++/C。

jackiejane的博客 7842

VSCode 在Unity运行时调试 Unity Lua 代码

基础前提 VSCode 版本(2021/12/28最新版): Unity 版本:2020.3.12f1c1(对于vscode Debug的影响应该不大) 教程目的:能够在Unity运行前、中、都能启动调试,修改代码后不用重启VSCode调试运行,只需要重启Unity即可继续调试 操作步骤 1. VScode 安装 Lua 插件 打开VSCode软件最左栏,扩展,搜索以下插件名,安装 Install 后启用 2. 打开项目文件夹添加配置 打开你们的项目文件夹,在工具栏的选择运行 > 添加配置

eeem 8047

Visual Studio Code基础:使用debugpy调试python程序

相关阅读VS codehttps://blog.youkuaiyun.com/weixin_45791458/category_12658212.html?spm=1001.2014.3001.5482 在VS code中可以很轻松地调试Python程序,首先需要安装Python调试器插件,如图1所示。图1 安装调试器插件 Python Debugger是用于VS code的调试扩展,通过debugpy提供强大的调试功能,如设置断点、单步执行和变量检查,支持脚本、Web 应用、远程进程和多线

保持终身学习的能力,温故而知新 3万+

自己经常使用的三种调试:Pycharm、Vscode、pdb调试

调试程序的三种方式:Pycharm、Vscode、pdb调试

Highlight_Jin的博客 2533

详解Linux下使用vscode编译运行和调试C/C++

本教程将具体详解使用Visual Studio Code在Linux环境下使用C/C++方法。 GCC C++ 编译器 (g++) 和 GDB 调试器的方法。 GCC是GNU 编译器集合; GDB 是 GNU 调试器。 1.先决条件 安装Visual Studio Code. 安装C++拓展插件。点击在vscode界面最左侧的Extensions图标(打开快捷键:ctrl+shift+X),搜索“C/C++”,点击进行安装。 确保已安装gcc. 一般ubuntu系统会预装gcc.在终端窗口中输入如下命令

休的博客 6242

VSCode 运行和调试代码

本文详细介绍了在VSCode中运行和调试代码的方法,特别针对Linux用户。主要内容包括:安装运行环境(Python、Node.js、C/C++)和扩展插件;三种运行代码的方式(终端、Code Runner扩展、任务配置);调试设置(配置launch.json、断点使用、查看变量);常见问题解决方案(运行失败、乱码等)以及实用技巧(条件断点、调试控制台)。文章以Python为例,提供了从准备到具体操作的完整流程,适合初学者快速掌握VSCode的调试功能。

m0_57545130的博客 3452

ARM架构下Horizon Client安装全攻略:从依赖检查到环境变量配置

本文详细介绍了在ARM架构设备上安装VMware Horizon Client的全过程,包括依赖检查、软件包获取、系统部署和环境变量配置。特别针对华为鲲鹏等ARM平台,提供了从基础准备到性能优化的完整指南,帮助用户高效完成虚拟桌面客户端的部署与调优。

github5actions的博客 556

python学习笔记(1) 如何在VSCode中配置Python

初学python之安装环境并在VSCode中运行1.安装VSCode2.安装python1.打开python官网,[官网下载](https://www.python.org/downloads/)(最好科学上网)2.选择一个python解释器3.测试3种运行方式4.调试大功告成! 早就听说了python的大名,作为一个软件工程的学生,居然到了大二寒假才开始学习,不过目前我也没打算深入,我觉得先学好...

weixin_44370666的博客 380

Altium Designer实战:手把手教你设计智能车竞赛疯狂电路组赛道(附封装库)

本文详细介绍了使用Altium Designer软件进行智能车竞赛“疯狂电路”组赛道设计的全流程实战指南。从理解比赛规则、搭建设计环境、创建专用元器件封装库,到电路布局、路径规划及设计输出验证,手把手教你高效完成符合计分标准的赛道图纸设计,并附上实用的封装库管理方法。

alice7model的博客 1322

【从零开始玩量化7】easyTrader: 自动化(程序化)交易利器

前面的文章,我们介绍了数据获取工具AKShare, 量化回测工具backtrader等,这一篇,介绍程序化交易工具easyTrader。作者网名食灯鬼,目前项目在Github上的star数已经有6.7k。这可能是目前,开源能找到的,最好用的程序化交易库了。本文介绍了easyTrader的简单用法,这个包还有很多功能,后续再继续写文章探究。

量化投资助手的博客 1万+

vscode运行代码的三种方式

在VSCode中运行代码主要有三种方式:1)使用内置终端直接输入运行命令(如python 文件名.py),适合快速测试代码片段;2)通过配置文件(launch.json/tasks.json)设置调试环境,支持断点调试和复杂构建流程,适合项目开发;3)安装CodeRunner等扩展实现一键运行(Ctrl+Alt+N),适合多语言快速测试。终端方式最直接,扩展最便捷,配置文件最适合工程化调试,开发者可根据需求选择。

2302_80141451的博客 541

二维otsu算法python_OpenCV-Python系列之OTSU算法

上一个教程中,我们谈到了关于图像二值化的两种方法,一种是固定阈值法,另一种是自适应阈值法,总的来说,自适应阈值法在某些方面要由于固定阈值法,但还没完,这次我们将隆重介绍我们的重量级选手,也就是OTSU算法(又称为大津算法和最大类间方差法)。最大类间方差法是1979年由日本学者大津提出的,是一种自适应阈值确定的方法,又叫大津法,简称OTSU,是一种基于全局的二值化算法,它是根据图像的灰度特性,将图像...

weixin_28834169的博客 1426

在VScode中逐步调试代码

文主之前一直不会调试VScode,今天下定决心一定要搞懂他。本文将列出文主目前会得的一点皮毛语言举例。欢迎也有此苦恼的同学与文主一起拨开迷雾见青云!

metabamboo的博客 2万+

从零构建:用Simulink搭建固定翼无人机六自由度模型的避坑指南

本文详细介绍了使用Simulink从零构建固定翼无人机六自由度动力学模型的完整流程和避坑指南。重点解析了模型架构设计、气动力计算、参数配置、仿真求解器选择等关键环节的常见问题与解决方案,帮助开发者快速建立准确可靠的无人机控制系统仿真模型。

hhh00的博客 999

PCB布局规范及其注意事项(纯干货)

这样做的好处是信号1,3层不会有串扰,4和5作为电源有紧密的耦合,3个信号层都有GND平面可以参考,且不会互相产生串扰,唯一的缺点是布线的层面只有3个信号层(信号03的是最适合来传输高速信号,因为该层的二面都有屏蔽,防止干扰传出,也防止干扰传入)33、影响阻抗匹配的参数(ER介电常数(1GHZ以下默认为4.2,以上的话问板厂),H介质厚度(就是内层压合的PP片厚度),W走线的线宽,T走线的厚度(铜厚/减小线的厚度可以增大阻抗))我这里使用的是CITS25来计算阻抗。

qq_42379138的博客 8846

如何使用VSCode调试大模型训练代码

在开发和调试大模型训练代码时,使用print语句进行调试往往效率低下且容易遗漏重要信息。本文将介绍三种使用VSCode进行交互式debug的方法,让你的调试过程更加高效和精确。

budahui的博客 2851

零基础教程:用Python给试卷照片自动切题(有道OCR+PIL完整流程)

本文为零基础用户提供了一套完整的Python自动化切题方案。通过调用有道OCR API识别试卷照片中的题目坐标,并利用PIL库进行精准裁剪,将杂乱的试卷图片自动分割为独立的题目图像。教程详细涵盖了环境搭建、图像预处理、API调用、坐标解析与批量处理全流程,帮助教育工作者和技术爱好者高效处理大量试卷,实现工作流程自动化。

grpc6streamer的博客 1174

Apollo详解之代码调试——在VSCODE中调试

前言 在学习了解Apollo各个代码模块时,不可避免地要对各个模块进行调试,由于Apollo运行在容器当中,代码结构较为复杂,使用GDB调试工具时间成本高,因此使用VSCODE的调试插件对Apollo各个模块进行调试,可提高调试效率,更加直观的了解代码运行流程。 该官方文档中提到了如何进行代码调试,但本人实际验证发现调试效率不高,因此萌发了使用VSCODE进行调试的想法。 准备工作 首先需要在VSCODE中下载插件Remote - Containers,该插件在VSCODE中可以使用户进入docker容器中

weixin_49024732的博客 6147

AHB总线协议

1. 简介         AHB总线规范是AMBA总线规范的一部分,AMBA总线规范是ARM公司提出的总线规范,被大多数SoC设计采用,它规定了AHB (Advanced High-performance Bus)、ASB (Advanced System Bus)、APB (Advanced Peripheral Bus)。AHB用于高性能、高时钟频率的系统结构,典型的应用如ARM核与系统内

ivy_reny的专栏 8万+

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

VSCode调试C++代码的多种方案

本文是对Linux系统中使用VSCode编译调试C++代码的系列文章的总结,给出了调试C++代码的本质逻辑和多种方案

hypc9709的博客 6933

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

如何在VSCode中调试PHP代码?

在 VSCode 中调试 PHP 代码主要依赖 XDebug 扩展和 PHP Debug 插件。首先,确保已安装 PHP 和 VSCode,并配置好基础插件。安装 XDebug 可通过自动或手动方式完成,并修改 php.ini 文件以启用 XDebug。验证 XDebug 是否成功加载后,在 VSCode 中安装 PHP Debug 插件并生成调试配置文件 launch.json,确保路径映射正确。启动调试后,设置断点并访问 PHP 页面以触发断点。常见问题包括断点不生效、端口冲突和调试慢,可通过检查路径映

深山技术宅的博客 1840

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

在VScode上调试C代码

在VSCODE上调试C代码 现在你不需要懂json配置也可以用VSCODE创建自己的C/C++工程了。 也预示着ARM交叉编译在VSCODE上可以简单完成了。 日常去除eclipse行动 万物皆可easy vscode 预备条件 要成功完成本教程,您必须执行以下步骤: 安装 Visual Studio Code。 安装 C/C++ extension for VS Code。 您也可以通过在扩展视图 (Ctrl+Shift+X) 中搜索“c++”来安装 C/C++ 扩展。 通过 MSY

idk500的博客 3599

vue调试三种方式

vue调试三种方式 debug是必备技巧 方式一:通过vue.js devtools 最常用,最方便,适合观察值的变化,不太适合理清代码执行流程 效果 使用 安装如下插件即可 方式二:在浏览器中展示源代码 这种方式还可以配合vue.js devtools一起使用 效果 使用 项目的添加如下内容即可 module.exports = { configureWebpack: { devtool: 'source-map' } } 然后就可以F12看到对应的vue文件了 参考

billycoder的专栏 9335

【笔记】用VSCode调试C++代码的方法

在Ubuntu中用不了Visual Studio, 又不习惯在终端中调试,那就用宇宙第一编辑器vscode来调试代码吧~ 1、必要的插件 安装插件:C/C++,其作用是提供对接gdb的接口【参考文献1】 2、生成可调试GDB文件 任务描述:利用CMakeLists.txt设置生成支持调试的.gdb文件,进而可以对代码进行调试【参考文献2】 2.1 在CMakeLists.txt中设置gdb指令 # 生成可调试执行文件 SET(CMAKE_BUILD_TYPE "Debug") SET(CMAKE_CX.

qq_42751676的博客 1万+

使用 VSCode 进行安卓开发的三种主要方式

本文介绍了使用VSCode进行安卓开发的四种主要方法:1) Flutter开发(官方推荐),包括环境搭建、插件安装和项目创建;2) React Native开发,涵盖环境配置、插件选择和调试设置;3) 原生安卓开发(Java/Kotlin),详细说明环境变量配置和项目创建方式;4) Ionic/Capacitor开发,简要说明其搭建流程。每种方法都提供了具体的命令行操作和VSCode插件推荐,并包含调试配置示例,帮助开发者快速上手安卓应用开发。

深山技术宅的博客 3544
上一篇: 源码解读一:omit.js
下一篇: TypeScript学习
Hoki802
博客等级 码龄7年 433粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hoki802

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值