<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Helvetica,sans-serif;" dir="ltr">
<p style="margin-top:0;margin-bottom:0">Hi Andrea</p>
<p style="margin-top:0;margin-bottom:0"><br>
</p>
<p style="margin-top:0;margin-bottom:0">Sure, here is the link  <a href="https://drive.google.com/file/d/1YCVXBbY5sieMFA5mMK89XdWEGAO7lGai/view?usp=sharing" class="OWAAutoLink" id="LPlnk429097" previewremoved="true">https://drive.google.com/file/d/1YCVXBbY5sieMFA5mMK89XdWEGAO7lGai/view?usp=sharing</a></p>
<p style="margin-top:0;margin-bottom:0"><br>
</p>
<p style="margin-top:0;margin-bottom:0">I modified code in example/smoke/src-inst/<span>DiSLClass.java</span> and <span>build-example.xml</span></p>
<p style="margin-top:0;margin-bottom:0"><span><br>
</span></p>
<p style="margin-top:0;margin-bottom:0"><span>Cheers</span></p>
<p style="margin-top:0;margin-bottom:0"><span>Li</span></p>
</div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> Disl-user <disl-user-bounces@d3s.mff.cuni.cz> on behalf of Andrea Rosa <andrea.rosa@usi.ch><br>
<b>Sent:</b> Thursday, February 14, 2019 11:33:49 AM<br>
<b>To:</b> disl-user@d3s.mff.cuni.cz<br>
<b>Subject:</b> Re: [DiSL-user] Instrument all classes</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText">Hi Li,<br>
<br>
would you mind sharing with us a tarball with the failing instrumentation?<br>
<br>
Thanks,<br>
Andrea<br>
<br>
------------<br>
Andrea Rosà<br>
Postdoctoral Researcher<br>
Faculty of Informatics - Office SI-205<br>
Università della Svizzera italiana (USI)<br>
Via G. Buffi 13<br>
CH-6904 Lugano<br>
Switzerland<br>
(e) andrea.rosa@usi.ch<<a href="mailto:andrea.rosa@usi.ch">mailto:andrea.rosa@usi.ch</a>><br>
(p) +41 58 666 4455 ext. 2183<br>
(w) <a href="http://www.inf.usi.ch/phd/rosaa/">http://www.inf.usi.ch/phd/rosaa/</a><br>
<br>
On 13 Feb 2019, at 23:26, Sui, Li <L.Sui@massey.ac.nz<mailto:L.Sui@massey.ac.nz>> wrote:<br>
<br>
Hi Lubomir<br>
<br>
I trying to construct a call graph dynamically. The scope of the analysis is Java Class library+application. So I would like to include classes in JDK as many as possible.<br>
I believe the bottom layer of DiSL can fully instrument JDK, is it right? It seems I have to implement something similar to that?<br>
<br>
Cheers<br>
Li<br>
________________________________<br>
From: Lubomír Bulej <bulej@d3s.mff.cuni.cz<mailto:bulej@d3s.mff.cuni.cz>><br>
Sent: Wednesday, February 13, 2019 9:49:54 PM<br>
To: Sui, Li<br>
Cc: disl-user@d3s.mff.cuni.cz<mailto:disl-user@d3s.mff.cuni.cz><br>
Subject: Re: [DiSL-user] Instrument all classes<br>
<br>
Hi Li,<br>
<br>
while DiSL can instrument whatever you want, JVM can be quite picky about some<br>
of the classes in the Java Class Library so when using DiSL alone, the<br>
exclusion list may need to be a bit more extensive.<br>
<br>
Can you share a bit of what do you want your instrumentation to do? Chances<br>
are that have tried that before and can help in other ways if not with<br>
debugging, which is not easy to do with the JVM crashing.<br>
<br>
Can you get the instrumentation to work if you instrument your application<br>
only, i.e., limit scope to the application package?<br>
<br>
Only then I would try to slowly extend the scope of the instrumentation, first<br>
excluding packages such as java.lang.*.*, java.security.*.*, sun.misc.*.*,<br>
sun.reflect.*.* and then try reduce exclusion scope.<br>
<br>
<br>
Best regards,<br>
Lubomir<br>
<br>
<br>
On 12/02/2019 21:46, Sui, Li wrote:<br>
> Hi Andrea<br>
><br>
><br>
> I still get the error with "-noverify" flag. Does DiSL require a specific JVM<br>
> version? I tested the code on oracle Jdk 1.8_144<br>
><br>
><br>
> Cheers<br>
><br>
> Li<br>
><br>
> ------------------------------------------------------------------------------<br>
> *From:* Disl-user <disl-user-bounces@d3s.mff.cuni.cz<mailto:disl-user-bounces@d3s.mff.cuni.cz>> on behalf of Andrea Rosa<br>
> <andrea.rosa@usi.ch<mailto:andrea.rosa@usi.ch>><br>
> *Sent:* Tuesday, February 12, 2019 8:26:50 PM<br>
> *To:* disl-user@d3s.mff.cuni.cz<mailto:disl-user@d3s.mff.cuni.cz><br>
> *Subject:* Re: [DiSL-user] Instrument all classes<br>
><br>
> Hi Li,<br>
><br>
> the error looks related to the bytecode verifier.<br>
><br>
> Please try disabling it, by adding the “-noverify” flag to the application<br>
> process.<br>
><br>
> Cheers,<br>
> Andrea<br>
><br>
> ------------<br>
> Andrea Rosà<br>
> Postdoctoral Researcher<br>
> Faculty of Informatics - Office SI-205<br>
> Università della Svizzera italiana (USI)<br>
> Via G. Buffi 13<br>
> CH-6904 Lugano<br>
> Switzerland<br>
> (e) andrea.rosa@usi.ch<<a href="mailto:andrea.rosa@usi.ch><mailto:andrea.rosa@usi.ch">mailto:andrea.rosa@usi.ch><mailto:andrea.rosa@usi.ch</a>><br>
> (p) +41 58 666 4455 ext. 2183<br>
> (w) <a href="http://www.inf.usi.ch/phd/rosaa/">http://www.inf.usi.ch/phd/rosaa/</a><br>
><br>
> On 12 Feb 2019, at 03:44, Sui, Li<br>
> <L.Sui@massey.ac.nz<mailto:L.Sui@massey.ac.nz><mailto:L.Sui@massey.ac.nz>> wrote:<br>
><br>
> Hi Andrea<br>
><br>
> I added java.lang Object* to the exclusion list. I used the "smoke" example<br>
> and change to scope="*"<br>
><br>
><br>
><br>
>      [exec] dislserver: error communicating with client: unexpected end of<br>
> streamError occurred during initialization of VM<br>
>      [exec]<br>
>      [exec] dislreserver: fatal error:<br>
> java.io.EOFExceptionjava.lang.VerifyError: Bad type on operand stack<br>
>      [exec]<br>
>      [exec] Exception Details:<br>
>      [exec]   Location: at<br>
> java.io.DataInputStream.readByte(DataInputStream.java:267)<br>
>      [exec]<br>
>      [exec]<br>
> sun/reflect/ReflectionFactory.hasStaticInitializerForSerialization(Ljava/lang/Class;)Z<br>
> @142: invokespecial<br>
>      [exec]   Reason: at<br>
> ch.usi.dag.dislreserver.DiSLREServer.processRequests(DiSLREServer.java:101)<br>
>      [exec]<br>
>      [exec]     Type 'java/lang/Object' (current frame, stack[3]) is not<br>
> assignable to 'java/lang/Throwable' at<br>
> ch.usi.dag.dislreserver.DiSLREServer.run(DiSLREServer.java:76)<br>
>      [exec]   Current Frame:<br>
>      [exec]<br>
>      [exec]     bci: @142 at<br>
> ch.usi.dag.dislreserver.DiSLREServer.main(DiSLREServer.java:58)<br>
>      [exec]<br>
>      [exec]<br>
>      [exec]     flags: { }<br>
>      [exec]     locals: { 'sun/reflect/ReflectionFactory', 'java/lang/Class',<br>
> 'java/lang/reflect/Method', 'java/lang/Object' }<br>
>      [exec]     stack: { uninitialized 134, uninitialized 134,<br>
> 'java/lang/String', 'java/lang/Object' }<br>
>      [exec]   Bytecode:<br>
>      [exec]     0x0000000: b800 249a 008f b800 29b2 002f 1231 b600<br>
>      [exec]     0x0000010: 37b8 003a a700 16b2 003d 123f b600 3759<br>
>      [exec]     0x0000020: b600 4411 029a b800 48bf b201 8c4d 2cc7<br>
>      [exec]     0x0000030: 0042 1301 8e13 0190 04bd 00a6 5903 12a6<br>
>      [exec]     0x0000040: 53b6 0157 4d2c 04b6 0164 2cb3 018c a700<br>
>      [exec]     0x0000050: 234e bb01 6e59 bb01 9259 b701 9313 0195<br>
>      [exec]     0x0000060: b601 9913 018e b601 9cb6 019f 2db7 0173<br>
>      [exec]     0x0000070: bf2c 0104 bd00 0459 032b 53b6 01a3 c001<br>
>      [exec]     0x0000080: a5b6 01a8 ac4e bb01 6e59 1301 aa2d b701<br>
>      [exec]     0x0000090: 73bf b201 8c4d 2cc7 0042 1301 8e13 0190<br>
>      [exec]     0x00000a0: 04bd 00a6 5903 12a6 53b6 0157 4d2c 04b6<br>
>      [exec]     0x00000b0: 0164 2cb3 018c a700 234e bb01 6e59 bb01<br>
>      [exec]     0x00000c0: 9259 b701 9313 0195 b601 9913 018e b601<br>
>      [exec]     0x00000d0: 9cb6 019f 2db7 0173 bf2c 0104 bd00 0459<br>
>      [exec]     0x00000e0: 032b 53b6 01a3 c001 a5b6 01a8 ac4e bb01<br>
>      [exec]     0x00000f0: 6e59 1301 aa2d b701 73bf<br>
>      [exec]   Exception Handler Table:<br>
>      [exec]     bci [6, 23] => handler: 23<br>
>      [exec]     bci [113, 132] => handler: 133<br>
>      [exec]     bci [113, 132] => handler: 133<br>
>      [exec]     bci [50, 78] => handler: 81<br>
>      [exec]     bci [154, 182] => handler: 185<br>
>      [exec]     bci [217, 236] => handler: 237<br>
>      [exec]     bci [217, 236] => handler: 237<br>
>      [exec]   Stackmap Table:<br>
>      [exec]     same_locals_1_stack_item_frame(@23,Object[#65])<br>
>      [exec]     same_frame(@42)<br>
>      [exec]<br>
> full_frame(@81,{Object[#2],Object[#166],Object[#109]},{Object[#271]})<br>
>      [exec]     same_frame(@113)<br>
>      [exec]     same_locals_1_stack_item_frame(@133,Object[#4])<br>
>      [exec]     chop_frame(@146,1)<br>
>      [exec]     full_frame(@185,{Object[#2],Object[#166],Object[<br>
>      [exec] at<br>
> sun.reflect.ReflectionFactory$GetReflectionFactoryAction.run(ReflectionFactory.java:105)<br>
>      [exec] at<br>
> sun.reflect.ReflectionFactory$GetReflectionFactoryAction.run(ReflectionFactory.java:102)<br>
>      [exec] at java.security.AccessController.doPrivileged(Native Method)<br>
>      [exec] at<br>
> java.lang.reflect.AccessibleObject.<clinit>(AccessibleObject.java:173)<br>
>      [exec]<br>
><br>
> Cheers<br>
><br>
> Li<br>
> ________________________________<br>
> From: Disl-user<br>
> <disl-user-bounces@d3s.mff.cuni.cz<mailto:disl-user-bounces@d3s.mff.cuni.cz><mailto:disl-user-bounces@d3s.mff.cuni.cz>><br>
> on behalf of Andrea Rosa <andrea.rosa@usi.ch<mailto:andrea.rosa@usi.ch><mailto:andrea.rosa@usi.ch>><br>
> Sent: Monday, February 11, 2019 9:14:51 PM<br>
> To: disl-user@d3s.mff.cuni.cz<mailto:disl-user@d3s.mff.cuni.cz><mailto:disl-user@d3s.mff.cuni.cz><br>
> Subject: Re: [DiSL-user] Instrument all classes<br>
><br>
> Hi Li,<br>
><br>
> please try to exclude java.lang.Object from instrumentation, by adding<br>
> “java.lang.Object.*" to the exclusion list.<br>
> Does it solve the problem? If not, could you please post a stack trace?<br>
><br>
> Thanks,<br>
> Andrea<br>
><br>
> ------------<br>
> Andrea Rosà<br>
> Postdoctoral Researcher<br>
> Faculty of Informatics - Office SI-205<br>
> Università della Svizzera italiana (USI)<br>
> Via G. Buffi 13<br>
> CH-6904 Lugano<br>
> Switzerland<br>
> (e) andrea.rosa@usi.ch<<a href="mailto:andrea.rosa@usi.ch><mailto:andrea.rosa@usi.ch><mailto:andrea.rosa@usi.ch">mailto:andrea.rosa@usi.ch><mailto:andrea.rosa@usi.ch><mailto:andrea.rosa@usi.ch</a>><br>
> (p) +41 58 666 4455 ext. 2183<br>
> (w) <a href="http://www.inf.usi.ch/phd/rosaa/">http://www.inf.usi.ch/phd/rosaa/</a><br>
><br>
> On 10 Feb 2019, at 22:31, Sui, Li<br>
> <L.Sui@massey.ac.nz<mailto:L.Sui@massey.ac.nz><mailto:L.Sui@massey.ac.nz><mailto:L.Sui@massey.ac.nz>> wrote:<br>
><br>
> Dear Community<br>
><br>
> Does DiSl allow to instrument all classes? (application+ JRE core)?  I tried<br>
> scope = "*"  and JVM crashed. I think DiSl has this dynamic bypass<br>
> mechanismwhich instruments classes in different JVM.<br>
> Is it for DiSl instrumentation only? Does it provide access to user-defined<br>
> instrumentation?<br>
><br>
> Cheers<br>
> Li<br>
_______________________________________________<br>
Disl-user mailing list<br>
Disl-user@d3s.mff.cuni.cz<mailto:Disl-user@d3s.mff.cuni.cz><br>
<a href="https://d3s.mff.cuni.cz/mailman/listinfo/disl-user">https://d3s.mff.cuni.cz/mailman/listinfo/disl-user</a><br>
<br>
_______________________________________________<br>
Disl-user mailing list<br>
Disl-user@d3s.mff.cuni.cz<br>
<a href="https://d3s.mff.cuni.cz/mailman/listinfo/disl-user">https://d3s.mff.cuni.cz/mailman/listinfo/disl-user</a><br>
</div>
</span></font></div>
</body>
</html>