22得票8回答
如何处理比UInt64更大的数字(C#)

在 C# 中,如何存储和计算超过 UInt64 的最大值(18,446,744,073,709,551,615)的数字?

20得票7回答
为什么操作系统不能使用完整的64位来进行寻址?为什么只能使用48位?

我正在阅读《深入理解Linux内核》。 64位体系结构的分页机制 正如我们在前面所看到的那样,32位微处理器通常采用两级分页机制。然而,两级分页并不适用于采用64位架构的计算机。下面通过一个思想实验来解释原因: 首先假设标准页面大小为4KB。因为1KB覆盖210个地...

16得票2回答
AppDomain地址空间

首先,问题是:CLR规范是否保证在同一进程中的多个应用程序域中执行的代码将共享相同的地址空间?通过“共享地址空间”我指的是在一个应用程序域中分配内存的指针可以在托管同一进程的所有应用程序域中进行读写。 考虑这个自包含示例,它说明了这个问题:程序在一个单独的应用程序域中分配了一个Worker对...

15得票3回答
如何检查EXE文件是否设置为LARGEADDRESSAWARE

我正在开发一个用C#编写的程序,它可以加载文件并获取诸如创建日期、修改日期、大小等信息。另外,我还需要知道加载的文件(executable.exe)是否与LARGEADDRESSAWARE标志链接在一起。FileInfo类无法提供此信息。 有人知道在C#中如何找出给定的executable....

14得票2回答
12得票2回答
如何让LLDB打印内存中共享库的位置?

我正在尝试收集关于在Mac OS 10.11.1 'El Capitan'上使用Valgrind 3.11.0时看到的明显的无限循环问题的尽可能多的信息。 当我在LLDB中运行valgrind或附加到运行我的程序的valgrind然后停止进程时,我会得到以下类似的回溯: * 线程#1:t...

9得票2回答
当处理器尝试访问不存在的物理地址时会发生什么?

想象一台32位x86计算机,内存不到3GB,CPU设置为禁用分页和平面段描述符(基地址为0x0,数据和代码的有效限制均为0xffffffff)。 当ring0中的指令尝试使用mov指令引用未被任何内存地址支持的物理地址时会发生什么? QEMU仿真会出现错误,如“fatal: Trying ...