草庐IT

block_size

全部标签

windows - 在 64 位 Windows 应用程序中获取 TID(线程信息 block )的最快方法?

我有一个计算密集型模块,我在其中添加了堆栈跟踪以便能够找到特定问题。尽管启用此堆栈跟踪时允许应用程序运行得更慢,但它不能运行慢10倍。这就是为什么我不使用DBGHELP.DLL中的StackWalk例程,而是使用帧指针自己遍历堆栈(因此我不使用FramePointerOmission编译器选项)。在大多数情况下,获取调用堆栈工作正常并且非常快,但在某些情况下,我的逻辑会失败,因为其中一个帧指针指向堆栈外的地址(不多,只是一点点)。我知道这可能是某个地方的错误,但为了能够使我的代码更安全,我需要一种方法来检查帧指针是否指向当前线程堆栈中的内存位置。该应用程序为64位,可在Windows下

c++ - size_t 和 SIZE_T : is there any point to care?

有什么理由不假设SIZE_T是Microsoft的VisualC/C++编译器上size_t的类型定义?Windowsintsafe.h函数确实包括从一个函数到另一个函数的安全转换函数。这仅仅是为了完整性,还是存在静态转换可能无法给出预期结果的任何情况? 最佳答案 如果您的应用程序必须是跨平台的,那么您将只能使用语言中的标准内容,即std::size_t。否则,使用看起来合适的东西。如果您的目标是获得std::size_t类型,那么为什么不直接使用它而不关心平台特定类型呢?顺便说一句,std::size_t保证为最大数组大小提供足够

windows - windbg !heap 输出中的 'size' 数字是什么意思?

我在我的DMP文件中看到这样的输出:HeapentriesforSegment00inHeap0015000000150640:00640.00040[01]-busy(40)00150680:00040.01808[01]-busy(1800)00151e88:01808.00210[01]-busy(208)00152098:00210.00228[00]001522c0:00228.00030[01]-busy(22)001522f0:00030.00018[01]-busy(10)00152308:00018.00048[01]-busy(3c)WinDbg文档是这样说的:He

windows - 为什么无法从具有 PAGE_GUARD 保护的 block 中读取数据?

我使用ReadProcessMemory函数从地址空间读取数据。我尝试读取所有具有MEM_PRIVATE类型的block。但是当那个block有PAGE_GUARD保护时我得到错误(函数返回0),为什么?感谢大家。 最佳答案 具有PAGE_GUARD保护的页面保证不可访问。对它的任何访问都会产生页面错误,并作为STATUS_GUARD_PAGE_VIOLATION异常反射回拥有该页面的进程。此功能在Windows中大量使用,以检测此站点的命名条件并从中恢复。线程堆栈的最后两页是保护页。当程序递归地崩溃,消耗所有堆栈空间并触发异常时,

c++ - Code::Blocks 和 Boost Asio。它只是行不通

我无法让Boost.Asio在Code::Blocks中编译。我安装并编译了BoostC++库,并运行了给定的测试示例。现在我正在尝试让Boost.Asio运行。这是编译器调用:mingw32-g++.exe-L"C:\ProgramFiles(x86)\boost\boost_1_49_0"-obin\Debug\server.exeobj\Debug\server.oD:\CodeBlocksIDE\CodeBlocks\lib\libboost_filesystem-mgw44-mt-1_49.aD:\CodeBlocksIDE\CodeBlocks\lib\libboost_s

C Hello world : Code Blocks IDE, Windows 上的 MinGW C 编译器

当您创建新的C项目时,我无法让CodeBlocksIDE编译它创建的helloworldC程序。我已经安装了MinGW,它被IDE识别了。但是当我尝试构建时,我得到以下输出:--------------Build:DebuginTestC3(compiler:GNUGCCCompiler)---------------mingw32-gcc.exe-Wall-g-cC:\Users\jody\codeblocks\testc3\TestC3\main.c-oobj\Debug\main.omingw32-g++.exe-obin\Debug\TestC3.exeobj\Debug\ma

windows - ec2 block 设备映射列表与 Windows 驱动器之间的映射

ec2block设备映射列表和windows驱动器之间的映射是如何发生的?例如,如果我指定-b"/dev/sdb=snap-XXXXXXX"-b"/dev/sdc=ephemeral0"启动Windows实例时,它将D:\映射到EBS卷快照,将E:\映射到临时存储。当我以相反的顺序指定映射时,它也是如此。想知道这种映射是如何真正发生在Windows驱动器上的吗?了解临时存储映射到哪个驱动器对我来说实际上很重要,因为我需要在实例启动后在其中存储一些东西。谢谢! 最佳答案 您可以使用powershell脚本将驱动器号映射到设备名称给你h

windows - CreateEnvironmentBlock 返回的 block 对于 Windows Vista 上的 CreateProcessWithLogon 来说太大了

我正在使用微软的CreateProcessWithLogonWfunction以特定用户身份运行程序。在我们几乎所有的测试场景中,一切都很好。我们的代码类似于微软页面上的示例。问题出现在windowsvista上。我们使用以下方法创建环境block:CreateEnvironmentBlock(&lpvEnv,hToken,TRUE)然后我们将其传递给CreateProcessWithLogonW:CreateProcessWithLogonW(argv[1],NULL,argv[2],LOGON_WITH_PROFILE,NULL,argv[3],CREATE_UNICODE_ENV

node.js - 如何使用 NODE_OPTIONS 环境变量在 Windows 中全局设置 max_old_space_size?

在运行Node二进制文件时修复堆内存不足的解决方法(这是使用TypeScript2.1+和webpack时的常见问题)正在增加Node的最大内存。increase-memory-limit是一个包来做到这一点。在链接中,它说AsofNode.jsv8.0shippedAugust2017,youcannowusetheNODE_OPTIONSenvironmentvariabletosetthemax_old_space_sizeglobally.exportNODE_OPTIONS=--max_old_space_size=4096但是如何在Windows中设置该环境变量?在powe

c++ - 窗口区域、移动的子对象、DWM 以及它可以创建的白色 block 状困惑

设置:我有一个定义了区域的顶级窗口(使用SetWindowRgn()创建),并且我有一个移动的子元素(使用SetWindowPos())这样它的一些像素就会与父窗口区域的裁剪部分重叠。结果:这些像素被完全不透明、全白的像素填充,而不是保持完全透明(因为它在其父区域之外)。这并不是说子窗口在不应该被绘制的时候被绘制,因为不pipe窗口是什么样子,有问题的像素都是白色的。下面,橙色的小子窗口沿着父窗口的边缘移动了一点。这仅发生在具有透明窗口区域的边缘(因此白色像素始终被限制在父窗口的最大矩形内)。如果父窗口被隐藏然后显示,事情会自行纠正(只是使无效并强制重绘不会清除白色像素)。这已在Vis