当前位置: 首页 > news >正文

腾讯网站建设公司百度推广工具有哪些

腾讯网站建设公司,百度推广工具有哪些,wordpress 机器学习,五合一网站建设方案1.1 DUMP文件类型 Windows下Dump文件分为两大类,内核模式Dump和用户模式Dump。内核模式Dump是操作系统创建的崩溃转储,最经典的就是系统蓝屏,这时候会自动创建内核模式的Dump。用户模式Dump进一步可以分为完整Dump(Full Dump&…

1.1 DUMP文件类型

Windows下Dump文件分为两大类,内核模式Dump和用户模式Dump。内核模式Dump是操作系统创建的崩溃转储,最经典的就是系统蓝屏,这时候会自动创建内核模式的Dump。用户模式Dump进一步可以分为完整Dump(Full Dump)和迷你Dump(Minidump)。完整Dump包含了某个进程完整的地址空间数据,以及许多用于调试的信息,而Minidump则有许多类型,根据需要可以包含不同的信息,有的可能只包含某个线程和部分模块的信息。

1.2 DUMP文件的创建

本节讲述几种常用的DUMP文件创建方法。这里只讲述用户模式Dump文件创建,因为除部分专业开发人士(驱动开发)外,一般的开发人员只涉及应用程序的调试。
方法(1),通过调试工具创建。调试工具如Visual Studio,Windbg以及微软提供的ADplus都可以创建DUMP,在Windbg中通过.dump命令来生成。
方法(2),通过任务管理器创建。打开任务管理器,找到目标进程,右键——“创建转储文件”,即可保存DUMP。这种方式创建的DUMP文件为完整的Minidump,缺乏灵活性。不过,开发者的软件崩溃之后,又没有提供自动措施时,用户可以通过这种方法手动保存DUMP文件,然后提供给开发者分析,操作简单。不过,这种方法所产生的DUMP文件与其它几种方法产生的有差异,读者可以自己用windbg进行对比,这一点我在后面会详细讲到。
方法(3),通过编程自动创建。这是软件开发者使用的方式,例如,WPS中可以看到的对话框:

就是通过编程实现自动内存转储,然后上传到服务器,供开发者研究。
在编程过程中,可以预期的异常都通过结构化异常(try/catch)进行了处理。此时,如果发生了未预期的异常,这些异常处理代码无法处理,则转由Windows提供的默认异常处理器来进行处理,这个特殊的异常处理函数为UnhandledExceptionFilter。该函数会显示一个消息框,提示发生了未处理的异常,同时,让用户选择结束或调试该进程。也就是如下界面:

因此,为了更友好的处理未预期的异常(主要是创建内存转储),可以覆盖默认的异常处理操作。这是通过函数SetUnhandledExceptionFilter完成的,函数原型如下:

LPTOP_LEVEL_EXCEPTION_FILTER WINAPI SetUnhandledExceptionFilter(_In_ LPTOP_LEVEL_EXCEPTION_FILTER lpTopLevelExceptionFilter

lpTopLevelExceptionFilter即异常处理函数指针,如果设置为NULL,则默认使用UnhandledExceptionFilter。因此,我们对照UnhandledExceptionFilter的函数原型实现自己的异常处理函数:

LONG WINAPI MyUnhandledExceptionFilter( struct _EXCEPTION_POINTERS *ExceptionInfo )
{AfxMessageBox("已成功创建崩溃转储!");return EXCEPTION_EXECUTE_HANDLER;
}

然后在程序中设置该函数:
SetUnhandledExceptionFilter(MyUnhandledExceptionFilter);
此时,再运行示例,如下:

成功的接手了异常处理。接下来,我们需要创建内存转储。这通过函数MiniDumpWriteDump来实现。加上内存转储功能之后的异常处理代码如下:

LONG WINAPI MyUnhandledExceptionFilter( struct _EXCEPTION_POINTERS *ExceptionInfo )
{HANDLE hFile = CreateFile("mini.dmp", GENERIC_READ|GENERIC_WRITE,FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);if( hFile == INVALID_HANDLE_VALUE )return EXCEPTION_EXECUTE_HANDLER;MINIDUMP_EXCEPTION_INFORMATION mdei;mdei.ThreadId = GetCurrentThreadId();mdei.ExceptionPointers = ExceptionInfo;mdei.ClientPointers = NULL;MINIDUMP_CALLBACK_INFORMATION mci;  mci.CallbackRoutine     = NULL;  mci.CallbackParam       = 0;  MiniDumpWriteDump(GetCurrentProcess(), GetCurrentProcessId(), hFile, MiniDumpNormal, &mdei, NULL, &mci);  CloseHandle(hFile);AfxMessageBox("已成功创建崩溃转储!");return EXCEPTION_EXECUTE_HANDLER;
}

此时,运行程序,即可得到内存转储文件mini.dmp。需要注意的是,栈溢出类型的异常使用这种方法一般是捕捉不到的。为什么?我在栈溢出笔记中详细写过SEH,栈溢出会破坏SEH(结构化异常处理)框架,导致SEH失效。读者可以自己尝试。

1.3 小结

本节主要对DUMP文件进行了简单的介绍,并展示了创建DUMP文件的几种途径,其中,通过编程实现的应该是开发者应该掌握的方法。这样不仅仅给用户提供了比较友好的崩溃提示,还自动保存了DUMP文件,这对于那些不易重现的Bug将大大提高调试效率。

(本节的程序是一个简单的MFC程序,具体见第2节)

http://www.ho-use.cn/article/3269.html

相关文章:

  • 网站建设自主建设制作网站的网址
  • 网站 运营 外包 每个月多少钱怎么网上推广自己的产品
  • 阿里妈妈 该网站的域名已经被其他人绑定国际新闻界
  • 用html做网站源代码seo也成搜索引擎优化
  • 网站建设选择什么模式山西网页制作
  • 天津小型企业网站设计方案朝阳seo建站
  • 漫画网站模板网站排名优化软件
  • 网站地图在哪里展现企业网络营销方案设计
  • 电子商务网站的开发流程包括seo优缺点
  • 杭州赛虎网站建设百度快速提交入口
  • 娄底网站开发怎么做电商新手入门
  • 保定市工程造价信息网广州百度推广优化排名
  • 公司网站需要备案吗如何免费制作自己的网站
  • 微信开发者平台apiseo优化与sem推广有什么关系
  • 专门做兼职的网站河北优化seo
  • 云南省建设厅网站处长经典广告
  • 江苏最新消息今天惠州seo外包公司
  • 天津市政府网站建设管理办法哪个平台做推广效果好
  • 商城网站建设公司百度免费发布信息网站
  • 陕西住房城乡建设门户网站百度竞价电话
  • 手机欧美视频网站模板下载 迅雷下载 迅雷下载地址四川自助seo建站
  • 大型网站开发软件搜索引擎优化指的是
  • 保定cms建站系统百度竞价推广流程
  • 获取网站访问qq网络营销考试题目及答案2022
  • 政府采购机票管理网站西seo优化排名
  • 环保网站可以做哪些内容网站推广培训
  • 微信商城系统哪找移动端关键词优化
  • 南宁企业建站程序网络推广外包
  • dw做的网站成都百度推广
  • 旅行社网站规划与建设的流程图通过qq群可以进行友情链接交换