程序调试

使用vscode对c进行调试

血红的双手。 提交于 2020-02-11 01:04:28
最近在学习C语言。知道vscode支持对c语言的代码的调试,就想试试。然后找了教程: https://code.visualstudio.com/docs/languages/cpp http://www.2cto.com/kf/201606/516207.html 照着做都没成功。打了断点却无法命中。 然后想到很有可能是因为gcc编译代码的问题,导致无法命中断点,gdb调试程序或许有什么独特的命令。于是上网搜索关于gdb的资料。很容易就找到这篇: http://blog.csdn.net/liigo/article/details/582231/ 解决我问题的文章的前半部分, 我意识到,要进行调试很有可能需要使用-g参数,就和C#里面debug的代码才能调试,release的不能调试一个道理。最后成功达成通过vscode调试c语言代码的目的。下面是我的配置和源代码: 最后的效果: 来源: https://www.cnblogs.com/a14907/p/6180244.html

[转]新手必会,pycharm的调试功能(史上最详篇)

耗尽温柔 提交于 2020-02-10 22:18:10
新手必会,pycharm的调试功能(史上最详篇) 前言 Debug调试,是一项学习编程人员的重要技能。只有当你学会 debug 了以后,才可以正确的知道程序的走向流程是如何的,今天就来给大家介绍一下 pycharm 中的 debug 功能! 详细说明链接 来源: CSDN 作者: zyc53 链接: https://blog.csdn.net/weixin_44943394/article/details/104253281

Android Studio代码调试大全

白昼怎懂夜的黑 提交于 2020-02-10 04:12:25
http://blog.csdn.net/dd864140130/article/details/51560664 Android Studio目前已经成为开发android的主要工具,用熟了可谓相当顺手。作为开发者,调试并发现bug,进而解决,可是我们的看家本领。正所谓,工欲善其事必先利其器,和其他开发工具一样,如Eclipse、Idea,Android Studio也为我们提供了强大的调试技巧,今天我们就来看看Android Studio中有关调试的技巧。 首先,来看看Android studio中为我们提供的调试面板(标准情况下): 这里写图片描述 点击右上角Restore ‘Threads’View可先展示目前相关的线程信息: 这里写图片描述 android studio大体为我们提供了7个功能区: 单步调试区 断点管理区 求值表达式 线程帧栈区 对象变量区 变量观察区 下面我们分别对这七个区域进行介绍。 单步调试区 该区提供了调试的主要操作,和你所熟知的一样的,主要有:Step over、step into、force step into、step out、drop frame。 Show Execution Point这里写图片描述 点击该按钮,光标将定位到当前正在调试的位置. Step Over这里写图片描述 单步跳过,点击该按钮将导致程序向下执行一行

C++ 的编译、运行和链接

隐身守侯 提交于 2020-02-08 14:37:30
C++ 的预备知识 涉及的内容 C++ 作为编译型语言 C/C++ 的编译器 制作和调用库 利用 GDB 进行调式 总结 涉及的内容 此系列会在开头说明本篇博客涉及的内容,以方式各位使用,如下: 简要介绍编译型语言和解释型语言 C/C++ 的编译器 gcc/g++ 的用法 使用 gcc/g++ 制作静态库和动态库 使用 gdb 进行调试 C++ 作为编译型语言 计算机上可以运行的只有机器指令(由 01 组成),其他任何语言编写的程序(包括汇编)都要翻译成对应的机器指令才能运行,C++ 属于编译型语言。 编译语言有很多,常见的高级语言都是编译语言,如 Java、C\C++、C# 等,特点是运行前要经过一系列的处理,通常将这一过程称为 “编译” ,编译成功后会生成对应的二进制文件,也就是可执行文件(您的程序)。 与之对应的解释型语言有: Python、JavaScript、HTML 等,特点是运行时在进行 “解释” ,即每执行到一条语言就进行解释成对应的机器指令。 大家知道的编译语言速度快,快的地方其实在于“一次编译,多次运行”,而解释型语言则是每次运行时都要进行 “解释” 所以才慢了些。 但是实际开发过程解释型语言较编译型语言快得多喔, 原因也是因为编译型语言运行前要进行编译,当工程较大时,编译可以耗费大量时间,不适合调试,另外学习编译语言的成本和难度较解释型要大。 编译语言的运行

NS的调试

允我心安 提交于 2020-02-08 05:00:41
NS的调试 (piyajee) 接触NS快一年了,但是还只能说是刚刚入了门,这一年里,从百思上确实学到了很多东西,NS的使用可能要告一段落了,有些心得体会跟大家分享一下,希望对还在入门的初学者有些帮助。主要是调试方面的,因为NS的代码太庞大了,因此出错后错误定位是非常重要的,有些可能不太对,还望各位高手指正。 1.1 使用GDB调试 在默认情况下不支持GDB调试,需要修改makefile.in:加上-g3选项 .cc.o: @rm -f $@ $(CPP) -g3 -c $(CFLAGS) $(INCLUDES) -o $@ $*.cc .c.o: @rm -f $@ $(CC) -g3 -c $(CFLAGS) $(INCLUDES) -o $@ $*.c 调试步骤: 1. 转到ns-2.29目录下,cd ns-2.29-allinone/ns-2.29 2. gdb ns 3. 设置断点:b filename.cc:123 4. r /root/xxx.tcl 常用调试命令: n: 单步不进入 s:单步进入 c:执行到下一断点 bt:查看堆栈调用 1.2 TCL调试 如果要支持TCL调试,在configure时加上—enable-debug选项,但是只要打开了enbale-debug选项,编译器检查更加严格,warning一般都会报错。 1.3 使用KDevelop调试NS

使用gdb调试

喜夏-厌秋 提交于 2020-02-08 04:18:28
  gdb 是 GNU 发布的一个强大的程序调试工具,也是 Linux 程序员不可或缺的一大利器。 本章我们将给出 gdb 常用的命令的操作说明。 -----------------启动 gdb ------------------ 使用 gdb 的前提: $ gcc -g hello.c -o hello (编译的时候不要忘了-g参数) 启动 gdb 调试: $ gdb hello 然后就可以进入命令行操作,和 Shell 一样 ,gdb 支持命令补全。输入几个字母,按 Tab 键, gdb 会补全命令。按两次 Tab ,会提示所有可能的命令。 另外,其还支持命令缩写,如, h 代表 help 。 ----------------常用命令如下 :--------------- 获取帮组命令 help gdb 将命令分为 12 个大类,使用命令: “ help 子类别”可以查看没类下面的详细帮助。 如: help breakpoints 设置断点 break 命令用于设置断点 , 命令接受行号或者函数名作为参数。 break 也可设置条件断点: 如: break syaHello if count<1 使用 info break 可以查看断点 使用 clear 可以清除断点 运行程序和单步执行 设置完断点后,就可以运行调试程序了,使用 run 命令(缩写为 r) 运行程序至断点。

NS2的GDB调试

 ̄綄美尐妖づ 提交于 2020-02-08 03:36:15
本文所用的NS2版本为2.34,运行在ubuntu10.10环境下,该平台中已经包含了gcc/gdb等工具,这些工具可以用apt-get命令安装,很简单。 一、在NS2中启用GDB调试工具 1. 修改makefile.in:加上-g3选项 .cc.o: @rm -f $@ $(CPP) -g3 -c $(CFLAGS) $(INCLUDES) -o $@ $*.cc .c.o: @rm -f $@ $(CC) -g3 -c $(CFLAGS) $(INCLUDES) -o $@ $*.c 2. 修改Makefile(没有任何后缀的)文件,增加-g标记 CCOPT = -Wall -g -Wno-write-strings 3. 在ns-allinone-2.34/ns-2.34目录下重新编译 make clean touch common/packet.h make 4. 成功后开始进入调试: 转到ns-2.34目录下,cd ~/ns-allinone-2.34/ns-2.34/ gdb ns 然后通过cd命令进入到你的脚本所在的文件目录下,采用命令:r XXX.tcl来运行ns程序。当然这之前你可能需要设置断点。 二、GDB的使用   1常用的gdb命令:        b/break num:在num行设置断点(用于一个文件的程序调试)        b/break file

JS笔记之第二天

安稳与你 提交于 2020-02-07 21:59:01
一元运算符:++ -- 分为前++和后++ and 前--和后-- 如果++在后面,如:num++ +10参与运算,先参与运算,自身再加1 如果++在前面,如:++num+10参与运算,先自身加1,然后再参与运算 如果--在后面,如:num-- +10参与运算,先参与运算,自身再减1 如果--在前面,如:--num+10参与运算,先自身减1,然后再参与运算 例子: 代码是从上到下,一行一行执行的。 ++在后面: var num1=10; var sum1=num1++ +10; //sum1=num1++ +10=10+10=20 //num1++=10+1=11 console.log(sum1);//20 ++在前面 var num2=10; var sum2=++num2+10; //++num2=10+1=11 //sum2=++num2+10=11+10=21 console.log(sum2);//21 - -在后面 var num3=10; var sum3=num3-- +10; //sum3=num3-- +10=10+10=20; //num3--=10-1=9 console.log(sum3);//20 - -在前面 var num4=10; var sum4=--num4+10; //--num4=10-1=9 //sum4=--num4+10=9+10

IOS在真机调试无法全屏显示,模拟器正常

一个人想着一个人 提交于 2020-02-07 05:47:35
原文地址:: https://blog.csdn.net/ywy0ywy/article/details/42875817 相关文章 1、IOS 模拟器显示不全问题---- https://blog.csdn.net/shengdaVolleyball/article/details/54603232 开发环境:Xcode6, IOS SDK8.1 真机调试:iphone5s, ios7.0 遇到问题:在iphone模拟器上显示正常,而连接5s真机调试时,应用无法全屏显示,如下图: 打开项目目录中的images.xcassets文件,如下图,发现这里缺少了launchimage的图像配置 解决方案:打开项目配置-general-launch images 点击Launch Images Source这一项中的Use Asset Catalog 然后会跳出弹框,点击Migrate 这样就配置成功了! 再打开之前的image.xcassets文件,发现有了Launchimage这一项 接着在真机上运行程序 可以全屏显示了! 参考链接:http://blog.csdn.net/android_ls/article/details/39234963 来源: CSDN 作者: xqhrs232 链接: https://blog.csdn.net/xqhrs232/article

mips调试

一笑奈何 提交于 2020-02-07 00:22:39
0x01 环境搭建 由于我们通常的操作系统指令集都是x86的,所以无法跑MIPS程序。这时候就需要装QEMU来模拟,QEMU通过源码编译较为复杂,我们又没有特殊的需求,所以直接使用ubuntu的APT进行安装即可。 sudo apt install qemu 由于MIPS架构有两种——大端MIPS和小端MIPS。所以,我们需要确定这个程序是大端MIPS还是小端MIPS。 qemu-mips xxx #大端 qemu-mipsel xxx #小端 远程调试MIPS程序,所以要加上-g 端口参数,qemu-mipsel -g 1234 baby_mips,此时用IDA pro就可以通过Remote GDB Server来调试这个MIPS程序。 0x02 反编译 为了方便我们了解key比对函数的功能,我们可以需要对MIPS进行反编译,目前可以反编译MIPS程序的工具有两个。 Retdec JEB-mips Retdec有在线反编译网址,retdec.com,也可以通过python api接口使用,比较方便,需要注册获得YOUR-API-KEY,注意retdec-python包需要在python3环境下运行 py 3 -m pip install retdec-python python用法 from retdec.decompiler import