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和可执行
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 ...
stripped down header file which only contains the JFS on-disk data structures for Linux.
本人经过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.
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报告
junit-theories.zip,JUnit理论RunnerJUnit理论Runner——在理论方面支持泛型
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 ...
JavaScript
bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=5575120baf228fa8a319b45294f974979efe29d7, not stripped, ...
cmatrix: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux 2.6.32, BuildID[sha1]=caf5414b0673883a46087c66d2b2f5f42f04645f,...
安卓系统Ruby现在支持纸杯蛋糕 (Android 1.5) irbapp.apk 包含 libruby.so /sdcard/ruby 中的其他 ruby 脚本和共享库。 和,原生 ruby 命令 ruby: ELF 32-bit LSB executable, ARM, version 1 (SYSV), ...
西班牙电信这颗宝石对有一些技巧。 它根据区号、操作频段和定义的规则验证电话号码。...Return stripped telephone: YYXXXXXXXXtel.formatted # Return formatted telephone: (YY) XXXX-XXXXtel.ddd # R
We deliberately stripped out everything that might get in the way of learning whatever it is we’re working on at that point in the book. And the first time through, you need to begin at the ...