2014年2月5日星期三

WinDbg 命令三部曲:(一)WinDbg 命令手册 - Dennis Gao

本邮件内容由第三方提供,如果您不想继续收到该邮件,可 点此退订
WinDbg 命令三部曲:(一)WinDbg 命令手册 - Dennis Gao  阅读原文»

本文为 Dennis Gao 原创技术文章,发表于博客园博客,未经作者本人允许禁止任何形式的转载。

系列博文

  1. 《WinDbg 命令三部曲:(一)WinDbg 命令手册》
  2. 《WinDbg 命令三部曲:(二)WinDbg SOS 扩展命令手册》
  3. 《WinDbg 命令三部曲:(三)WinDbg SOSEX 扩展命令手册》

导航目录

调试准备

为了测试 WinDbg 中使用 SOS 扩展命令,我创建了应用程序 "MemoryLeakApp.exe",Visual Studio 程序选择为 64 位环境编译。

"MemoryLeakApp.exe" 启动运行后可能占用内存600M。

此时,选择使用 64 位 WinDbg 来调试程序。我们先通过 Attach Process 方式来调试。

当然,如果我们使用了 32 位的 WinDbg 去 Attach 进程,会直接报错。

WinDbg 常用命令手册

内置帮助命令
命令描述
?

?   显示常规命令

? /D 通过 DML(Debugging Markup Language) 方式显示常规命令

.help

.help    显示 . 系列命令

.help /D 通过 DML 方式显示 . 系列命令

.help /D a* 通过 DML 方式显示所有以 'a' 字母开头的 . 系列命令

.chain

.chain 列出所有已加载的调试器扩展

.chain /D 通过 DML 方式列出所有已加载的调试器扩展

.extmatch

.extmatch /e ExtDLL FunctionFilter 显示调试器扩展的所有导出函数

.extmatch /D /e ExtDLL FunctionFilter 通过 DML 方式显示调试器扩展所有导出函数

.extmatch /D /e uext * 显示 uext 扩展中的所有导出函数

.hh

.hh 打开 WinDbg 的帮助文件

.hh Text 打开 WinDbg 的帮助文件,并自动搜索 Text 的内容

.hh dt 在 WinDbg 帮助文件中搜索 dt 命令

调试会话命令
命令描述
.attach

.attach PID 附加到指定ID的进程

.detach

.detach 结束调试会话,被调试进程仍可继续运行

q

q 结束调试会话,同时终止被调试进程的进行

qq 结束调试会话,同时终止被调试进程的进行

.restart

.restart 重启被调试应用

一般信息命令
命令描述
version

显示调试器版本信息和已加载的调试器扩展

vercommand

显示调试器启动文件的路径

vertarget

显示目标机器的版本

CTRL+ALT+V

windows下用QTwebkit解析html - Mike_Zhang  阅读原文»

环境

windows7 + VS2010 + QT5.2_opengl

配置开发环境

1、安装VS2010

2、安装QT 5.2

QT网站:http://qt-project.org/downloads

下载并安装QT5.2:Qt 5.2.1 for Windows 32-bit (VS 2010, OpenGL, 517 MB)

3、安装Visual Studio Add-in for QT5

下载地址:Visual Studio Add-in 1.2.2 for Qt5

4、配置VS 2010

配置路径:QT5 ==> "Qt Options" ==> "Qt Versions" ==> Add

默认路径为:C:\Qt\Qt5.2.0\5.2.0\msvc2010_opengl

解析html

1、建立QtWebkit工程

操作路径:VS2010 ==> File ==> New ==> Project ==> "Qt5 Projects" ==> "Qt Application"

注意事项

在"Project Settings"里面选中“WebKit”和“Webkit Widgets”选项:

2、添加头文件

#include <QtGui>
#include
<QtWebKit>
#include
<QWebView>

3、解析内容

3.1、解析http形式的url

使用QWebView的setUrl方法,示例如下:

QWebView view;
view.show();
view.setUrl(QUrl(
"http://www.cnblogs.com/mikezhang"));

3.2、解析本地文件

使用QWebView的setUrl方法,示例如下:

QWebView view;
view.show();
view.setUrl(QUrl(
"file:///E:/tmp/1.html"));

3.3、解析html字符串

使用QWebView的setHtml方法,示例如下:

QApplication app(argc, argv);
QWebView view;
view.show();
std::ifstream fin(
"E:/tmp/1.html");
std::stringstream buffer;
buffer
<< fin.rdbuf();
fin.close();
view.setHtml(buffer.str().c_str());

完整代码如下

#include <QtGui>
#include
<QtWebKit>
#include
<QWebView>

#include
<fstream>
#include
<string>
#include
<sstream>

int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QWebView view;
view.show();

// Method 1 : a remote url
//view.setUrl(QUrl("http://www.cnblogs.com/mikezhang"));

// Method 2 : a local url
//view.setUrl(QUrl("file:///E:/tmp/1.html"));

// Method 3 : set html content
std::ifstream fin("E:/tmp/1.html");
std::stringstream buffer;
buffer
<< fin.rdbuf();
fin.close();
view.setHtml(buffer.str().c_str());

return app.exec();
}


本文链接:http://www.cnblogs.com/MikeZhang/p/QtWebkitParseHtml_20140206.html,转载请注明。

阅读更多内容

没有评论:

发表评论