我目前正在编写一个 JNI 项目,在尝试运行我的 Java 代码时收到以下错误日志。它告诉我有问题的框架是一个 jvm.dll 框架,并且在尝试隔离问题时,我试图弄清楚我的问题到底在哪里(在 JVM 与我的 native 代码中)我附加了线程日志的一部分,如果需要可以附加其余部分。我还尝试重新安装 JVM。
A fatal error has been detected by the Java Runtime Environment:
EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x6d8fefb5, pid=720, tid=3128
JRE version: 6.0_21-b07 Java VM: Java HotSpot(TM) Client VM (17.0-b17 mixed mode, sharing windows-x86 ) Problematic frame: V [jvm.dll+0xfefb5]
--------------- T H R E A D ---------------
Current thread (0x02189000): JavaThread "main" [_thread_in_vm, id=3128, stack(0x02120000,0x02170000)]
siginfo: ExceptionCode=0xc0000005, reading address 0x00000000
Registers: EAX=0x00000000, EBX=0x02189118, ECX=0x02189000, EDX=0x6da2f76c ESP=0x0216fa84, EBP=0x0216facc, ESI=0x02189000, EDI=0x00000000 EIP=0x6d8fefb5, EFLAGS=0x00010246
Top of Stack: (sp=0x0216fa84) 0x0216fa84: 0216fb38 0216fae4 34497370 0216faa0 0x0216fa94:
6d8010e0 02189000 0216fd34 0216fad0 0x0216faa4: 6d906d09 02189000 00000006 00000004 0x0216fab4:
0216fb38 0216fae8 02189000 02189a08 0x0216fac4: 000004c4 6da2f76c 0216faf0 57669c1a 0x0216fad4:
02189118 0216fbf0 00000000 0216fb04 0x0216fae4: 0216fb04 cccccccc 0216fb04 0216fb38 0x0216faf4:
576699d3 02189118 0216fbf0 00000000Instructions: (pc=0x6d8fefb5) 0x6d8fefa5: 00 00 00 74 08 8d 4d f0 e8 1e 20 09 00 8b 7d 10 0x6d8fefb5:
8b 07 c7 45 e0 0c 00 00 00 8b 48 08 0f b7 51 2aStack: [0x02120000,0x02170000], sp=0x0216fa84, free space=13e0216f568k Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) V [jvm.dll+0xfefb5] C [PNMain.dll+0x19c1a] C [PNMain.dll+0x199d3] j PNMain.optimalSideTwist2(ILjava/lang/String;Lvtk/vtkPolyDataAlgorithm;DDDDDD)[D+0 j PNMain.rotateLeftRight(Z)[D+282 j PNMain.main([Ljava/lang/String;)V+92 v ~StubRoutines::call_stub V [jvm.dll+0xf3abc] V [jvm.dll+0x1865b1] V [jvm.dll+0xf3b3d] V [jvm.dll+0xfd385] V [jvm.dll+0x104fdd] C [javaw.exe+0x2155] C [javaw.exe+0x8614] C [kernel32.dll+0x13677] C [ntdll.dll+0x39d42] C [ntdll.dll+0x39d15]
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code) j PNMain.optimalSideTwist2(ILjava/lang/String;Lvtk/vtkPolyDataAlgorithm;DDDDDD)[D+0 j PNMain.rotateLeftRight(Z)[D+282 j PNMain.main([Ljava/lang/String;)V+92 v ~StubRoutines::call_stub
最佳答案
为了使您的调试更容易,我们可以排除 JVM 有问题(在 99.99% 的情况下这不是问题),请查看您的代码。首先简单地停止您的 JNI 调用并查看机制是否正确完成。然后在仔细检查所有内存分配和释放之后,开始慢慢添加代码片段。您可以使用调试器来访问您的代码,也可以这样做。
也许您可以将您的 DLL 缩减为产生问题的最小代码片段,然后将代码发布到此处供其他人运行并在遇到问题时查看它?
如果有帮助,导致崩溃的方法是 optimalSideTwist2。这可能不是导致问题的方法。如果您在不同的方法之间分配内存,您可能会释放不属于您的内存,或者您可能会覆盖内存。
关于java - 异常访问冲突 Java?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3500378/
类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc
我有一个包含模块的模型。我想在模块中覆盖模型的访问器方法。例如:classBlah这显然行不通。有什么想法可以实现吗? 最佳答案 您的代码看起来是正确的。我们正在毫无困难地使用这个确切的模式。如果我没记错的话,Rails使用#method_missing作为属性setter,因此您的模块将优先,阻止ActiveRecord的setter。如果您正在使用ActiveSupport::Concern(参见thisblogpost),那么您的实例方法需要进入一个特殊的模块:classBlah
我正在使用Sequel构建一个愿望list系统。我有一个wishlists和itemstable和一个items_wishlists连接表(该名称是续集选择的名称)。items_wishlists表还有一个用于facebookid的额外列(因此我可以存储opengraph操作),这是一个NOTNULL列。我还有Wishlist和Item具有续集many_to_many关联的模型已建立。Wishlist类也有:selectmany_to_many关联的选项设置为select:[:items.*,:items_wishlists__facebook_action_id].有没有一种方法可以
我真的很习惯使用Ruby编写以下代码:my_hash={}my_hash['test']=1Java中对应的数据结构是什么? 最佳答案 HashMapmap=newHashMap();map.put("test",1);我假设? 关于java-等价于Java中的RubyHash,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/22737685/
我正在学习Rails,并阅读了关于乐观锁的内容。我已将类型为integer的lock_version列添加到我的articles表中。但现在每当我第一次尝试更新记录时,我都会收到StaleObjectError异常。这是我的迁移:classAddLockVersionToArticle当我尝试通过Rails控制台更新文章时:article=Article.first=>#我这样做:article.title="newtitle"article.save我明白了:(0.3ms)begintransaction(0.3ms)UPDATE"articles"SET"title"='dwdwd
在Cooper的书BeginningRuby中,第166页有一个我无法重现的示例。classSongincludeComparableattr_accessor:lengthdef(other)@lengthother.lengthenddefinitialize(song_name,length)@song_name=song_name@length=lengthendenda=Song.new('Rockaroundtheclock',143)b=Song.new('BohemianRhapsody',544)c=Song.new('MinuteWaltz',60)a.betwee
我早就知道Ruby中的“常量”(即大写的变量名)不是真正常量。与其他编程语言一样,对对象的引用是唯一存储在变量/常量中的东西。(侧边栏:Ruby确实具有“卡住”引用对象不被修改的功能,据我所知,许多其他语言都没有提供这种功能。)所以这是我的问题:当您将一个值重新分配给常量时,您会收到如下警告:>>FOO='bar'=>"bar">>FOO='baz'(irb):2:warning:alreadyinitializedconstantFOO=>"baz"有没有办法强制Ruby抛出异常而不是打印警告?很难弄清楚为什么有时会发生重新分配。 最佳答案
我正在尝试使用boilerpipe来自JRuby。我看过guide从JRuby调用Java,并成功地将它与另一个Java包一起使用,但无法弄清楚为什么同样的东西不能用于boilerpipe。我正在尝试基本上从JRuby中执行与此Java等效的操作:URLurl=newURL("http://www.example.com/some-location/index.html");Stringtext=ArticleExtractor.INSTANCE.getText(url);在JRuby中试过这个:require'java'url=java.net.URL.new("http://www
我只想对我一直在思考的这个问题有其他意见,例如我有classuser_controller和classuserclassUserattr_accessor:name,:usernameendclassUserController//dosomethingaboutanythingaboutusersend问题是我的User类中是否应该有逻辑user=User.newuser.do_something(user1)oritshouldbeuser_controller=UserController.newuser_controller.do_something(user1,user2)我
什么是ruby的rack或python的Java的wsgi?还有一个路由库。 最佳答案 来自Python标准PEP333:Bycontrast,althoughJavahasjustasmanywebapplicationframeworksavailable,Java's"servlet"APImakesitpossibleforapplicationswrittenwithanyJavawebapplicationframeworktoruninanywebserverthatsupportstheservletAPI.ht