Note that SDT and dtrace4linux are different things. As far as I know, no one has tried dtrace4linux with Hotspot so you are in uncharted territories. SDT should work (if installed). Oracle Linux also has an implementation of Dtrace that I think is different from dtrace4linux. This is also untested.
/Staffan > On 11 maj 2015, at 13:21, David Holmes <david.hol...@oracle.com> wrote: > > On 11/05/2015 8:51 PM, Mahesh Pujari wrote: >> Thanks for replying back Erik. >> I ran as you stated i.e. using "make DTRACE_ENABLED=true" but then I >> realized that the configure that I was running would do the same i.e. by >> having CFLAGS=-DDTRACE_ENABLED=1. > > No it isn't the same. The linux/makefiles/dtrace.make looks for > DTRACE_ENABLED and will define additional targets if it is set, as well as > setting -DDTRACE_ENABLED. If you just set the define then you miss other > things. > > But that aside you don't set DTRACE_ENABLED either. dtrace will be enabled if > the SDT header file is found. If you just do a build without trying to force > dtrace on what does the log show? > > David > ----- > >> When I make (using your approach and passing enable in configure), I end up >> with lots and lots of "undefined reference to" errors during make, seems I >> am missing something, below are some error from build.logs. >> classLoadingService.o: In function >> `ClassLoadingService::notify_class_unloaded(InstanceKlass*)': >> /mnt/ubuntu/dev/jdk9/hotspot/src/share/vm/services/classLoadingService.cpp:119: >> undefined reference to `__dtrace_hotspot___class__unloaded' >> classLoadingService.o: In function >> `ClassLoadingService::notify_class_loaded(InstanceKlass*, bool)': >> /mnt/ubuntu/dev/jdk9/hotspot/src/share/vm/services/classLoadingService.cpp:144: >> undefined reference to `__dtrace_hotspot___class__loaded' >> compileBroker.o: In function >> `CompileBroker::invoke_compiler_on_method(CompileTask*)': >> /mnt/ubuntu/dev/jdk9/hotspot/src/share/vm/compiler/compileBroker.cpp:1927: >> undefined reference to `__dtrace_hotspot___method__compile__begin' >> /mnt/ubuntu/dev/jdk9/hotspot/src/share/vm/compiler/compileBroker.cpp:2028: >> undefined reference to `__dtrace_hotspot___method__compile__end' >> >> thanks and regards,Mahesh Pujari >> >> >> >> On Monday, May 11, 2015 3:53 PM, Erik Joelsson >> <erik.joels...@oracle.com> wrote: >> >> >> Hello, >> >> I don't have any experience building with dtrace support, but the >> Hotspot makefiles seem to imply that it can be achieved by running: >> >> make DTRACE_ENABLED=true >> >> That variable will trigger the appropriate preprocessor flags to be >> added at least. See hotspot/make/linux/makefiles/dtrace.make. >> >> The jdk libraries do not support dtrace AFAIK. >> >> /Erik >> >> On 2015-05-11 11:47, Mahesh Pujari wrote: >>> Hi all, >>> I am trying make OpenJdk 9 with dtrace enabled, on my Ubuntu machine >>> (installed with https://github.com/dtrace4linux/linux), with configuration >>> as below (and I am noob). >>> ./configure --enable-option-checking=fatal --with-debug-level=slowdebug >>> --with-target-bits=64 --disable-zip-debug-info >>> --with-boot-jdk=/mnt/ubuntu/setup/jdk1.8.0 CFLAGS=-DDTRACE_ENABLED=1 >>> --with-extra-cflags=-D_DTRACE_VERSION=1 >>> >>> Below is my system info (using uname -a)Linux PHP0045 3.13.0-45-generic >>> #74-Ubuntu SMP Tue Jan 13 19:36:28 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux >>> >>> When I do "make all", I end up in error as below... >>> ... >>> vmThread.o: In function `VMOperationQueue::add(VM_Operation*)': >>> /mnt/ubuntu/dev/jdk9/hotspot/src/share/vm/runtime/vmThread.cpp:156: >>> undefined reference to `__dtrace_hotspot___vmops__request' >>> vmThread.o: In function `VMThread::evaluate_operation(VM_Operation*)': >>> /mnt/ubuntu/dev/jdk9/hotspot/src/share/vm/runtime/vmThread.cpp:354: >>> undefined reference to `__dtrace_hotspot___vmops__begin' >>> /mnt/ubuntu/dev/jdk9/hotspot/src/share/vm/runtime/vmThread.cpp:374: >>> undefined reference to `__dtrace_hotspot___vmops__end'...... >>> >>> Can some one direct me about what I might be missing. Can we actually build >>> dtrace with enabled on Ubuntu, if not what other way I can do tracing (may >>> be using systemtap, any pointers please). Am I on right track? (please >>> direct). >>> >>> >>> thanks and regards,Mahesh Pujari >> >> >> >> >>