首页 > 编程知识 正文

devc怎么设置调试,dev如何进行逐步调试

时间:2023-05-05 09:46:32 阅读:109612 作者:1474

问题集锦:

1.dev的代码自动完成功能(vs的智能提示功能)的快捷键

2调试时二维字符数组的情况

图很奇怪:

3 .这篇博文可以在以后出现问题后作为参考。 其主要变更是程序的标签

3359 blog.csdn.net/coding _ my _ future/article/details/8766782

4 .关于CCF的devc环境,CCF的环境在我的收藏中,但是不能调试。 可能是因为我的电脑里安装了dev。

1 .以前设置了dev调试记录。 以前设置后,不知道哪里不合适,但在调试中看到的变量总是与实际数据不同,有两个不同。 因为这次终于对了,所以把设定拍成了截图。 仅供参考。 的概要是生成调试信息,并将其设置为使用64位调试。 在连接器命令行中添加以下命令:

-静态库

我花了很长时间摸索应该如何正确使用dev调试,但最终的结论是,与其使用dev调试器,不如自己检查代码。

理由是,首先很多dev不能调试。 即使按照网络上的许多说明,或者按照我的说明填写-g3并输出调试信息等,也无法调试该dev。 毕竟,我找到了办法。 那是因为将dev的兼容性修改为winXp,我的电脑是windows7,然后可以调试。 但别高兴得太早。 dev调试非常鸡肋,只能显示单个变量。 显示vector或string对象时,调试会堵塞。 在这个ide中查看多维数组,甚至是二维数组非常麻烦,非常困难。 如果说可以使用gdb命令,那就错了。 尝试在该窗口中输入gdb命令会出错。 即使可以,输入gdb命令也很困难吧。 最终,我决定放弃这个ide,但是在上次的pat考试中发生了错误,没有敲using namespace std; 虽然造成了重大的错误,但这个dev真的是无可救药。

另一个奇怪的现象是用我用的freopen打开文件,用getline阅读文件。 第一次调试正常,但之后的几次调试都不能正常读取数据,输入cmd也没用,不知道发生了什么。 这个ide被那家公司放弃了真的是有理由的,很难使用,很不稳定。 如果不熟悉代码,请不要真正使用此ide,因为它需要调试。 否则,这个ide会惹你生气的。

但是,还得多用dev。 毕竟每个考场都不可能有vs,所以写了以下内容作为参考。

2.dev新拯救1 .调用函数定义:在参数位置单击(这样做的好处是函数定义弹出不会立即消失),等括号变成红色后,会自动弹出函数定义。 如图所示:

2最简单的调试设置。

上述调试的设定真的有点复杂,记不住。 我现在重写了简单的设定。 然后,进行了实际验证。 现作简要概括如下。

dev调试设置实际上是为每个编译器设置的。 请参照图。 dev包括64位编译器、调试选项、配置文件等。 每个编译器都有一个编译器设置。 很多人之所以不能根据网上的设置编译,是因为这里没有做出正确的选择。

然后,为名为64位版本的编译器设置编译器设置。 (我的下一次测试表明,在这里选择名为64位调试的编译器可以进行相同的编译器设置,可以进行相同的调试,效果更好。)

1 .将调试信息更改为生成调试信息。 如图所示

具体路径如下。

编译工具选项代码优化连接器

2 .在编译器标签中添加-g选项,并向上或向下添加。

图:

3 .其他可选基础知识:

其他选项选择no或选择空。 请特别注意选择空选项。 当sfdhy单击下拉框时,第一个选项为空。 此时,可以选择天空。 在这里选择GNUc就可以了。 因为这里没有c 99这个选择。 我认为选择GNUC是c 99标准。

4 .请注意程序这个标签。 您不需要更改此标签下的选项,但如果进行了更改,则可以如下图所示进行更改。

在dev调试中呈现unknown signal

解决方法:关闭调试,然后重新编译并重新调试

6 dev调试会通知计算机缺少zlib1.dll

这样的错误一般不能在考场上解决。

7 dev调试多维数组

dev表示的二维排列s,dev用逗号分割一维的数据。 也许是因为没有初始化数组s,s的数值有奇怪的任意值。

Dev调试时多维数组的显示相反。 (这个词是什么意思) )开头经常会有零,之后零被重复了几次等等。

8 dev调试vector

1例如,假设有一个长度为3的向量v。 如果要查看v[0]的值,请在附加视图中写入(v[0] )。

2如果想看整个数组的值,可以写[v[0]]@3

3 @后的数字表示想看的长度。 这里矢量的长度是3,所以写3的话可以看到所有的值~

4调试器可能不知道指针类型,并且无法显示指针指向的变量值。 在这种情况下,必须手动输入指针类型。 按F4键,然后以*(type* ) pointer格式输入。 例如,*(int* ) poin

ter。
9 dev调试指针类型
1 有时,调试器(Debugger)可能不知道某个指针的类型,从而不能显示该指针指向的变量的值。 此时,我们需要手动输入该指针的类型。按 F4 后,以 *(type *)pointer 形式输入。例如, *(int *)pointer。
9 代码补全功能的替代方案
只要能记住某个库函数在那个头文件中,然后就可以去这个头文件中去找。

3 CCF dev环境在自己电脑上的安装和编译器配置。

一 安装
安装过程比较熟练了,我就不说了,这个软件是绿色软件,在首次打开的时候,还提示我是否需要缓存头文件,应该选择不需要缓存任何头文件,即第三个选项。不缓存实际上不影响任何东西,只是如果需要代码补全功能就需要缓存头文件了。不过代码补全功能可能没有啥用处。
二 编译器配置
这个dev是绿色文件,可以编译,但是却不能够调试程序。报错提示系统找不到该文件,显示的是dev的存放路径和系统的path变量。
解决办法:这种问题一般都是由于编译配置不正确造成的,解决办法:先删除原来的编译配置,然后添加自动编译配置。如图所示:

第一个按钮是添加自动编译配置(这个按钮的自动配置功能能够自己找到gdb gcc所在目录,然后完成配置,十分强大,比自己手动去找路径,然后配置要强大很多),第三个按钮是删除原来的编译配置。CCF提供的问题解决文档也建议出现配置问题首先删除原来配置,然后添加自动编译配置。如图:

所以可以说出现的很多编译或者调试上的问题都可以用这个办法解决。
三 其他问题
没想到设置好编译器后又出现了一系列奇奇怪怪的问题。
1 设置断点后调试时无法停在断点处。
如果设置好编译配置和打好断点后,调试时却无法停留在断点处。解决办法是重新启动dev,然后再试。不行就再配置一次编译器,然后再重启,应该就能好了。
2 设置断点后调试时只能停留在部分断点处,并且不能逐步调试。
这个问题真的是太怪了,没办法啊 dev就是这么怪异。我调试的是如下代码,没想到dev只在while处停留一下,然后点下一步,就跳到程序结尾了。

解决方法:我原本分析是编译没能覆盖原来的编译好的.exe文件,所以我删除了编译好的.exe文件,然后重新编译,调试,还是不行。我又尝试了另外一个办法:新建一个文件,然后把代码拷贝上去,然后改while中的scanf为1,然后调试时会报错,然后我又改了回来,然后打好断点,重新编译调试。这个办法起作用了,然后奇怪的是原来的代码居然也可以正常调试了,真是奇怪的dev啊,我都受不了了。我都搞不清楚到底是我把while中的scanf改成1起作用了,还是新建了一个文件,然后重新编译起作用了。我很迷??????
然后我打开另外一个也有这种问题的绿色版dev ,测试了下,还是新建一个文件,然后重新编译,打断点,调试更能起作用。
这种奇怪的现象有可能也是由于没有适当的初始化化变量造成,或者程序的scanf printf处的格式,freopen处的文件名字不合适等等。freopen处的文件名字中最好不要含特殊符号吧,就用英文名字就行了。
3 代码格式化
1. 很多考场的dev上没有安装代码格式化插件,如果安装了,那这个格式化按钮要么在最上面那行,叫做Astyle 或者类似的名字。如图

或者在工具里最下面那个选项。
快捷键一般为ctrl + shift + a
2 如果考场上的dev没有安装代码格式化插件,那么只能靠一些技巧了。如下:
1. 使用dev的插入代码段功能时(这时的插入和粘贴实际上差不多)先把光标停留在要插入行的绝对行首,不要在插入之前将光标停留在代码格式化后的位置。 然后将插入的代码块选中,然后使用tab键 调整这段代码块的整体位置。
2. 使用复制再粘贴功能时,再选中要复制的代码块时一定要注意,就是要将光标从要复制的代码块的首行的绝对行首开始移动而不是相对行首,如图
正确的方式
错误的方式
复制完成后然后进行粘贴,粘贴的注意事项和操作和上面第一点插入时一样的

4 . 调整语言和字体
语言的调整在工具中的环境选项,而字体的调整在工具中的编辑器选项中。

5 快速换行快捷键
实际上这个也算不上个快捷键,只是快速连续按下连个键,先用中指按下end 再用二拇指按下enter 。不过由于考场上是键盘,这两个键的距离实际上还挺远的。
6 删除空行,
如果只有一行空行,在dev中没有shift+delete这个快捷键,只能先把光标移动到绝对行首,然后按下backspace,而不是delete 。这样才能保证原来的代码格式不变形。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。