1. libjvm.so stripped
即:libjvm.so这个文件被处理过,很多符号调试信息被玻璃了。类似的apache等软件编译时也可以选择是否剥离调试信息。
剥离符号信息的意义在于可以减少当前模块的大小,减少加载后占用的内存大小;造成的影响时,jvm crash后,很多符号调试信息都看不到了,分析crash过程变得很复杂。
2. 查看libjvm情况:
查看命令:file /opt/.../java/jre/lib/amd64/server/libjvm.so
libjvm.so: ELF 64-bit LSB shared object, AMD x86-64, version 1 (SYSV), stripped
没有被stripped的则是not stripped
3. libjvm stripped造成的影响会导致attach不上core文件
命令: $jstack java core.24706
Attaching to core core.24706 from executable java, please wait...
Error attaching to core file: Can't attach to the core file
4. 查看具体找不到的符号
详见地址:https://gist.github.com/1525916
$ export LIBSAPROC_DEBUG=1
$ jstack -m $JAVA_HOME/bin/java core.11028
Attaching to core core.11028 from executable /opt/taobao/java/bin/java, please wait...
libsaproc DEBUG: Note header with n_type = 1 and n_descsz = 336
libsaproc DEBUG: got integer regset for lwp 11386
libsaproc DEBUG: integer regset
libsaproc DEBUG: r15 = 0x2aab79aac1b8
libsaproc DEBUG: r14 = 0x466290c0
libsaproc DEBUG: r13 = 0x0
libsaproc DEBUG: r12 = 0x4a
libsaproc DEBUG: rbp = 0x46619040
libsaproc DEBUG: rbx = 0x4a
libsaproc DEBUG: r11 = 0x2b0418151548
libsaproc DEBUG: r10 = 0xbc4
libsaproc DEBUG: r9 = 0x2aaaca680f48
libsaproc DEBUG: r8 = 0x46619070
libsaproc DEBUG: rax = 0x2b04181446a0
libsaproc DEBUG: rcx = 0x4a
libsaproc DEBUG: rdx = 0x0
libsaproc DEBUG: rsi = 0x466290c0
libsaproc DEBUG: rdi = 0x2aab79aac000
libsaproc DEBUG: orig_rax = 0xffffffffffffffff
libsaproc DEBUG: rip = 0x2b0417c60971
libsaproc DEBUG: cs = 0xe033
libsaproc DEBUG: eflags = 0x10206
libsaproc DEBUG: rsp = 0x46618fc0
libsaproc DEBUG: ss = 0xe02b
libsaproc DEBUG: fs_base = 0x0
libsaproc DEBUG: gs_base = 0x0
libsaproc DEBUG: ds = 0x0
libsaproc DEBUG: es = 0x0
libsaproc DEBUG: fs = 0x63
libsaproc DEBUG: gs = 0x0
libsaproc DEBUG: Note header with n_type = 3 and n_descsz = 136
libsaproc DEBUG: Note header with n_type = 6 and n_descsz = 256
libsaproc DEBUG: Note header with n_type = 1 and n_descsz = 336
libsaproc DEBUG: got integer regset for lwp 12741
libsaproc DEBUG: integer regset
libsaproc DEBUG: r15 = 0x2aab7a5db000
libsaproc DEBUG: r14 = 0x2aab7a5db000
...
libsaproc DEBUG: base = 0x7fffbaa67000 size = 86016
libsaproc DEBUG: lookup failed for symbol 'UseSharedSpaces' in obj '/opt/taobao/install/jdk-1.6.0_17/jre/lib/amd64/server/libjvm.so'
libsaproc DEBUG: can't lookup 'UseSharedSpaces' flag
Error attaching to core file: Can't attach to the core file
$
分享到:
相关推荐
今天同事问我,如何判断一个.so是否是debug编译的。... 我对debug和release的.so运行file后,得出几乎相同的输出, 都是not stripped. 所以我算是误导同事了。 根据所言, debug/release的区别更多的表现在.so和可执行
标题“jfs.rar_Stripped Down”表明这是一份精简版的JFS(Journaled File System)头文件,专为Linux操作系统设计。描述提到它仅包含JFS在磁盘上的数据结构,这意味着它去除了不必要的部分,可能用于简化理解和分析...
libhadoop.so.1.0.0: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, not stripped 下面是查询的详细OS版本信息 #uname -a Linux F23-B4-E2-B3 2.6.32.12-0.7-default #1 SMP ...
arm-linux-gnueabihf-gcc -v ...output: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux 3.2.0, with debug_info, not stripped
libdonsee.so: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, BuildID[sha1]=4cb43bd31cc828a97e94d4c3f0bc5410e3598457, with debug_info, not stripped #file output output...
本人经过4个小时顺利将hadoop官方的32位编译为64位,通过测试可用,方便在64位linux安装...lib//native/libhdfs.so.0.0.0: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, not stripped
mg2stripped.cpp
判断Unix系统及库文件是32位还是64位的详解 ...libnss1_files-2.2.4.so: ELF 32-bit LSB shared object, Intel 80386, version 1, not stripped # file libtrsbean.so libtrsbean.so: ELF 64-bit LSB shar
参考The .so files are also available in the stripped_native_libs and cmake folder.
《深入理解JUnit理论Runner:以开源项目"it-tidalwave-northernwind-model-core-stripped-1.1-ALPHA-2.zip"中的junit-theories为例》 在Java测试领域,JUnit作为最广泛使用的单元测试框架,一直扮演着核心角色。...
例如,`file`命令显示的"ELF 32-bit LSB executable, Intel 80386, version 1, dynamically linked (uses shared libs), not stripped."表明这是一个32位的小端字节序的Intel x86架构的ELF可执行文件,动态链接,...
"Stripped Data Table Snippet"可能是指一个优化过的数据表片段,它被用于提高游戏性能。在这个场景下,"VM Stripped Data Table Snippet.zip"很可能是包含了一段优化过的JavaScript代码,用于在游戏中高效地处理...
ikvm-0.42.0.3.zip ikvmbin-0.42.0.3.zip openjdk6-b16-stripped.zip 基于.NET的Java虚拟机意味着我们可以让Java程序跑在.NET上,可以通过虚拟机这个中介让Java程序和.NET应用程序一起协同工作。更难能可贵的是,...
此文档定义了一个网络协议,高级消息队列协议(AMQP), 它使一致的客户端程序可以与一致的消息中间件服务器通信. 我们面对这个领域有经验的技术读者,同时还提供了足够的规范和指南,一个合适的技术工程师可以根据这些...
Neural Reverse Engineering of Stripped Binaries,剥离二进制的神经逆向工程论文,小组做的ppt报告
ubuntu下交叉编译成功的ARM版本OpenCV3.4.10 libopencv_core.so.3.4.10: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, not stripped
用法 $ node index.js file.geojson > file.stripped.geojson或者: $ node index.js -o file.stripped.geojson file.geojson例子从: { " type " : " FeatureCollection " , " features " : [ { " type " : " ...
Table of Contents Summary of GDB . . . . . . . . ....Free software ....Contributors to GDB ....A Sample GDB Session ....Loading the Executable ....Setting Display width....Setting Breakpoints ....Running the executable ...
hello.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), not stripped ``` 通过以上的介绍和实例分析,我们可以看到ELF文件格式的强大和灵活性,它是...