程序调试

雄迈视频板使用调试串口作为普通串口通信

匿名 (未验证) 提交于 2019-12-03 00:09:02
将调试串口改为普通串口 某此场合,因串口不足,需要用调串口进行数据通信。为了实现这个功能,办法为: 把别的串设为控制台模式,物理调试串口腾出来变为了普通的串口,代码如下: # include <sys/ioctl.h> # include <sys/stat.h> # include <sys/types.h> # include <fcntl.h> # include <termios.h> # include <errno.h> //将指定的串口改为控制台模式,则其它串口变为普通串口 int fd ; fd = open ( "/dev/tty1" , O_RDONLY ) ; if ( fd >= 0 ) { ioctl ( fd , TIOCCONS ) ; close ( fd ) ; } 临时关闭内核信息输出: echo 0 > /proc/sys/kernel/printk ; 重新打开内核信息输出: echo 7 > /proc/sys/kernel/printk 。 这样,要用串口设备的时候,就先临时关闭,然后开关切换,搞完之后再切回来,最后打开输出。 雄迈视频板使用调试串口作为普通串口通信 本文档记录的是,使用雄迈Hi3516CV200芯片,雄迈IPC。雄迈提供了localSDK,这个是用来写程序放到视频板里运行的。雄迈会提供打包工具

调试windows服务

匿名 (未验证) 提交于 2019-12-03 00:08:02
调试服务 在调试配置中生成你的服务。 安装你的服务。 从 “服务控制管理器”、“服务器资源管理器”或代码启动服务。 使用管理凭据启动 Visual Studio,那么你就能附加到系统进程。 (可选)在 Visual Studio 菜单栏上,选择“工具”、“选项” 。 在“选项”对话框中,选择“调试”、“符号”,选择“Microsoft 符号服务器”复选框,然后选择“确定”按钮 。 在菜单栏上,从“调试” 或“工具” 菜单选择“附加到进程” 。 (键盘:Ctrl+Alt+P) 这将显示“进程” 对话框。 选择“显示所有用户的进程”复选框 。 在“可用进程” 部分,为服务选择进程,然后选择“附加” 。 提示 该进程的名称将与你的服务的可执行文件相同。 出现 “附加到进程” 对话框。 选择相应的选项,然后选择“确定” 以关闭对话框。 备注 你现在处于调试模式。 设置任意你想要在代码中使用的断点。 访问服务控制管理器并操作你的服务,发送停止、暂停和继续命令以命中你的断点。 有关运行服务控制管理器的详细信息,请参阅 如何:启动服务 。 请参见 疑难解答:调试 Windows 服务 。 Windows 服务的调试提示 附加到服务的进程使你可调试该服务的大多数代码,但不是全部。 例如,由于服务已经启动,你无法调试服务的 OnStart 方法中的代码或 Main 方法中用于在此处加载服务的代码。

VSCode代码编译启动调试

匿名 (未验证) 提交于 2019-12-02 23:59:01
编译运行 fork vscode的源代码,并clone到本地, checkout到master分支 执行 yarn install 安装依赖,具体node环境查看官方文档 执行 yarn watch 编译代码并且执行实时监控修改进行增量编译 执行 ./script/code.sh 启动electron程序 1. yarn watch 分析 利用gulp watch监控目录变化,实时编译最新的代码 gulp watch -- max_old_space_size = 4095 gulp会自动读取执行目录下的 gulpfile.js 文件,并执行,下面分析 gulpfile.js gulpfile.js 定义了compile-client, watch-client, compile, watch,default五种任务,先看watch,也就是我们上面执行的命令 - default 可以看到,执行watch的时候并没有执行编译步骤,应该是在default中定义了执行watch前需要执行的流程。 // monacoTypecheckTask monaco编辑器编译 // compileClientTask 客户端基础代码编译 // compileExtensionsTask 客户端基础扩展插件代码编译 const compileTask = task . define (

断点调试

匿名 (未验证) 提交于 2019-12-02 23:57:01
一等公民:只要可以把一个东西赋值给一个变量,这个东西就叫一等公民 在想要加断电的地方用鼠标点一下,你会看到一个红圈 变红的地方,程序执行到,就会暂停 断电应该加载报错之前 绿色箭头表示快速跳到下一个断点执行 控制台报错:点击你能看懂的最后一行,光标会快速定位到错误代码,在错误代码上放,加断点调试 来源:博客园 作者: 黑糖A 链接:https://www.cnblogs.com/aden668/p/11448359.html

WinDbg的环境变量

匿名 (未验证) 提交于 2019-12-02 23:55:01
有很多的环境变量,主要分为常规环境变量和内核模式环境变量。下面分别列出。 常规环境变量 下表列出了可在用户模式和内核模式调试的环境变量。 变量 含义 _NT_DEBUGGER_EXTENSION_PATH = Path 指定调试器将先搜索扩展 Dll 的路径。 路径 可以包含驱动器号后, 接一个冒号 ( : )。 用分号分隔多个目录 ( ; )。 有关详细信息,请参阅 加载的调试器扩展 Dll 。 _NT_EXECUTABLE_IMAGE_PATH = Path 指定包含二进制可执行文件的路径。 路径 可以包含驱动器号后, 接一个冒号 ( : )。 用分号分隔多个目录 ( ; )。 _NT_SOURCE_PATH = Path 指定包含目标的源代码文件的路径。 路径 可以包含驱动器号后, 接一个冒号 ( : )。 用分号分隔多个目录 ( ; )。 有关详细信息,以及更改此路径的其他方法,请参阅 源路径 。 _NT_SYMBOL_PATH = Path 指定包含符号文件的目录树的根。 路径 可以包含驱动器号后, 接一个冒号 ( : )。 用分号分隔多个目录 ( ; )。 有关详细信息,以及更改此路径的其他方法,请参阅 符号路径 。 _NT_ALT_SYMBOL_PATH = Path 指定搜索之前 _NT_SYMBOL_PATH 替代符号路径。 这可用于保留符号文件的专用版本。 路径

Dr. Memory Quickstart Instructions in Chinese

匿名 (未验证) 提交于 2019-12-02 23:52:01
RPI CSCI1200 instructions . 程序内存调试 程序内存错误有很多种,比如内存访问错误(segmentation fault),读取未初始化的数据,数组越界读/写,内存泄漏等等。这些内存错误通常很难通过传统的程序调试器追查出真正原因。内存错误有时不会导致程序立即崩溃。有些有内存错误的程序甚至可能在一些机器上或数据集上正常工作。这些使得追查内存错误更加困难。 Dr. Memory Dr. Memory可在Linux,Windows,MacOSX,和Android操作系统上使用。如有问题,错误报告和讨论,请使用Dr. Memory用户邮件群:http://groups.google.com/group/drmemory-users 报告有关使用Dr. Memory的问题。报告中务必写明操作系统和Dr. Memory版本号等详细信息。 Dr. Memory在Linux或Mac OSX 从https://github.com/DynamoRIO/drmemory/wiki/Downloads下载对应操作系统的Dr. Memory压缩(tar.gz)文件。 保存并解压包到您选择的目录。比如使用命令: tar -xvzf DrMemory-YourOperatingSystem-VersionXX.tar.gz 从现在起,我们假设DrMemory存在在目录 ~

关于MinGW64的调试

匿名 (未验证) 提交于 2019-12-02 23:49:02
学习的机房电脑能老了,都是xp系统。安装DEV C++后发现为MinGW64。 而我常用编译调试命令为: g++ -g *.cpp -o a gdb a 编译出的程序无法调试。 一直以为,根本就无法调试,但是最近发现把上面的命令稍稍改一下就可以调试。 g++ -g *.cpp -o a -m32 gdb32 a

用 dnSpy 反编译调试 .NET 程序

匿名 (未验证) 提交于 2019-12-02 23:48:02
dnSpy 官网下载: https://github.com/0xd4d/dnSpy/releases https://dotnet.microsoft.com/download/visual-studio-sdks 具体操作步骤如下所示: 1.添加系统环境变量,COMPLUS_ZapDisable = 1 2.如果需要调试IIS进程,可进入C:\Windows\System32\inetsrv目录执行appcmd list wp 查看对应的应用程序池进程ID 3.打开dnspy,调试-->附加到进程-->选择相应的进程ID-->附加 4.调试-->窗口-->模块-->搜索要调试的程序集-->双击 5.在程序集资源管理器找到要调试的类打开,打断点即可 6.右键要修改的类文件-->编辑类/方法-->修改类-->编译 7.文件-->保存模块-->选择要保存的路径-->保存 8.将保存的重新编译的程序集替换到目标路径即可 9.执行iisreset(若为IIS应用) cmd 命令 # 设置系统环境变量 setx /M COMPLUS_ZapDisable 1 获取 IIS 应用程序池进程 ID 附加到进程并打断点 修改代码,重新编译并保存模块 关于异常捕捉中断 调试过程中出现的异常,dnSpy默认不会自动中断的,需要自行设置异常中断条件。比如:要捕捉

汇编程序 - TD调试

匿名 (未验证) 提交于 2019-12-02 23:48:02
写在前面的话: 1. TD面板下的调试十分重要。可以观察内存(GOTO DS:XXXX)存放的位置与数值,是否正确。 2. 通过寄存器面板查看取出的值是否正确,单步调试(F8)查看程序的运行流程是否和想法相同。 3. 通过步入(F7)查看调用子程序内部是否按照正常逻辑执行。 4. 通过标志位寄存器查看进位借位标志和程序跳转的状态等。 我的TD是老师给的,你们,额,我相信你们能找到,找不到再说吧 ^3^ 说明一下,寄存器里面表示数据的时候,尤其是内存中,可能和你思路不一样,自己调试一下就知道了,多说无益。 重点来了!!! 1. 将你调试的代码放在TD路径下 2. win + R --> cmd ,然后cd 啥的进入TD的目录(建议所有目录英文,毕竟是人家外国佬的东西) 3. 就调试mul.asm 这个程序吧!(汇编程序 - 1 (32位无符号乘法))   3.1 汇编,链接        3.2 td mul        3.3 F5,窗口填充(就是大点,上面灰色图层填满了而已)     F8 单步调试     F7 步入调试(在CALL指令调用子程序使用)   3.4 只有最后一个需要讲的了,查看内存区的数据,一般我们使用DS寄存器存放数据的内存地址,但是你会发现TD会跑到ES去了,没关系。          在代码区右键,goto...,DS:XXXX (由上图可知

Keil使用Debug调试模式时出现的几种错误总结

匿名 (未验证) 提交于 2019-12-02 23:47:01
调试器:j_link 1.在使用j-link下载程序时,target options中的debug选项中选择了j-link选项后,出现了J-LINK the connected emulator is a j-link clone问题,然后keil软件自行关闭。 解决方式:用SEGGER安装目录下的JLinkARM.dll替换掉MDK安装目录下的./ARM/Segger/JLinkARM.dll就可以了 2.出现了TCK (pin 9) low, but should be high. Please check target。。。的错误 解决方式:首先先检查原理图中是不是接错线了(就我而言,错的实在是太离谱,电源和地接反,而且BOOT0引脚完全没有接地),当我将这些个问题解决掉了之后,设置target options->Debug->右上角Use->Setting->Debug->Port选择SW选项。 3.在解决第二个问题之后,出现了未发现CPU的错误。 解决方式:这个问题的解决方式是在target options中的Utilities选项中点击Settings在Programming Algorithm选择框内添加芯片的类型(就我而言是STM32F10x 128K的)就行。 4.在debug模式下进行调试时,发现程序没有从main函数进行运行,而是一直在汇编代码BKPT那里停下