执行任何 IO/Stream 时 C++ JNI 崩溃/挂起

2023-12-13

当我尝试编译 C++ 代码以在 JAVA 端使用时,我似乎遇到了一个大问题。当我尝试执行任何与 IO/Stream/Manipulation 相关的操作时,JVM 似乎崩溃了。

有时,就像我每 10 次运行应用程序时,JNI 可以 100% 处理所有 IO 内容。然后,其余时间 JVM 就会崩溃或挂起。

我在用着:Windows 10 x64、JAVA jdk1.8.0_102、Netbeans 8.1、g++、附加选项:-D__int64=int64_t

当我执行这些操作时,JNI 工作正常:

JNIEXPORT jstring JNICALL Java_Main_nativePrint
  (JNIEnv *env, jobject)
{
    return env->NewStringUTF("HELLO");
}

JNIEXPORT jstring JNICALL Java_Main_nativePrint
  (JNIEnv *env, jobject)
{
    double var = std::sqrt(100);
    return env->NewStringUTF("HELLO");
}

当我尝试合并诸如printf, std::stringstream, sprintf, cout, or puts,JVM崩溃。甚至实例化std::stringstream似乎让我崩溃。我认为其他类型的操作功能也会让我崩溃:

Java_Main_nativePrint(JNIEnv *env, jobject instance)
{
    int variable = 100;
    char str[15];

    //CRASHES ON HERE
    sprintf(str, "%d", variable);
    //CRASHES ON HERE IF ABOVE COMMENTED OUT OR USING ANOTHER CHAR ARRAY.
    puts(str); //CRASHES ON HERE

    return env->NewStringUTF(str);
}

JNIEXPORT jstring JNICALL Java_Main_nativePrint
  (JNIEnv *env, jobject)
{
    double res = std::sqrt(100);

    //CRASHES HERE ON INSTANTATION OF stringstream
    std::stringstream ss;
    //ss << std::sqrt(100);
    //const char* str = ss.str().c_str();

    return env->NewStringUTF("HELLO");
}

我似乎和这个人有类似的问题:

使用 C++ 的 JNI 在 cout、printf 和方法调用上不断崩溃

这是我的转储:

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x0000000180117a37, pid=6064, tid=0x0000000000002e40
#
# JRE version: Java(TM) SE Runtime Environment (8.0_102-b14) (build 1.8.0_102-b14)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.102-b14 mixed mode windows-amd64 compressed oops)
# Problematic frame:
# C  [cygwin1.dll+0xd7a37]
#
# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.java.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#

---------------  T H R E A D  ---------------

Current thread (0x0000000002e70800):  JavaThread "main" [_thread_in_native, id=11840, stack(0x0000000002d70000,0x0000000002e70000)]

siginfo: ExceptionCode=0xc0000005, writing address 0x0000000000000000

Registers:
RAX=0x0000000000000000, RBX=0x0000000002e6f328, RCX=0x00000003fec8bfe0, RDX=0x00000003fec5ee60
RSP=0x0000000002e6f100, RBP=0x0000000000000018, RSI=0x0000000002e6f258, RDI=0x0000000002f7835d
R8 =0x0000000002e6f298, R9 =0x0000000002d67610, R10=0x0000000002e70000, R11=0x00000003fec5ee08
R12=0x0000000000000000, R13=0x000000001bf903f0, R14=0x0000000002e6f420, R15=0x0000000002e70800
RIP=0x0000000180117a37, EFLAGS=0x0000000000010202

Top of Stack: (sp=0x0000000002e6f100)
0x0000000002e6f100:   00000001800f0390 0000000180117a4b
0x0000000002e6f110:   0000000002d6eee0 0000000002d6eee8
0x0000000002e6f120:   0000000002e70800 000000005b94a34e
0x0000000002e6f130:   0000000002e6f328 00000003fec62d16
0x0000000002e6f140:   000000005bd50088 0000005000000000
0x0000000002e6f150:   0000000000000015 0000000000000000
0x0000000002e6f160:   0000000002e6f1f0 0000000002e6f258
0x0000000002e6f170:   0000000002f7835d 00000003fec58d59
0x0000000002e6f180:   0000000000000000 0000000000000100
0x0000000002e6f190:   0000000000000002 0000000002d6ebf0
0x0000000002e6f1a0:   0000000002e70800 000000001bf903f0
0x0000000002e6f1b0:   0000000020200021 0000000002f7835d
0x0000000002e6f1c0:   0000000002e6f250 00000005c9f710e4
0x0000000002e6f1d0:   0000000000000010 0000000000000008
0x0000000002e6f1e0:   0000000002e70800 0000000002f93b63
0x0000000002e6f1f0:   000000001bf903f0 0000000002e70800 

Instructions: (pc=0x0000000180117a37)
0x0000000180117a17:   04 f3 90 eb e3 48 c7 c0 08 00 00 00 49 0f c1 82
0x0000000180117a27:   50 e4 ff ff 4c 8d 1d 19 00 00 00 4c 87 5c 24 08
0x0000000180117a37:   4c 89 18 41 ff 82 44 e4 ff ff 41 ff 8a 4c e4 ff
0x0000000180117a47:   ff 58 ff e0 65 4c 8b 14 25 08 00 00 00 41 bb 01 


Register to memory mapping:

RAX=0x0000000000000000 is an unknown value
RBX=0x0000000002e6f328 is pointing into the stack for thread: 0x0000000002e70800
RCX=0x00000003fec8bfe0 is an unknown value
RDX=0x00000003fec5ee60 is an unknown value
RSP=0x0000000002e6f100 is pointing into the stack for thread: 0x0000000002e70800
RBP=0x0000000000000018 is an unknown value
RSI=0x0000000002e6f258 is pointing into the stack for thread: 0x0000000002e70800
RDI=0x0000000002f7835d is at code_begin+2301 in an Interpreter codelet
invoke return entry points  [0x0000000002f77a60, 0x0000000002f78440]  2528 bytes
R8 =0x0000000002e6f298 is pointing into the stack for thread: 0x0000000002e70800
R9 =0x0000000002d67610 is an unknown value
R10=0x0000000002e70000 is pointing into the stack for thread: 0x0000000002e70800
R11=0x00000003fec5ee08 is an unknown value
R12=0x0000000000000000 is an unknown value
R13={method} {0x000000001bf903f8} 'nativePrint' '()Ljava/lang/String;' in 'Main'
R14=0x0000000002e6f420 is pointing into the stack for thread: 0x0000000002e70800
R15=0x0000000002e70800 is a thread


Stack: [0x0000000002d70000,0x0000000002e70000],  sp=0x0000000002e6f100,  free space=1020k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [cygwin1.dll+0xd7a37]
C  [cygwin1.dll+0xb038f]

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j  Main.nativePrint()Ljava/lang/String;+0
j  Main.main([Ljava/lang/String;)V+18
v  ~StubRoutines::call_stub

---------------  P R O C E S S  ---------------

Java Threads: ( => current thread )
  0x000000001dea8800 JavaThread "Service Thread" daemon [_thread_blocked, id=3408, stack(0x000000001e280000,0x000000001e380000)]
  0x000000001c538800 JavaThread "C1 CompilerThread2" daemon [_thread_blocked, id=5372, stack(0x000000001dd80000,0x000000001de80000)]
  0x000000001c535800 JavaThread "C2 CompilerThread1" daemon [_thread_blocked, id=5400, stack(0x000000001dc80000,0x000000001dd80000)]
  0x000000001c531000 JavaThread "C2 CompilerThread0" daemon [_thread_blocked, id=5124, stack(0x000000001db80000,0x000000001dc80000)]
  0x000000001c52f000 JavaThread "Attach Listener" daemon [_thread_blocked, id=2432, stack(0x000000001da80000,0x000000001db80000)]
  0x000000001c52e000 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=336, stack(0x000000001d980000,0x000000001da80000)]
  0x0000000002f6a800 JavaThread "Finalizer" daemon [_thread_blocked, id=11892, stack(0x000000001d7a0000,0x000000001d8a0000)]
  0x0000000002f61000 JavaThread "Reference Handler" daemon [_thread_blocked, id=11932, stack(0x000000001d6a0000,0x000000001d7a0000)]
=>0x0000000002e70800 JavaThread "main" [_thread_in_native, id=11840, stack(0x0000000002d70000,0x0000000002e70000)]

Other Threads:
  0x000000001c4f8000 VMThread [stack: 0x000000001d5a0000,0x000000001d6a0000] [id=13280]
  0x000000001ded3000 WatcherThread [stack: 0x000000001e380000,0x000000001e480000] [id=11656]

VM state:not at safepoint (normal execution)

VM Mutex/Monitor currently owned by a thread: None

Heap:
 PSYoungGen      total 76288K, used 2621K [0x000000076b500000, 0x0000000770a00000, 0x00000007c0000000)
  eden space 65536K, 4% used [0x000000076b500000,0x000000076b78f5e8,0x000000076f500000)
  from space 10752K, 0% used [0x000000076ff80000,0x000000076ff80000,0x0000000770a00000)
  to   space 10752K, 0% used [0x000000076f500000,0x000000076f500000,0x000000076ff80000)
 ParOldGen       total 175104K, used 0K [0x00000006c1e00000, 0x00000006cc900000, 0x000000076b500000)
  object space 175104K, 0% used [0x00000006c1e00000,0x00000006c1e00000,0x00000006cc900000)
 Metaspace       used 2586K, capacity 4486K, committed 4864K, reserved 1056768K
  class space    used 282K, capacity 386K, committed 512K, reserved 1048576K

Card table byte_map: [0x0000000012330000,0x0000000012b30000] byte_map_base: 0x000000000ed21000

Marking Bits: (ParMarkBitMap*) 0x000000005bf8a6c0
 Begin Bits: [0x0000000013480000, 0x0000000017408000)
 End Bits:   [0x0000000017408000, 0x000000001b390000)

Polling page: 0x0000000002c00000

CodeCache: size=245760Kb used=1102Kb max_used=1105Kb free=244657Kb
 bounds [0x0000000002f70000, 0x00000000031e0000, 0x0000000011f70000]
 total_blobs=254 nmethods=23 adapters=145
 compilation: enabled

Compilation events (10 events):
Event: 0.060 Thread 0x000000001c538800   18  s    3       java.lang.StringBuffer::append (13 bytes)
Event: 0.060 Thread 0x000000001c535800   20       4       java.lang.String::charAt (29 bytes)
Event: 0.060 Thread 0x000000001c538800 nmethod 18 0x0000000003080210 code [0x00000000030803c0, 0x0000000003080af8]
Event: 0.060 Thread 0x000000001c538800   21       3       java.lang.AbstractStringBuilder::append (50 bytes)
Event: 0.061 Thread 0x000000001c538800 nmethod 21 0x0000000003080ed0 code [0x00000000030810a0, 0x00000000030817f8]
Event: 0.061 Thread 0x000000001c538800   22       3       java.lang.String::indexOf (7 bytes)
Event: 0.061 Thread 0x000000001c535800 nmethod 20 0x00000000030847d0 code [0x0000000003084920, 0x00000000030849f8]
Event: 0.061 Thread 0x000000001c538800 nmethod 22 0x00000000030843d0 code [0x0000000003084540, 0x0000000003084748]
Event: 0.064 Thread 0x000000001c538800   23       3       java.util.Arrays::copyOfRange (63 bytes)
Event: 0.064 Thread 0x000000001c538800 nmethod 23 0x0000000003082950 code [0x0000000003082b60, 0x0000000003083698]

GC Heap History (0 events):
No events

Deoptimization events (0 events):
No events

Internal exceptions (2 events):
Event: 0.025 Thread 0x0000000002e70800 Exception <a 'java/lang/NoSuchMethodError': Method sun.misc.Unsafe.defineClass(Ljava/lang/String;[BII)Ljava/lang/Class; name or signature does not match> (0x000000076b507c78) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u102\7268\hotspot\s�4�B��?
Event: 0.025 Thread 0x0000000002e70800 Exception <a 'java/lang/NoSuchMethodError': Method sun.misc.Unsafe.prefetchRead(Ljava/lang/Object;J)V name or signature does not match> (0x000000076b507f60) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u102\7268\hotspot\src\share\vm\prims\

Events (10 events):
Event: 0.063 loading class java/security/UnresolvedPermission
Event: 0.063 loading class java/security/UnresolvedPermission done
Event: 0.064 loading class java/security/BasicPermissionCollection
Event: 0.064 loading class java/security/BasicPermissionCollection done
Event: 0.064 loading class sun/launcher/LauncherHelper$FXHelper
Event: 0.064 loading class sun/launcher/LauncherHelper$FXHelper done
Event: 0.064 loading class java/lang/Class$MethodArray
Event: 0.064 loading class java/lang/Class$MethodArray done
Event: 0.064 loading class java/lang/Void
Event: 0.064 loading class java/lang/Void done


Dynamic libraries:
0x00007ff77e020000 - 0x00007ff77e057000     C:\Program Files\Java\jdk1.8.0_102\bin\java.exe
0x00007ffb13b20000 - 0x00007ffb13ce1000     C:\Windows\SYSTEM32\ntdll.dll
0x00007ffb13110000 - 0x00007ffb131bd000     C:\Windows\system32\KERNEL32.DLL
0x00007ffb10220000 - 0x00007ffb10408000     C:\Windows\system32\KERNELBASE.dll
0x00007ffb13910000 - 0x00007ffb139b7000     C:\Windows\system32\ADVAPI32.dll
0x00007ffb13870000 - 0x00007ffb1390d000     C:\Windows\system32\msvcrt.dll
0x00007ffb12d30000 - 0x00007ffb12d8b000     C:\Windows\system32\sechost.dll
0x00007ffb12f80000 - 0x00007ffb1309c000     C:\Windows\system32\RPCRT4.dll
0x00007ffb13390000 - 0x00007ffb134e6000     C:\Windows\system32\USER32.dll
0x00007ffb12df0000 - 0x00007ffb12f76000     C:\Windows\system32\GDI32.dll
0x00007ffb0bbb0000 - 0x00007ffb0be24000     C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.10586.589_none_a2ddb3caa539acce\COMCTL32.dll
0x00007ffb10ff0000 - 0x00007ffb1126d000     C:\Windows\system32\combase.dll
0x00007ffb10600000 - 0x00007ffb1066a000     C:\Windows\system32\bcryptPrimitives.dll
0x00007ffb13ad0000 - 0x00007ffb13b0b000     C:\Windows\system32\IMM32.DLL
0x000000005b690000 - 0x000000005b761000     C:\Program Files\Java\jdk1.8.0_102\jre\bin\msvcr100.dll
0x000000005b770000 - 0x000000005c00a000     C:\Program Files\Java\jdk1.8.0_102\jre\bin\server\jvm.dll
0x00007ffb13b10000 - 0x00007ffb13b18000     C:\Windows\system32\PSAPI.DLL
0x00007ffb0bee0000 - 0x00007ffb0beea000     C:\Windows\SYSTEM32\VERSION.dll
0x00007ffb0cf30000 - 0x00007ffb0cf39000     C:\Windows\SYSTEM32\WSOCK32.dll
0x00007ffb0e7e0000 - 0x00007ffb0e803000     C:\Windows\SYSTEM32\WINMM.dll
0x00007ffb134f0000 - 0x00007ffb1355b000     C:\Windows\system32\WS2_32.dll
0x0000000002c40000 - 0x0000000002c6c000     C:\Windows\SYSTEM32\WINMMBASE.dll
0x00007ffb101d0000 - 0x00007ffb10213000     C:\Windows\system32\cfgmgr32.dll
0x000000005cd10000 - 0x000000005cd1f000     C:\Program Files\Java\jdk1.8.0_102\jre\bin\verify.dll
0x000000005cad0000 - 0x000000005caf9000     C:\Program Files\Java\jdk1.8.0_102\jre\bin\java.dll
0x000000005ccf0000 - 0x000000005cd06000     C:\Program Files\Java\jdk1.8.0_102\jre\bin\zip.dll
0x00007ffb116c0000 - 0x00007ffb12c1c000     C:\Windows\system32\SHELL32.dll
0x00007ffb10840000 - 0x00007ffb10e85000     C:\Windows\system32\windows.storage.dll
0x00007ffb13330000 - 0x00007ffb13382000     C:\Windows\system32\shlwapi.dll
0x00007ffb10170000 - 0x00007ffb1017f000     C:\Windows\system32\kernel.appcore.dll
0x00007ffb10430000 - 0x00007ffb104e5000     C:\Windows\system32\shcore.dll
0x00007ffb10180000 - 0x00007ffb101cb000     C:\Windows\system32\powrprof.dll
0x00007ffb10140000 - 0x00007ffb10154000     C:\Windows\system32\profapi.dll
0x00000005c9f70000 - 0x00000005c9f88000     C:\Users\Moe\Desktop\Projects\IntelligentCloud\IntelligentCloudLibrary\build\libs\main\shared\main.dll
0x00000003ff750000 - 0x00000003ff76a000     C:\cygwin64\bin\cyggcc_s-seh-1.dll
0x00000003febd0000 - 0x00000003fed22000     C:\cygwin64\bin\cygstdc++-6.dll
0x0000000180040000 - 0x0000000180610000     C:\cygwin64\bin\cygwin1.dll
0x00007ffb0cb00000 - 0x00007ffb0cc8c000     C:\Windows\SYSTEM32\dbghelp.dll

VM Arguments:
jvm_args: -Dfile.encoding=windows-1252 -Duser.country=US -Duser.language=en -Duser.variant 
java_command: Main
java_class_path (initial): C:\Users\Moe\Desktop\Projects\IntelligentCloud\IntelligentCloudApp\build\classes\main;C:\Users\Moe\Desktop\Projects\IntelligentCloud\IntelligentCloudApp\build\resources\main
Launcher Type: SUN_STANDARD

Environment Variables:
JAVA_HOME=C:\Program Files\Java\jdk1.8.0_102
PATH=C:\cygwin64\bin;C:\\PROGRA~1\\rti_connext_dds-5.2.3\;C:\\PROGRA~1\\rti_connext_dds-5.2.3\\bin;C:\Program Files\ArrayFire\v3\lib;C:\Program Files\Java\jdk1.8.0_102\bin
USERNAME=Moe
OS=Windows_NT
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 94 Stepping 3, GenuineIntel



---------------  S Y S T E M  ---------------

OS: Windows 10.0 , 64 bit Build 10586 (10.0.10586.589)

CPU:total 4 (4 cores per cpu, 1 threads per core) family 6 model 94 stepping 3, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, avx2, aes, clmul, erms, rtm, 3dnowpref, lzcnt, tsc, tscinvbit, bmi1, bmi2, adx

Memory: 4k page, physical 16647436k(9117744k free), swap 19137804k(9821056k free)

vm_info: Java HotSpot(TM) 64-Bit Server VM (25.102-b14) for windows-amd64 JRE (1.8.0_102-b14), built on Jun 22 2016 13:15:21 by "java_re" with MS VC++ 10.0 (VS2010)

time: Mon Sep 26 13:31:32 2016
elapsed time: 0 seconds (0d 0h 0m 0s)

@RustyX 可能是正确的。在单个进程中混合多个 C++ 运行时库不太可能有效(如果有的话)。

JVM 似乎依赖于 Microsoft C++ 运行时。添加 GNU C++ 运行时不太可能起作用。 MinGW 的此页面解决了一些问题:

不同编译器品牌创建的库的互操作性

...

尽管 GNU g++ 现在可以链接 MSVC C++ 库,并且可以生成 MSVC++ 兼容的库/DLL,这并不意味着它们将 由于 C++ 的动态特性,能够在运行时工作。一些 可能的原因是:

  • 简单的名称修改问题可以通过显式 .def 文件来规避。
  • 不同的结构对齐问题需要正确的编译器选项(-mms-bitfields,...)。
  • A fundamental conflict of underlying exception and memory models:
    • MSVC DLL 中的 new/delete 或 malloc/free 不会与 Cygwin newlib new/delete 或 malloc/free 协作。无法释放空间 它是在使用不同的 new/malloc 的函数中分配的。
    • MSVC DLL 引发的异常不会被 Cygwin 可执行文件捕获,反之亦然。
    • 慢速 GNU SJLJ 异常模型(在 GCC-3.x 及更早版本中使用)与 MSVC++ 模型兼容,但新的 DWARF2 模型( 将由 GCC-4.x 使用),将不兼容。

解决内存管理兼容性问题以及不同内存管理之间的冲突new/delete and malloc/free实施起来即使不是不可能,也会很困难。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

执行任何 IO/Stream 时 C++ JNI 崩溃/挂起 的相关文章

  • C 中的模仿函数重写

    具体来说 函数重写能够调用基本重写方法 这有两部分 一个是预编译的库代码 1 另一个是库的用户代码 2 我在这里实现了一个尽可能最小的经典 Person 和 Employee 示例 非常感谢了解 OOP 概念的铁杆 C 开发人员的回应 我正
  • 特定设备的不同字体大小

    我目前正在开发通用应用程序 我需要分别处理移动设备和桌面的文本框字体大小 我找到了一些方法 但都不能解决问题 使用 VisualStateManager 和 StateTrigger 为例
  • 如何使用泛型类型的 DataContractSerializer 编写自定义序列化器?

    我想编写一个自定义序列化器 用于将会话状态存储到Azure 缓存 预览版 这意味着这个自定义序列化器必须实现IDataCacheObjectSerializer 如果我错了 请告诉我 我需要编写这个自定义序列化程序的原因是我需要序列化一些包
  • 在“using”语句中使用各种类型 (C#)

    自从C usingstatements只是try finally dispose 的语法糖 为什么它接受多个对象仅当它们属于同一类型时 我不明白 因为它们需要的只是 IDisposable 如果它们都实现 IDisposable 应该没问题
  • Java ConcurrentModificationException [重复]

    这个问题在这里已经有答案了 当删除倒数第二个元素时 没有 ConcurrentModificationException List
  • 为什么重载方法在 ref 仅符合 CLS 方面有所不同

    公共语言规范对方法重载非常严格 仅允许根据其参数的数量和类型来重载方法 如果是泛型方法 则根据其泛型参数的数量进行重载 根据 csc 为什么此代码符合 CLS 无 CS3006 警告 using System assembly CLSCom
  • C# 中处理 SQL 死锁的模式?

    我正在用 C 编写一个访问 SQL Server 2005 数据库的应用程序 该应用程序是数据库密集型的 即使我尝试优化所有访问 设置适当的索引等 我预计迟早会遇到死锁 我知道为什么会发生数据库死锁 但我怀疑我能否在某个时候发布不发生死锁的
  • 从包含大量文件的目录中检索文件

    我的目录包含近 14 000 000 个 wav 格式的音频样本 所有普通存储 没有子目录 我想循环浏览文件 但是当我使用DirectoryInfo GetFiles 在该文件夹上 整个应用程序冻结了几分钟 可以用另一种方式完成吗 也许读取
  • 找不到符号assertEquals

    我正在尝试为计算器编写第一个单元测试 但 NetBeans 说它找不到该符号assertEquals和注释 Test 我应该包括一些东西吗 我正在使用 NetBeans 7 3 1 和 W7 package calculator impor
  • 如何在 VS Code 中为 CMake 项目设置 C/C++ IntelliSense?

    我正在尝试使用 libTooling 编写一个工具 我对其进行了设置 以便它可以使用 LLVM 文档中的示例进行编译 然而 C C IntelliSense 似乎不适用于 CMake 项目 我的工具位于
  • 无法通过 LINQ to Entities 使用某些功能?

    我正在尝试使用 LINQ 查询在项目上实现搜索功能 由于数据有时包含带有重音符号和其他符号的字符 因此我创建了一种方法来删除这些字符以进行搜索 这是我的代码 var addresses from a in db Addresses join
  • 理解 C++11 中的 std::atomic::compare_exchange_weak()

    bool compare exchange weak T expected T val compare exchange weak 是 C 11 中提供的比较交换原语之一 它是weak即使对象的值等于 它也会返回 falseexpected
  • 微软语音识别速度

    我正在使用微软的语音识别器开发一个小型练习应用程序 对于我正在做的事情来说 我似乎无法让它足够快地识别单个单词 我希望能够正常说话 系统将从我所说的内容中抓取 关键字 并生成一个字符串 目前我正在使用 5 个单词的自定义语法 红 蓝 黄 绿
  • 为什么C语言中可以使用多个分号?

    在 C 中我可以执行以下操作 int main printf HELLO WORLD 它有效 这是为什么 我个人的想法 分号是一个 NO OPERATION 来自维基百科 指示符 拥有一大串分号与拥有一个分号并告诉 C 语句已结束具有相同的
  • 如何将 CSV 文件读入 .NET 数据表

    如何将 CSV 文件加载到System Data DataTable 根据CSV文件创建数据表 常规 ADO net 功能是否允许这样做 我一直在使用OleDb提供者 但是 如果您正在读取具有数值的行 但希望将它们视为文本 则会出现问题 但
  • 如何强制执行特定的 UserControl 设计

    我正在编写一个基本用户控件 它将由一堆其他用户控件继承 我需要对所有这些后代控件强制执行某种设计 例如 顶部必须有几个按钮以及一个或两个标签 后代用户控件区域的其余部分可以自由放置任何内容 最初 我认为我可以将一个面板放到 Base Use
  • 程序退出后,TcpListener Socket 仍处于活动状态

    当我的程序退出时 我试图停止 TCP 侦听器 我不关心套接字或任何活动客户端套接字上当前活动的任何数据 套接字清理代码本质上是 try myServer Server Shutdown SocketShutdown Both catch E
  • Libgdx 和 Google 应用内购买结果

    我遵循了这些指示 https github com libgdx libgdx wiki Interfacing with platform specific code使用 ActionResolver 接口集成 Libgdx 和原生 An
  • 如何从函数返回矩阵(二维数组)? (C)

    我创建了一个生成宾果板的函数 我想返回宾果板 正如我没想到的那样 它不起作用 这是函数 int generateBoard int board N M i j fillNum Boolean exists True initilize se
  • 如何确定给定方法可以抛出哪些异常?

    我的问题和这个真的一样 找出 C 中方法可能抛出的异常 https stackoverflow com questions 264747 finding out what exceptions a method might throw in

随机推荐

  • 如何在npm中配置多个私有仓库和公共仓库?

    我想运行 npm install 并拥有多个存储库来获取依赖项 我想首先在公共 Nexus 上查找的逻辑 如果没有找到我的私人 Nexus 上的工件 I add npmrc为了这 registry https myRepo1 strict
  • 尝试在 ubuntu 上安装 pygame 出现错误

    我正在尝试使用 pip 安装 pygame 但每当我这样做时都会收到错误Command python setup py egg info failed with error code 1 in tmp pip build hZGMxh py
  • 如果程序集存在,C# 条件编译

    我有一个项目 其参考可能存在 也可能不存在 我有使用该引用的代码 并且仅当程序集存在时才编译它 我正在思考以下内容 if ASSEMBLY EXISTS AssemblyClass DoSomething endif 我可以在顶部放置 de
  • 如何生成具有精确矩的样本数据

    如何生成准确的数据 在 R 中我们可以选择使用rnorm从具有某些特征的总体中进行抽样 例如 平均值 0 标准差 1 但是我们如何获取数据exactly均值 0 标准差 1 这是一个简单的例子 我也对应用获取精确数据的更通用方法感兴趣 例如
  • Laravel 5:使用 csrf 强制验证 [GET] 请求

    默认情况下 Laravel 5 验证并匹配所有 POST 请求的 令牌 如何告诉 L5 也验证 GET PUT 和删除 请求 gt 阻止任何没有有效令牌的请求 thanks 您可以创建自己的中间件来处理它并替换默认的 Laravel ver
  • AngularJs错误无法读取未定义的属性“then”

    这是模块 function app Module Description angular module app 我有这个服务 function use strict angular module app factory homeservic
  • 在 C# 中使用 Windows 应用程序执行 http 方法

    有许多网站在表单提交时调用脚本并使用 HTTP POST 或 GET 传递参数 使用 Web 调试器我发现正在传递的参数 现在我希望通过我的 C Windows 应用程序做同样的事情 我怎样才能实现这样的功能 我目前正在 C 中使用 Htt
  • ggplot2 生成的切片图

    我想知道是否可以将图形分别切片为使用 ggsave 生成 的 png 文件 如果我不想使用默认的图例或标题并将其设置为 FALSE 则会留下大量空白 那么有没有一种 R 方法可以将文件剪切到图形本身上方和下方几个像素呢 提前谢谢 你可以改变
  • 使用 str.contains 忽略 NaN

    我想找到包含字符串的行 如下所示 DF DF col str contains foo 但是 这会失败 因为某些元素是 NaN ValueError 无法使用包含 NA NaN 值的向量进行索引 所以我诉诸于混淆 DF DF col not
  • 安装 OS X Mavericks 后出现 RMagick 错误

    我在 OS X Mountain Lion 中安装了 RMagick 并完美运行 我刚刚安装了 OS X Mavericks 当我尝试运行时rails s 我收到此错误 rvm gems ruby 2 0 0 p0 myapp gems a
  • BProlog 8.1 中的制表性能不均匀

    我用表格功能做了一些实验b prolog8 1 版本 我对观察到的性能感到非常惊讶 这是我使用的代码 它计算的数量Collatz steps N减少一些正整数所需的I向下1 table posInt CollatzSteps 2 remov
  • 尝试通过原始 IP 数据包发送数据时的 EMSGSIZE

    我的代码将原始 IP 数据包发送到12 12 12 12并失败 因为EMSGSIZE 我认为它根据以太网 MTU 限制我的数据包 但它应该发送 我尝试将数据包发送至127 0 0 1这工作得很好 但是当我将数据包发送到非本地 IP 时 就会
  • 具有多个分隔符的 sql-maven-plugin

    我正在使用 sql maven plugin 在多个数据库上执行一些 MySQL 脚本 我想在同一个 SQL 脚本中部署表 数据 触发器 事件和存储过程 我的行分隔符有问题 因为对于 INSERT 或 CREATE 我使用 但对于我的触发器
  • ServicePointManager.DefaultConnectionLimit 返回 Int32.MaxValue

    出于诊断目的 我正在记录 ServicePointManager DefaultConnectionLimit 然而奇怪的是 它似乎返回 Int32 MaxValue 即 2147483647 这似乎与MSDN 文档就此主题而言 Servi
  • 在信号处理的上下文中到底哪些变量需要 sig_atomic_t ?

    这是一个简单的玩具程序 使用volatile sig atomic t include
  • 将 PHP 与 asp.net / asp.net-mvc 集成的最佳方式

    巧合的是 这个问题在上周出现了两次 客户有一个想要保留的现有 PHP 网站 他们还拥有或即将拥有一些 ASP net 网页 希望将其集成到现有站点中 使其显示为单个站点 我们想到了以下几种可能性 使用 IFrame 将所有 html 菜单复
  • dbModel 读取资源在 Magento 版本 1.3.2.4 中未实现 Zend_Db_Adapter_Abstract

    我为我的 Magento 项目创建了一个自定义模块 该模块适用于 Magento 1 6 X 但是当我在 Magento 版本 1 3 2 4 中安装此扩展时 Magento 抛出以下错误 dbModel read resource doe
  • 下载一张带有 HTML 图像内容的笔记页面

    当我们使用 one note API 图像源获取 HTML 形式的页面内容时 图像源似乎无法正常工作 HTML 内容中图像源的末尾有一个 value 当一个笔记页面有图像时 我们该如何处理 Ex img 宽度 649 高度 587 src
  • Spark:使用scala从s3读取csv文件

    我正在编写一个 Spark 作业 尝试使用 scala 读取文本文件 以下内容在我的本地计算机上运行良好 val myFile myLocalPath myFile csv for line lt Source fromFile myFil
  • 执行任何 IO/Stream 时 C++ JNI 崩溃/挂起

    当我尝试编译 C 代码以在 JAVA 端使用时 我似乎遇到了一个大问题 当我尝试执行任何与 IO Stream Manipulation 相关的操作时 JVM 似乎崩溃了 有时 就像我每 10 次运行应用程序时 JNI 可以 100 处理所