[Note: Inside the Ubuntu-18 VM this Log-passes is present inside LLVM_passes in home dir]
-
[Well Functioning] & EVERYTHING LOGGED in this order - Time, function names, arguments, arguments values, callInsts, callInsts values, global variable values -
tfavcigvPass.cppLogPasses-new/FAVCIGVT\*/tfavcigvPass.cppVariables names are also preserved with the
Makefileof testbed. only added-fno-discard-value-names, following is the cmd,EXECUTEABLE_g++ = clang++-14 --target=arm-linux-gnueabihf -fno-discard-value-names -flegacy-pass-manager -g -Xclang -load -Xclang /home/raihan/LogPasses-new/FAVCIGVT\*/instrument.so -
[Well Functioning]
message_arrived()andpublishtopic are logged -bothTopicPass.cppLogPasses-new/messagePublishFunc/TopicExtraction/mqtt/msgAndPubTopic/bothTopicPass.cpp -
[Well Functioning]
publishtopic extracted frommake_message()2nd parameter, -topicExtractedpublishPass-v3.cppLogPasses-new/messagePublishFunc/TopicExtraction/mqtt/publishTpExtD/topicExtractedpublishPass-v3.cpprun following cmd at that location to see the effect,
./client_sub # in 1 terminal ./publisher # in another terminalI will see the topic of publiser in that terminal where I ran
./publisher. Thepublish get_topic value: my/topicis my instrumentation. -
[Well Functioning]- Topic extracted from
message_arrived()with following pass, -topicExtractedtestbedCallInstpass.cppLogPasses-new/messagePublishFunc/TopicExtraction/mqtt/topicExtractedtestbedCallInstpass.cpprun following cmd at that location to see the effect,
./subscriber # in 1 terminal ./publisher # in another terminalI will see the topic printed in the terminal where I ran
./subscriber. Theget_topic value: my/topicis my instrumentation. Check whichbasic_stringis used. If it's the testbed code then it should be the genericbasic_stringbut if it's the demo code then it should bec_strfunction. -
[Well Functioning]
Function names, arguments, values, callInsts, callInst values, global variable valuesare logged with following pass,LogPasses-new/FArVlCIGv-combined/longCaller-combined.cpp -
[Well Functioning]
CallInsts, CallInst values, global variable valuesare logged with following pass,LogPasses-new/messagePublishFunc/recordCallInst/CallerFromCallInstPass-v6.2.cpp # also present in, LogPasses-new/FArVlCIGv-combined/CallerFromCallInstPass-v6.2.cpp -
[Well Functioning]
Function names, arguments and valuesare logged with following pass,LogPasses-new/messagePublishFunc/longPass.cpp # also present in LogPasses-new/FArVlCIGv-combined/longPass.cpp -
The GetFunctions pass will generate only the functions names of any file.
-
The GetFunctions&Values pass will generate all the the function names and values of any file.
-
The Functions&ValuesWithArguments pass will generate all the function names, values and arguments.
Inside messagePublishFunc there is a valueMsgPub.cpp file which is the pass to get the function names, values, arguments and the user function of the function I am checking. Check the folder for details.
The modified.ll which is the bitcode file of a cpp file. While using the pass the cpp file is modified and the instrumented bitcode or .ll file is created. This is shown in following Makefile.
LogPasses-new/messagePublishFunc/TopicExtraction/mqtt


