程序调试

本地idea调试spark2.x程序

ぐ巨炮叔叔 提交于 2020-01-29 04:01:02
1.构建使用idea 构建maven 项目 选择org.scala-tools.archetypes:scala-archetype-simple,然后一直点next,maven最好选中本地配置国内源的而不适用idea自生的。 工程创建好后,点击Event Log 修改pox.xml文件(设置scala的版本默认创建为2.7.0的) Error:scalac: error while loading JUnit4, Scala signature JUnit4 has wrong version expected: 5.0 found: 4.1 in JUnit4.class 上述问题解决方法 1.治标不治本 直接注释test目录下报错的代码即可 2.根治方法(试了下但没成功) 点击file->Settings->Plugins 搜索junit,按下图安装好后重启idea即可 2.添加spark程序所依赖的jar包 (修改pom.xm用maven添加的不知道为什么不能运行) 点击file->Project Setting->Libaries添加jar包 jar包来源:spark官网下载下载编译过的安装包(如下图类型的) 把安装包中的jars目录中的jar全部添加到工程中(可根据自己需求添加) 添加完后编写spark应用程序设置为本地模式便可以在idea上直接运行调试 来源:

初探Windows用户态调试机制

倾然丶 夕夏残阳落幕 提交于 2020-01-28 03:56:35
我们在感叹Onlydbg强大与便利的同时,是否考虑过它实现的原理呢? 作为一个技术人员知其然必知其所以然,这才是我们追求的本心。 最近在学习张银奎老师的《软件调试》,获益良多。熟悉Windows调试机制,对我们深入理解操作系统以及游戏保护的原理有着莫大好处。 0X01 初探调试原理 调试系统的实现思路如图所示: 调试器与被调试程序建立联系,程序像调试器发送调试信息,调试器暂停程序处理完调试信息后再恢复程序运行,如此周而复始。 下面我们看看如何用操作系统提供的API去实现一个简单的调试器。 //启动要调试的进程或挂接调试器到已运行的进程上 CreateProcess(..., DEBUG_PROCESS, ...) or DebugActiveProcess(dwProcessId) DEBUG_EVENT de; BOOL bContinue = TRUE; DWORD dwContinueStatus; while(bContinue) { bContinue = WaitForDebugEvent(&de, INFINITE); switch(de.dwDebugEventCode) { ... default: { dwContinueStatus = DBG_CONTINUE; break; } } ContinueDebugEvent(de.dwProcessId, de

【异常处理_iis】无法启动IIS Express\\iisexpress.exe

依然范特西╮ 提交于 2020-01-27 22:07:22
正调试着程序,突然不能调试了。重启了也没用,还是报错:无法启动程序 C:\Program Files(X86)\IIS Express\iisexpress.exe. 和之前无法启动IIS Express又不同,这Asp.Net 开发服务器却已经启动了。 点开,能够浏览页面,不能调试, 附加到线程却可以调试,但每次都需要重新附加,比较麻烦,不是解决办法。 最后发现ProgramFiles (x86)/IIS Express 下面却是没有这个iisexpress.exe,ProgramFiles/IIS Express 下面是有的。 干脆卸载了,再重装了一个iis 8Express ok了。估计是某种原因损坏了。 开始装WebMatrixWeb.exe,总是不能完全成功。 下载了一个iisexpress8.0,才ok。 iisexpress8.0_33lc.com 点击下载 来源: https://www.cnblogs.com/stoneniqiu/p/3969372.html

keil仿真

喜你入骨 提交于 2020-01-26 15:45:15
先配置时钟频率,与代码中的一致 再配置debug调试文件 其中parameter 要与上图中的STMicroelectronics名字一致。Dialog.DLL不能写错 再点击调试,无误则成功。在运行过程中可以查看外设寄存器的情况 也可以查看更多资源 第一个是command windows 命令控制台,可以看到程序是否有误 第二个是disassembly 反汇编,显示对应的汇编语言 第四个是寄存器窗口 第六个是查看任意变量的窗口 第七个是查看内存的窗口 第八个是串口查看窗口 第九个是分析仪器如逻辑分析仪 第十个是每一个外设的寄存器 来源: CSDN 作者: 零点xu 链接: https://blog.csdn.net/qq_38348811/article/details/100567525

编译器问题总汇

大憨熊 提交于 2020-01-26 06:42:19
文章目录 编译器问题总汇 vs2019 不能用scanf vs2010 配置方法 调试状态下没有memory窗口 dev-cpp 运行闪退 c99标准设定(-std) 显示所有警告(-wall) 产生调试信息(-g3) 编译器问题总汇 vs2019 不能用scanf 使用VS会出现’scanf’: This function or variable may be unsafe. Consider using scanf_sins这种错误,这是新版vc库添加的警告因为微软认为scanf的使用存在安全隐患,因为C/C++中的字符串处理都是以\0为截止符的,如果搜索不到\0,容易出现字符串越界所有vc扩展的所谓安全标准库,都添加了一个参数用以指定字符串参数的长度,用以避免这种安全隐患。 解决方法:打开“项目”下的“ConsoleApplication1属性” 页面 点击 配置属性 —> c/c++ —> 预处理器 在预处理器定义那里添加一行 _CRT_SECURE_NO_DEPRECATE 即可 vs2010 配置方法 调试状态下没有memory窗口 dev-cpp 运行闪退 代码示例 # include <stdio.h> int main ( ) { printf ( "hello world" ) ; } 改动 # include <stdio.h> int main ( ) {

嵌入式调试经验分享

陌路散爱 提交于 2020-01-25 22:05:37
syscall(SYS_gettid)/getpid() 获取当前线程/进程号 strace -tt -T -p tid/pid 获取当前线程/进程运行的系统调用 得到的结果可能为: ioctl(237, xxx, xxx) 或 futex(0x11f4374, xxx, xxx) 通过系统调用中第一个参数,可以知道锁的地址或者ioctl的fd等 typedef union { struct __pthread_mutex_s { int __lock; unsigned int __count; int __owner; #if __WORDSIZE == 64 unsigned int __nusers; #endif /* KIND must stay at this position in the structure to maintain binary compatibility. */ int __kind; #if __WORDSIZE == 64 int __spins; __pthread_list_t __list; # define __PTHREAD_MUTEX_HAVE_PREV 1 #else unsigned int __nusers; __extension__ union { int __spins; __pthread_slist_t _

CTF必备技能丨Linux Pwn入门教程——环境配置

只谈情不闲聊 提交于 2020-01-25 08:38:37
说在前面 这是一套Linux Pwn入门教程系列,作者依据Atum师傅在i春秋上的Pwn入门课程中的技术分类,并结合近几年赛事中出现的一些题目和文章整理出一份相对完整的Linux Pwn教程。 问:为什么要花费精力去整理这套系统的Linux Pwn教程? 答:网上关于Pwn的资料比较零散;经常会碰到解题过程略的Writeup和没有注释;存在大量硬编码偏移的脚本;练习题目难找;调试环境难搭建;GDB没有IDA好操作等等问题。 问:这个Linux Pwn教程适合新手学习吗? 答:本套课程非常适合萌新们进行入门学习,内容通俗易懂,化繁为简,同时结合历年赛题,实操性强,对于快速提升技能可起到很大的帮助。 问:关于Linux Pwn教程是否有视频讲解? 答:在i春秋官网的课程库中有很多关于Pwn的视频课程,立即去学习!https://www.ichunqiu.com/courses/pwn?from=weixin 本系列教程仅针对i386/amd64下的Linux Pwn常见的Pwn手法,如栈,堆,整数溢出,格式化字符串,条件竞争等进行介绍,所有环境都会封装在Docker镜像当中,并提供调试用的教学程序,来自历年赛事的原题和带有注释的python脚本。 教程中的题目和脚本若有使用不妥之处,欢迎各位大佬批评指正。 今天是Linux Pwn入门教程第一章:环境配置,阅读用时约7分钟。 一

GCC编译选项

老子叫甜甜 提交于 2020-01-25 08:19:36
转载自http://www.cnblogs.com/xmphoenix/archive/2011/03/21/1989944.html gcc 提供了大量的警告选项,对代码中可能存在的问题提出警 告,通常可以使用 -Wall 来开启以下警告: -Waddress -Warray-bounds (only with -O2) -Wc++0x-compat -Wchar-subscripts -Wimplicit-int -Wimplicit-function-declaration -Wcomment -Wformat -Wmain (only for C/ObjC and unless -ffreestanding) -Wmissing-braces -Wnonnull -Wparentheses -Wpointer-sign -Wreorder -Wreturn-type -Wsequence-point -Wsign-compare (only in C++) -Wstrict-aliasing -Wstrict-overflow=1 -Wswitch -Wtrigraphs -Wuninitialized (only with -O1 and above) -Wunknown-pragmas -Wunused-function -Wunused-label -Wunused

gcc 编译选项

假装没事ソ 提交于 2020-01-25 08:19:14
gcc 提供了大量的警告选项,对代码中可能存在的问题提出警 告,通常可以使用-Wall来开启以下警告: -Waddress -Warray-bounds (only with -O2) -Wc++0x-compat -Wchar-subscripts -Wimplicit-int -Wimplicit-function-declaration -Wcomment -Wformat -Wmain (only for C/ObjC and unless -ffreestanding) -Wmissing-braces -Wnonnull -Wparentheses -Wpointer-sign -Wreorder -Wreturn-type -Wsequence-point -Wsign-compare (only in C++) -Wstrict-aliasing -Wstrict-overflow=1 -Wswitch -Wtrigraphs -Wuninitialized (only with -O1 and above) -Wunknown-pragmas -Wunused-function -Wunused-label -Wunused-value -Wunused-variable unused-function:警告声明但是没有定义的static函数; unused-

Linux应用开发入门(转)

风格不统一 提交于 2020-01-25 08:01:54
今天偶然看到这篇文章,做个入门了解还是不错的。 前 一阵子在QQ上和朋友聊天的时候,总会看到有人说Linux上的应用程序开发是高手才可以完成的,而且这种“迷信”在目前似乎还很普遍。然而,情况并不是这样的,从程序库的支持方面,Linux平台为用户级应用程序的开发提供了很多功能强大且丰富的程序库,而且它们大部分是跨平台的(Boost、OpenGL、STL、Qt、Java等)和基于POSIX标准的(glibc等),同时Linux内核还为驱动程序的开发提供了功能完备的内核接口,从开发工具方面,Linux提供了功能强大的编译器GCC和调试器GDB,借助它们的帮助,我们可以很轻松的在Linu x上开发出可移植性的应用程序。既然如此,“迷信”又源于何来呢?我想,一方面由于详细介绍Linux各种开发的书籍较少,各种Linux应用在国内仍不普及,另一方面则是由于很多人在安装好一个Linux后,苦于找不到一个得心应手的IDE环境,从而感到不知所措,毕竟,我们很多人都习惯了写好程序后,按下F5,剩下的任务就让IDE全权代理了。其实想在Linux下如此这般当然也没问题。既然说到了IDE,就让我们从它开始吧,相信选择一个好的IDE环境是你整个学习过程的一个不错的开始。 工欲善其事 必先利其器——IDE篇 其实Linux下有许多功能强大的IDE环境,因为从某种意义上说,Linux是专为开发者准备的操作系统