Windows

Windows 核心编程 _ 线程内幕

Windows 核心编程 _ 线程内幕

bingliaolong 4年前 14 0

概述 对CreateThread函数的调用,导致系统创建了一个线程内核对象。 该内核对象最初的使用计数为2,除非线程终止,而且从CreateThread返回的句柄被关闭,否则线程内核对象不会被销毁。 该线程内核对象的其他属性也被初始化: 暂停计数被设为1 退出代码被设为STILL...

Windows机制:消息处理

Windows机制:消息处理

bingliaolong 5年前 11 0

概述 Windows 是事件驱动的,事件驱动围绕着消息的产生与处理展开,事件驱动是靠消息循环机制来实现的。也可以理解为消息是一种报告有关事件发生的通知。 消息(Message)指的就是Windows 操作系统发给应用程序的一个通告,它告诉应用程序某个特定的事件发生了。 比如,用户...

51CTO:Linux C++网络编程五

51CTO:Linux C++网络编程五

bingliaolong 2年前 20 0

平台相关 select 支持:windows 支持:linux,macos,bsd,aix等 poll 支持:linux,macos,bsd等 不支持:一些交旧的或特定的unix操作系统可能不支持poll 不支持:windows不提供标准的poll,但可以通过其他相似的api来达...

Windows 核心编程 _ 进程三

Windows 核心编程 _ 进程三

bingliaolong 4年前 10 0

进程的关联性 通常,进程中的线程可以在主机的任何CPU上执行。 然而,也可以强迫线程在可用CPU的一个子集上运行,这一点叫“处理器关联性”。 子进程继承了其父进程的关联性。 进程的错误模式 与每个进程都关联了一组标志。 这些标志的作用是让系统知道进程如何相应严重错误,包括磁盘介质...

Windows 核心编程 _ 进程二

Windows 核心编程 _ 进程二

bingliaolong 4年前 19 0

进程实例句柄 加载到进程地址空间的每一个执行文件或者DLL文件都被赋予了一个独一无二的实例句柄。 可执行文件的实例被当作(w)WinMain函数的第一个参数hInstanceExe传入。在需要加载资源的函数调用中,一般都需要提供此句柄的值。 比如从一个可执行文件的映像中加载一个图...

Windows 高级调试 _ 内存破坏

Windows 高级调试 _ 内存破坏

bingliaolong 5年前 8 0

调试实践 关于调试实践。 内存破坏 栈内存 在Windows中,栈只是操作系统为线程分配的一块内存。 作用是记录函数调用链(局部变量的分配、参数传递)。 每当调用函数时,都会创建一个栈帧并且把它压入到栈中。 随着线程中调用的函数越来越多,栈也会变得越来越大。 函数结构 函数前导指...

Windows 核心编程 _ 用户模式:线程同步二

Windows 核心编程 _ 用户模式:线程同步二

bingliaolong 4年前 3 0

关键段 概述 critical section是一小段代码,它在执行之前需要独占对一些共享资源的访问权。 这种方式可以让多行代码以“原子方式”来对资源进行操控。 这里的原子方式,是指除了当前线程之外,没有其他任何线程会同时访问该资源。 当然,系统仍然可以暂停当前线程去调度其他线程...

Windows开发相关简记二:exe和dll双形态

Windows开发相关简记二:exe和dll双形态

bingliaolong 6个月前 11 0

启动流程 BasicEntry 作为dll导出接口 PrepareEnv 先构建运行时 ntdll.dll kernel32.dll 获取当前dll句柄 EXE被当做DLL加载时,首先修复重定位数据,此时的全局变量等还无法访问 因为Windows操作系统不会修复当做DLL加载的E...

各平台调试方法总结记述一

各平台调试方法总结记述一

bingliaolong 2年前 13 0

Windows 日志 可以通过现有日志来观察 当不方便附加进程时,可以通过写文件的方法写日志 Visual Studio 附加到进程 CLion 附加到进程 windbg Linux 日志 应用程序日志 var/log/ 当不方便附加进程时,可以通过写文件的方法写日志 gdb l...

扫一扫二维码分享