标签: windows64

为什么64位Windows无法解除用户内核用户异常?

为什么64位Windows在异常期间不能展开堆栈,如果堆栈跨越内核边界 - 当32位Windows可以?

整个问题的背景来自:

消失的OnLoad异常 - x64中的用户模式回调异常的情况

背景

在32位Windows中,如果我在我的用户模式代码中抛出异常,那是从内核模式代码调用的,这是从我的用户模式代码调用的,例如:

User mode                     Kernel Mode
------------------            -------------------
CreateWindow(...);   ------>  NtCreateWindow(...)
                                   |
WindowProc   <---------------------+                                   
Run Code Online (Sandbox Code Playgroud)

Windows中的结构化异常处理(SEH)可以展开堆栈,通过内核模式展开回到我的用户代码,在那里我可以处理异常,并且我看到有效的堆栈跟踪.

但不是在64位Windows中

64位版本的Windows无法执行此操作:

由于复杂的原因,我们无法在64位操作系统(amd64和IA64)上传播异常.自从Server 2003的第一个64位版本发布以来,情况一直如此.在x86上,情况并非如此 - 异常通过内核边界传播,并最终将帧移回

由于在这种情况下无法回溯可靠的堆栈跟踪,因此必须做出决定:让您看到非荒谬的异常,或者完全隐藏它:

当时的内核架构师决定采用保守的AppCompat友好方法 - 隐藏异常,并希望最好.

本文接着讨论了所有64位Windows操作系统的表现如何:

  • Windows XP 64位
  • Windows Server 2003 64位
  • Windows Vista 64位
  • Windows Server 2008 64位

但是从Windows 7(和Windows Server 2008)开始,架构师改变了主意 - 有点像.对于 64位应用程序(不是32位应用程序),它们(默认情况下)会停止抑制这些用户内核用户异常.所以,默认情况下,在:

  • Windows 7 64位
  • Windows Server 2008

所有64位应用程序都会看到这些异常,他们从来没有看到它们.

在Windows 7中,当本机x64应用程序以这种方式崩溃时,将通知 …

windows 64-bit structured-exception windows64 windows-appcompat-platform

37
推荐指数
2
解决办法
4410
查看次数

在Windows上解决Python 3.4的安装问题

我最近尝试在我的系统上安装Python 3.4作为替代安装,试图在迁移代码之前熟悉自己.我的主要Python安装是2.7.6.

我尝试了Windows的64位安装程序,但它出现了一条错误消息

此Windows Installer程序包存在问题.作为设置的一部分运行的程序没有按预期完成.请联系您的支持人员或包装供应商.

在此之后安装回滚(从下面显示的点):

在此输入图像描述

我最终找到了下面发布的解决方案,并决定分享以防其他人遇到同样的问题.

pip windows64 python-3.4

34
推荐指数
5
解决办法
3万
查看次数

在64位Windows上安装NumPy和SciPy(带Pip)

我发现在Windows 64位上通过安装程序安装NumPy/SciPy是不可能的,只能在32位上安装.因为我需要比32位安装更多的内存,所以我需要所有内容的64位版本.

我尝试安装所有东西Pip,大部分工作都有效.但是当我来到SciPy时,它抱怨错过了一个Fortran编译器.所以我通过MinGW/MSYS安装了Fortran.但是在此之后你无法立即安装SciPy,你需要重新安装NumPy.所以我尝试了,但现在它不再通过Pip或通过easy_install.两者都有这些错误:

  • 关于LNK2019LNK1120,有很多错误.
  • 我在以下方面遇到了很多错误C:C2065,C2054 ,C2085 ,C2143`等等.我相信它们属于一起.
  • 找不到Fortran链接器,但我不知道如何安装它,找不到任何东西.
  • 还有更多的错误已经超出了我的cmd-windows的可见部分......
  • 致命错误是LNK1120:

    build\lib.win-amd64-2.7 \numpy\linalg\lapack_lite.pyd:致命错误LNK1120:7未解析的外部错误:安装脚本退出并显示错误:命令"C:\ Users\me\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\Bin\amd64\link.exe/DLL/nologo/INCREMENTAL:NO/LIBPATH:C:\ BLAS/LIBPATH:C:\ Python27\libs/LIBPATH:C:\ Python27\PCbuild\amd64 /LIBPATH:build\temp.win-amd64-2.7 lapack.lib blas.lib/EXPORT:initlapack_lite build\temp.win-amd64-2.7\Release \numpy\linalg\lapack_litemodule.obj/OUT:build\lib .win-amd64-2.7 \numpy\linalg\lapack_lite.pyd /IMPLIB:build\temp.win-amd64-2.7\Release\numpy\linalg\lapack_lite.lib /MANIFESTFILE:build\temp.win-amd64-2.7\Release \numpy\linalg\lapack_lite.pyd.manifest"以退出状态1120失败

在64位Windows机器上安装64位版本NumPy和SciPy的正确方法是什么?我错过了什么吗?我需要在某处指定某些内容吗?Windows上没有关于这些问题的信息,仅适用于Linux或Mac OS X,但它们对我没有帮助,因为我无法使用它们的命令.

python numpy scipy windows64

29
推荐指数
3
解决办法
12万
查看次数

如何在Windows 8.1 x64上安装VB6 SP6?

需要直接在最新的操作系统中支持一些旧项目,而不是在虚拟机中.

我已成功从VS6磁盘#1安装了VB6,但我无法为此开发环境安装SP6.当我启动它,会出现一些毫秒,通知我关于安装进度的信息窗口,但所需的文件(ADVPACK.DLL,MSVBVM60.DLL,...)没有在系统文件夹更新.VB6 IDE中的About对话框也证明了 - 我在其中的任何地方都看不到"SP6".

如何在此操作系统中安装SERVICE PACK 6(不是VB IDE本身)?

vb6 install windows64 service-pack windows-8.1

11
推荐指数
3
解决办法
9万
查看次数

如何安装Feedparser 5.1 for Python 3.2 Windows 64位.

我正在尝试为Python 3.2,Windows 64位安装Feedparser 5.1.

我曾尝试FOREVER(也就是过去2周)为Python安装Feedparser,并且一直在失败.我读过自述文件,尝试搜索互联网,没有任何对我有用.不用说,我觉得完全愚蠢.

有人请给我一步一步的说明来安装Feedparser 5.1 for Python 3.2 Windows 64位.我很绝望,拜托.

python install feedparser windows64

10
推荐指数
1
解决办法
1万
查看次数

Python 2.7.2的pyserial

我是Python的新手.根据互联网,我在收到此错误后正在寻找模块pyserial:

ImportError: No module named serial
Run Code Online (Sandbox Code Playgroud)

我第一次尝试安装pywin32,它进展顺利.但它似乎不包含pyserial.:-(

然后我找到了pyserial的单个模块安装程序,我无法安装它,它说它没有在注册表中找到python的路径.:-(

之后我在python.org上找到了这个模块,但我不知道该怎么做,它没有安装程序.:-(

如何在Windows 7 64上将pyserial添加到Python(64)2.7 ?

python python-module pyserial windows64

8
推荐指数
2
解决办法
9万
查看次数

Oracle - SQL Developer:您的计算机缺少msvcr100.dll

在Windows 7(64位机器)中安装了11g.由于SQL开发人员不会使用64位jdk.

安装了32位jdk1.7.0并将ORACLE_HOME\sqldeveloper\sqldeveloper\bin\sqldeveloper.conf文件SetJavaHome点更改为32位jdk1.7.0.

再次启动SQL开发人员,但它msvcr100.dll丢失了.在max jdk1.6.X中找到SQL Developer3.x支持的内容.

windows64 oracle-sqldeveloper

8
推荐指数
4
解决办法
5万
查看次数

`__m256`的包装器使用构造函数生成分段错误 - Windows 64 + MinGW + AVX问题

我有一个看起来像这样的联盟

 union bareVec8f { 
    __m256 m256; //avx 8x float vector
    float floats[8];
    int ints[8];
    inline bareVec8f(){
    }
    inline bareVec8f(__m256 vec){
        this->m256 = vec;
    }
    inline bareVec8f &operator=(__m256 m256) {
        this->m256 = m256;
        return *this;
    }

    inline operator __m256 &() {
        return m256;
    }
}
Run Code Online (Sandbox Code Playgroud)

__m256需要在32字节边界上对齐以与SSE函数一起使用,并且应该是自动的,即使在联合内也是如此.

而当我这样做

bareVec8f test = _mm256_set1_ps(1.0f);
Run Code Online (Sandbox Code Playgroud)

我遇到了分段错误.由于我制作的构造函数,此代码应该可以工作.但是,当我这样做

bareVec8f test;
test.m256 = _mm256_set1_ps(8.f);
Run Code Online (Sandbox Code Playgroud)

我没有得到分段错误.

因此,因为工作正常,所以联合可能正确对齐,但是看起来构造函数只会导致一些分段错误

我正在使用gcc 64bit windows编译器

---------------------------------编辑Matt设法生成了这里似乎发生的最简单的错误示例.

#include <immintrin.h>

void foo(__m256 x) {}

int main()
{
    __m256 r = _mm256_set1_ps(0.0f);
    foo(r);
}
Run Code Online (Sandbox Code Playgroud)

我正在编译 -std=c++11 -mavx

c++ g++ avx windows64 mingw-w64

6
推荐指数
1
解决办法
503
查看次数

CMake C 编译器识别失败

最近将 CMake 从 2.8.1 更新到 3.7.1 版,运行良好。

更新需要CMAKE_FORCE_C_COMPILER从工具链文件中删除已弃用的命令,该文件用于跳过对工作编译器的自动检查。

我试图设置变量,SET(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)跳过测试,但行为没有变化。

现在似乎需要检查,CMake 无法识别我的编译器 (TriCore_v6.0r1)。


错误信息:

在“C:/Build/CMakeFiles/3.7.1/CompilerIdC/CMakeCCompilerId.elf”中找不到 C 编译器标识

在“C:/Build/CMakeFiles/3.7.1/CompilerIdC/CMakeCCompilerId.map”中找不到 C 编译器标识

在“C:/Build/CMakeFiles/3.7.1/CompilerIdC/CMakeCCompilerId.mdf”中找不到 C 编译器标识

在“C:/Build/CMakeFiles/3.7.1/CompilerIdC/CMakeCCompilerId.o”中找不到 C 编译器标识

编译 C 编译器标识源文件“CMakeCCompilerId.c”失败。编译器:C:/TASKING/TriCore_v6.0r1/ctc/bin/cctc.exe 构建标志:Id 标志:-Aa

注意:根据用法,编译器不接受这个标志(-Aa)

输出是:

1

ctc E200:命令行:选项“-A”:子选项“a”无效

在“C:/Build/CMakeFiles/3.7.1/CompilerIdC/CMakeCCompilerId.elf”中找不到 C 编译器标识

在“C:/Build/CMakeFiles/3.7.1/CompilerIdC/CMakeCCompilerId.map”中找不到 C 编译器标识

在“C:/Build/CMakeFiles/3.7.1/CompilerIdC/CMakeCCompilerId.mdf”中找不到 C 编译器标识

使用“”检查 C 编译器是否为 IAR 与“IAR .+ Compiler”不匹配:

理想情况下,我希望编译器能够被识别,但由于 Altium 不支持 CMake 工具,如果它解决了我的问题并允许我再次成功构建,我将决定跳过这些检查。

工具链文件:

#################################
# CMake Tool Chain File
# for TASKING Build Environment
#################################

# Deprecated!
# INCLUDE(CMakeForceCompiler)

# Skip …
Run Code Online (Sandbox Code Playgroud)

c cmake windows64

6
推荐指数
1
解决办法
7454
查看次数

Windows上的64位版Octave

有谁知道如何为x64 Windows构建Octave?x32的2GB数据限制对于需要对大型数据集进行分析的许多问题来说过于局限.

64-bit octave windows64

5
推荐指数
1
解决办法
7707
查看次数