问题标签 [coff]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
cl - 微软编译器 cl.exe 可以编译为 OMF 对象类型而不是 COFF 吗?
我想将创建的目标文件cl.exe
与另一个OMF
使用第三方链接器格式的目标文件链接起来。该第三方链接器不接受COFF
格式。我想知道是否cl
可以制作OMF
格式的对象?
mfc - COleDispatchDriver::Invoke 在 MFC 应用程序中使用 VS2013 导致 61706“内存不足”异常?
我有一个在用 VS2013 重建的 Win7 上运行的 MFC C++ 应用程序。它使用自定义 OCX 控件。在大约第 4 次调用 OCX 时,COleDispatchDriver::InvokeHelper 方法调用 Invoke,导致异常 61706“内存不足”。这个应用程序已经在以前版本的 Visual Studio 上成功构建和运行多年(不确定它最初是用哪个版本构建的)。来自生成异常的应用程序代码的调用是:
我已经进入了这个调用,并通过了大约 4 个级别的调用,并在库 dll oledisp2.cpp 中进行了这个调用
状态码 sc 返回为 0x80020009,即 DISP_E_EXCEPTION,表示“发生异常”,异常信息为:
我试图进入 m_lpDispatch->Invoke调用,但调试器只显示汇编语言,说被调用模块没有符号信息,这看起来很奇怪,因为它是同一个类(或父级)的成员电话来自。当我逐步了解 InvokeHelper 方法时,我观察到所有 8 个传递的参数都被正确识别和处理,直到调用 Invoke()。无法进入 Invoke 导致无法查看导致“内存不足”问题的内存分配位置。
我也尝试使用 VS2010 构建并得到相同的错误。
我尝试过的其他事情是从静态 MFC 库切换到 DLL MFC,但结果是一样的。我仍然收到“内存不足”错误,并且无法在 Invoke() 调用中使用符号进行调试。
我试图查找 61706 错误以获取 Microsoft 的详细描述,但只发现这个链接信息量不大。
llvm - LLVM:将链接器指令添加到 LLVM IR
如何使用 LLVM IR 添加在 COFF(MSVC 目标文件)中找到的链接器指令和 LLVM?或者是否有其他工具可以添加这些指令?
clang - 如何更改 Clang/llvm 的目标文件格式
我目前正在将 Windows CE 添加为 LLVM/Clang 中的目标操作系统。我已经在 Windows 上编译了 LLVM/Clang,当我使用它为我自己的本机 Windows 目标编译代码时,或者当我交叉编译到我的新 Windows CE 目标时,它会生成 ELF 目标文件。问题是我需要它来生成 COFF 目标文件。我找不到任何方法来配置 Clang 以在运行时发出 COFF,所以我一直在向代码添加调试以尝试找出如何通过修改源代码本身来让它产生 COFF。我已经研究了一段时间,并想我会问是否有人可以帮助我弄清楚如何让它生成 COFF。
当构建 TargetInfo 类(lib/Basic/Targets.cpp)时,我看到 Triple.getObjectFormat 返回 COFF 的枚举值,所以我不确定它为什么会产生 ELF。我认为罪魁祸首将在 lib/CodeGen 项目中,但我很难弄清楚最终目标文件格式的评估位置。任何帮助,将不胜感激。
c++ - xdata 部分有什么作用?
我有一个简单的hello world
程序,在我用/headers标志转储它之后,我得到这个输出:
xdata 部分到底做什么以及它包含什么?没有关于msdn的信息。
windows - PE 格式的可执行文件中的 COFF 字节排序
我有一个 Windows 二进制文件的 hexdump,并通过查看 COFF 偏移量识别了此可执行文件中的 COFF 标头:
我们可以进一步验证这是文件头,因为它的4 字节签名:'PE'
后跟两个NULL
字节。显然,该格式似乎是用小端表示的,因为如果我们要显式编写 PE,我们将使用 hex 50 45
。
如果我们查看PE 格式规范并进行此观察,该NumberOfSections
字段(从签名末尾偏移 2 个字节,该Machine
字段被跳过),我们确定有 768 个部分(03 00
小端序)。这与规范相矛盾,指出 Windows 加载程序将节数限制为 96。
此外,字段中的字节顺序Timestamp
(接下来的 4 个字节)似乎很奇怪,因为只有排列3add 6ec8
会产生过去的 Unix 时间戳。
我是否缺少更明确定义的字节顺序?为什么字段之间的字节顺序似乎不一致?
c++ - 如何在 cgal 中加载 COFF 网格?
我想使用 CGAL::read_OFF() 加载一个 coff 文件(带颜色的网格)。下一次尝试将这些信息组合成一个网格变量(类似于 polygon_soup_to_polygon_mesh 函数,但不确定,因为这个命令也不支持颜色信息)。您知道如何读取 COFF 文件并将它们合并为包含颜色信息的网格吗?
接着
这是我要加载的 COFF 文件的示例:
windows - 在 notpad.exe PE 标头中找不到 AddressOfEntryPoint
我正在阅读 Advanced .NET Debugging 这本书,该书引用了 32 位 notepad.exe,并说我应该能够找到AddressOfEntryPoint
RVA0x108
为0x31F8
.
我使用的是 64 位 Windows 10,但它似乎不存在,值存在0x0B02
.
当我尝试在 ntsd 中反汇编它时,出现内存访问错误(我期待notepad!WinMainCRTStartup
:
这是由于 32/64 位吗?
我应该做什么?
windows - PE+ 可执行文件中存在 BaseOfCode
MS 文档说该值BaseOfCode
仅存在于 PE 文件中,而不存在于 PE+ 中。使用dotPeeknotepad.exe
和 PE 查看器查看似乎表明BaseOfCode
存在并已使用。
at 的两个字节0x00F8
表示这是一个 PE+ 标头。是的BaseOfCode
四个字节0x010C
。
文档(和我自己)是否不正确或 dotPeek 和 PE View 不正确?
这些字节没有被清零的事实意味着这些字节在某种程度上是重要的。
.net - AddressOfEntryPoint 超出文件末尾
我试图了解AddressOfEntryPoint
COFF 标头中的内容。
我有一个“一无所有”的 .NET exe:
(我已将其编译为 x86 应用程序)
我为 COFF 标头中的标准字段获得的值是:
AddressOfEntryPoint
是0x2356
。_
该文件的长度不足以使该值成为任何地方的偏移量,那么它是什么?
(文件位于: https ://drive.google.com/open?id=1VClORkJKyGhd7o3YBPbCZEni1ad_mncl )