首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在hadoop源代码中调试本机函数?

如何在hadoop源代码中调试本机函数?
EN

Stack Overflow用户
提问于 2015-11-08 12:38:11
回答 2查看 180关注 0票数 0

我试图通过使用eclipse调试hadoop源代码来理解它。在调试它时,我在这里遇到了一个名为start0()的本地函数:

http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b27/java/lang/Thread.java#Thread.start0%28%29

我是否可以使用eclipse“或任何外部工具”来调试它,或者至少可以读取此函数的源代码?

Hadoop是一个开放源码,因此它假定我可以访问和读取其中所有函数的代码,但我不知道如何访问和读取代码。

代码语言:javascript
复制
Note: my hadoop version : 1.2.1

编辑:我阅读了有关本机函数的内容,从我所读到的内容来看,包含本机函数的类应该包含这样的内容:

代码语言:javascript
复制
`// load DLL that contains static method
static {
System.loadLibrary("NativeDemo");
}`

但是hadoop中的线程类包含以下内容:

/* Make sure registerNatives is the first thing <clinit> does. */ 134 private static native void More ...registerNatives(); 135 static { 136 registerNatives(); 137 }

那么,我如何知道start0()函数链接到的库的名称呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-11-12 21:22:38

最后,我得到了start0()函数是java代码的一部分,而不是hadoop代码的一部分,所以它只是做/创建一个新线程来运行任务,对于hadoop开发,我们只需要知道:

Thread.start0最终创建了一个新的操作系统线程,并在新线程.中调用Thread.run()。

另外,在创建新线程之后调用的run函数如下:http://grepcode.com/file/repo1.maven.org/maven2/com.ning/metrics.collector/1.2.1/org/apache/hadoop/mapred/LocalJobRunner.java#LocalJobRunner.Job.run%28%29

票数 0
EN

Stack Overflow用户

发布于 2015-11-09 03:58:08

你总是可以得到源代码。示例配置文件,因为您的版本是这里

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33594034

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档