Windows 程序员必备的知识和工具

首先我们来说说做Windows开发的必备知识,我们的目标是写运行在windows上的代码,所以我们需要对Windows 本身有所了解,这样在我们写的代码遇到相关问题的时候我们才知道该干什么,什么是对的,什么事不对的,那么以下我所列举的就是最基本的一些知识。

1.       进程和线程的关系以及同步,线程池技术。

2.       什么是用户模式,什么是内核模式,什么是windows session/terminal

3.       什么是虚拟内存,为什么会有内存泄漏,如何去抓内存泄露。

4.       什么叫对象,什么叫句柄,如何监控句柄和对象的泄露。

5.       什么叫注册表,和COM有什么关系,.Net是怎么建立起来的,互操作的原理是什么。

下面说说工具,好的工具往往可以达到事半功倍的效果,对的时候用对的工具很重要。

Procexp.exe:有了这个工具所有callstack, DLL,句柄, 调用关系一目了然。

Procmon.exe:这个工具可以帮你监控差不多所有类型的文件。

Wireshark: 遇到网络问题的时候,抓包分析很方便。

Performance: memory Leak, 分析用户态和内核态相关的问题很有用。

Windbg/SOS 当你需要调试,客户环境又不允许你用visual studio的时候,通过他们你可以看到一切你想看的东西。

原文地址:https://www.cnblogs.com/ziyan22/p/2697987.html