Skip to content

Instantly share code, notes, and snippets.

@rednaxelafx
Created April 17, 2017 17:37
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save rednaxelafx/99623329d8ecb62336481c62ca2f1bcc to your computer and use it in GitHub Desktop.
Save rednaxelafx/99623329d8ecb62336481c62ca2f1bcc to your computer and use it in GitHub Desktop.
Figuring out what bytecode scala.Predef$.augmentString corresponded to
$ sudo $JAVA_HOME/bin/java -cp $JAVA_HOME/lib/sa-jdi.jar sun.jvm.hotspot.CLHSDB
Password:
hsdb> attach 15168
Attaching to process 15168, please wait...
hsdb> class scala.Predef$
scala/Predef$ @0x00000007c003eb60
hsdb> print 0x00000007c003eb60
public final class scala.Predef$ @0x00000007c003eb60
Super Class
public abstract class scala.LowPriorityImplicits @0x00000007c003e8c0
Interfaces
public abstract interface scala.DeprecatedPredef @0x00000007c003e6d8
Fields
public static final scala.Predef$ MODULE$; (offset = 104)
private final scala.collection.immutable.Map$ Map; (offset = 12)
private final scala.collection.immutable.Set$ Set; (offset = 16)
private final scala.reflect.ClassManifestFactory$ ClassManifest; (offset = 20)
private final scala.reflect.ManifestFactory$ Manifest; (offset = 24)
private final scala.reflect.NoManifest$ NoManifest; (offset = 28)
private final scala.collection.generic.CanBuildFrom StringCanBuildFrom; [signature Lscala/collection/generic/CanBuildFrom<Ljava/lang/String;Ljava/lang/Object;Ljava/lang/String;>;] (offset = 32)
private final scala.Predef$$less$colon$less singleton_$less$colon$less; [signature Lscala/Predef$$less$colon$less<Ljava/lang/Object;Ljava/lang/Object;>;] (offset = 36)
public final scala.Predef$$eq$colon$eq scala$Predef$$singleton_$eq$colon$eq; [signature Lscala/Predef$$eq$colon$eq<Ljava/lang/Object;Ljava/lang/Object;>;] (offset = 40)
Methods
private void <init>() @0x0000000104cc11d8;
static void <clinit>() @0x0000000104cbd490;
public void println(java.lang.Object) @0x0000000104cbf968;
public void println() @0x0000000104cbf8b8;
public java.lang.Object identity(java.lang.Object) [signature <A:Ljava.lang.Object;>(TA;)TA;] @0x0000000104cbe850;
public void print(java.lang.Object) @0x0000000104cbf810;
public java.lang.String readLine(java.lang.String, scala.collection.Seq) [signature (Ljava.lang.String;Lscala.collection.Seq<Ljava.lang.Object;>;)Ljava.lang.String;] @0x0000000104cbda10;
public java.lang.String readLine() @0x0000000104cbd950;
public int readInt() @0x0000000104cbdd30;
public char readChar() @0x0000000104cbdc90;
public void printf(java.lang.String, scala.collection.Seq) [signature (Ljava.lang.String;Lscala.collection.Seq<Ljava.lang.Object;>;)V] @0x0000000104cbfa30;
public scala.runtime.Nothing$ error(java.lang.String) @0x0000000104cbea60;
public float readFloat() @0x0000000104cbde70;
public scala.collection.immutable.Map$ Map() @0x0000000104cbe310;
public scala.collection.immutable.Set$ Set() @0x0000000104cbe3b0;
public scala.reflect.ClassManifestFactory$ ClassManifest() @0x0000000104cbe450;
public scala.reflect.ManifestFactory$ Manifest() @0x0000000104cbe4f0;
public scala.reflect.NoManifest$ NoManifest() @0x0000000104cbe590;
public scala.collection.generic.CanBuildFrom StringCanBuildFrom() [signature ()Lscala.collection.generic.CanBuildFrom<Ljava.lang.String;Ljava.lang.Object;Ljava.lang.String;>;] @0x0000000104cbf600;
public java.lang.Object any2ArrowAssoc(java.lang.Object) [signature <A:Ljava.lang.Object;>(TA;)TA;] @0x0000000104cbd540;
public java.lang.Object any2Ensuring(java.lang.Object) [signature <A:Ljava.lang.Object;>(TA;)TA;] @0x0000000104cbd5f0;
public java.lang.Object any2stringfmt(java.lang.Object) [signature (Ljava.lang.Object;)Ljava.lang.Object;] @0x0000000104cbd6a0;
public java.lang.Throwable exceptionWrapper(java.lang.Throwable) @0x0000000104cbd750;
public java.lang.CharSequence seqToCharSequence(scala.collection.IndexedSeq) [signature (Lscala.collection.IndexedSeq<Ljava.lang.Object;>;)Ljava.lang.CharSequence;] @0x0000000104cbd800;
public java.lang.CharSequence arrayToCharSequence(char[]) @0x0000000104cbd8b0;
public boolean readBoolean() @0x0000000104cbdab0;
public byte readByte() @0x0000000104cbdb50;
public short readShort() @0x0000000104cbdbf0;
public long readLong() @0x0000000104cbddd0;
public double readDouble() @0x0000000104cbdf10;
public scala.collection.immutable.List readf(java.lang.String) [signature (Ljava.lang.String;)Lscala.collection.immutable.List<Ljava.lang.Object;>;] @0x0000000104cbdfc0;
public java.lang.Object readf1(java.lang.String) @0x0000000104cbe070;
public scala.Tuple2 readf2(java.lang.String) [signature (Ljava.lang.String;)Lscala.Tuple2<Ljava.lang.Object;Ljava.lang.Object;>;] @0x0000000104cbe120;
public scala.Tuple3 readf3(java.lang.String) [signature (Ljava.lang.String;)Lscala.Tuple3<Ljava.lang.Object;Ljava.lang.Object;Ljava.lang.Object;>;] @0x0000000104cbe1d0;
public java.lang.Class classOf() [signature <T:Ljava.lang.Object;>()Ljava.lang.Class<TT;>;] @0x0000000104cbe270;
public scala.reflect.Manifest manifest(scala.reflect.Manifest) [signature <T:Ljava.lang.Object;>(Lscala.reflect.Manifest<TT;>;)Lscala.reflect.Manifest<TT;>;] @0x0000000104cbe640;
public scala.reflect.ClassTag classManifest(scala.reflect.ClassTag) [signature <T:Ljava.lang.Object;>(Lscala.reflect.ClassTag<TT;>;)Lscala.reflect.ClassTag<TT;>;] @0x0000000104cbe6f0;
public scala.reflect.OptManifest optManifest(scala.reflect.OptManifest) [signature <T:Ljava.lang.Object;>(Lscala.reflect.OptManifest<TT;>;)Lscala.reflect.OptManifest<TT;>;] @0x0000000104cbe7a0;
public java.lang.Object implicitly(java.lang.Object) [signature <T:Ljava.lang.Object;>(TT;)TT;] @0x0000000104cbe900;
public java.lang.Object locally(java.lang.Object) [signature <T:Ljava.lang.Object;>(TT;)TT;] @0x0000000104cbe9b0;
public void assert(boolean) @0x0000000104cbeb18;
public final void assert(boolean, scala.Function0) [signature (ZLscala.Function0<Ljava.lang.Object;>;)V] @0x0000000104cbebf8;
public final void assume(boolean, scala.Function0) [signature (ZLscala.Function0<Ljava.lang.Object;>;)V] @0x0000000104cbed90;
public void assume(boolean) @0x0000000104cbecb0;
public final void require(boolean, scala.Function0) [signature (ZLscala.Function0<Ljava.lang.Object;>;)V] @0x0000000104cbef28;
public void require(boolean) @0x0000000104cbee48;
public scala.runtime.Nothing$ $qmark$qmark$qmark() @0x0000000104cbefd0;
public java.lang.Object ArrowAssoc(java.lang.Object) [signature <A:Ljava.lang.Object;>(TA;)TA;] @0x0000000104cbf080;
public java.lang.Object Ensuring(java.lang.Object) [signature <A:Ljava.lang.Object;>(TA;)TA;] @0x0000000104cbf130;
public java.lang.Object StringFormat(java.lang.Object) [signature <A:Ljava.lang.Object;>(TA;)TA;] @0x0000000104cbf1e0;
public java.lang.Object StringAdd(java.lang.Object) @0x0000000104cbf290;
public java.lang.Object any2stringadd(java.lang.Object) [signature <A:Ljava.lang.Object;>(TA;)TA;] @0x0000000104cbf340;
public java.lang.Throwable RichException(java.lang.Throwable) @0x0000000104cbf3f0;
public scala.Predef$SeqCharSequence SeqCharSequence(scala.collection.IndexedSeq) [signature (Lscala.collection.IndexedSeq<Ljava.lang.Object;>;)Lscala.Predef$SeqCharSequence;] @0x0000000104cbf4a8;
public scala.Predef$ArrayCharSequence ArrayCharSequence(char[]) @0x0000000104cbf558;
public java.lang.String augmentString(java.lang.String) @0x0000000104cbf6b0;
public java.lang.String unaugmentString(java.lang.String) @0x0000000104cbf760;
public scala.Tuple2 tuple2ToZippedOps(scala.Tuple2) [signature <T1:Ljava.lang.Object;T2:Ljava.lang.Object;>(Lscala.Tuple2<TT1;TT2;>;)Lscala.Tuple2<TT1;TT2;>;] @0x0000000104cbfae0;
public scala.Tuple3 tuple3ToZippedOps(scala.Tuple3) [signature <T1:Ljava.lang.Object;T2:Ljava.lang.Object;T3:Ljava.lang.Object;>(Lscala.Tuple3<TT1;TT2;TT3;>;)Lscala.Tuple3<TT1;TT2;TT3;>;] @0x0000000104cbfb90;
public scala.collection.mutable.ArrayOps genericArrayOps(java.lang.Object) [signature <T:Ljava.lang.Object;>(Ljava.lang.Object;)Lscala.collection.mutable.ArrayOps<TT;>;] @0x0000000104cbfd48;
public scala.collection.mutable.ArrayOps booleanArrayOps(boolean[]) [signature ([Z)Lscala.collection.mutable.ArrayOps<Ljava.lang.Object;>;] @0x0000000104cbfe00;
public scala.collection.mutable.ArrayOps byteArrayOps(byte[]) [signature ([B)Lscala.collection.mutable.ArrayOps<Ljava.lang.Object;>;] @0x0000000104cbfeb8;
public scala.collection.mutable.ArrayOps charArrayOps(char[]) [signature ([C)Lscala.collection.mutable.ArrayOps<Ljava.lang.Object;>;] @0x0000000104cbff70;
public scala.collection.mutable.ArrayOps doubleArrayOps(double[]) [signature ([D)Lscala.collection.mutable.ArrayOps<Ljava.lang.Object;>;] @0x0000000104cc0028;
public scala.collection.mutable.ArrayOps floatArrayOps(float[]) [signature ([F)Lscala.collection.mutable.ArrayOps<Ljava.lang.Object;>;] @0x0000000104cc00e0;
public scala.collection.mutable.ArrayOps intArrayOps(int[]) [signature ([I)Lscala.collection.mutable.ArrayOps<Ljava.lang.Object;>;] @0x0000000104cc0198;
public scala.collection.mutable.ArrayOps longArrayOps(long[]) [signature ([J)Lscala.collection.mutable.ArrayOps<Ljava.lang.Object;>;] @0x0000000104cc0250;
public scala.collection.mutable.ArrayOps shortArrayOps(short[]) [signature ([S)Lscala.collection.mutable.ArrayOps<Ljava.lang.Object;>;] @0x0000000104cc03c0;
public scala.collection.mutable.ArrayOps unitArrayOps(scala.runtime.BoxedUnit[]) [signature ([Lscala.runtime.BoxedUnit;)Lscala.collection.mutable.ArrayOps<Lscala.runtime.BoxedUnit;>;] @0x0000000104cc0478;
public java.lang.Byte byte2Byte(byte) @0x0000000104cc0528;
public java.lang.Short short2Short(short) @0x0000000104cc05d8;
public java.lang.Character char2Character(char) @0x0000000104cc0688;
public java.lang.Integer int2Integer(int) @0x0000000104cc0738;
public java.lang.Long long2Long(long) @0x0000000104cc07e8;
public java.lang.Float float2Float(float) @0x0000000104cc0898;
public java.lang.Double double2Double(double) @0x0000000104cc0948;
public java.lang.Boolean boolean2Boolean(boolean) @0x0000000104cc09f8;
public byte Byte2byte(java.lang.Byte) @0x0000000104cc0aa8;
public short Short2short(java.lang.Short) @0x0000000104cc0b58;
public char Character2char(java.lang.Character) @0x0000000104cc0c08;
public int Integer2int(java.lang.Integer) @0x0000000104cc0cb8;
public long Long2long(java.lang.Long) @0x0000000104cc0d68;
public float Float2float(java.lang.Float) @0x0000000104cc0e18;
public double Double2double(java.lang.Double) @0x0000000104cc0ec8;
public boolean Boolean2boolean(java.lang.Boolean) @0x0000000104cc0f78;
public scala.Predef$$less$colon$less $conforms() [signature <A:Ljava.lang.Object;>()Lscala.Predef$$less$colon$less<TA;TA;>;] @0x0000000104cc1020;
public scala.Predef$$less$colon$less conforms() [signature <A:Ljava.lang.Object;>()Lscala.Predef$$less$colon$less<TA;TA;>;] @0x0000000104cc10c8;
public scala.collection.mutable.ArrayOps refArrayOps(java.lang.Object[]) [signature <T:Ljava.lang.Object;>([TT;)Lscala.collection.mutable.ArrayOps<TT;>;] @0x0000000104cc0308;
Constant Pool
Constant Pool of [public final class scala.Predef$ @0x00000007c003eb60] @0x0000000104cbaeb8
hsdb> jdis 0x0000000104cbf6b0
public java.lang.String augmentString(java.lang.String) @0x0000000104cbf6b0
Holder Class
public final class scala.Predef$ @0x00000007c003eb60
Bytecode
line bci bytecode
308 0 aload_1
308 1 areturn
Constant Pool
Constant Pool of [public final class scala.Predef$ @0x00000007c003eb60] @0x0000000104cbaeb8
hsdb>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment