1
OpenOnload에서 실행하여 내 응용 프로그램이 가속화되는지 확인해야합니다. 제한 사항은 Onload 특정 API를 사용할 수 없다는 것입니다. app은 Onload 확장 라이브러리와 연결되어 있지 않습니다.OpenOnload에서 실행중인 응용 프로그램을 확인하는 방법은 무엇입니까?
어떻게 수행 할 수 있습니까?
OpenOnload에서 실행하여 내 응용 프로그램이 가속화되는지 확인해야합니다. 제한 사항은 Onload 특정 API를 사용할 수 없다는 것입니다. app은 Onload 확장 라이브러리와 연결되어 있지 않습니다.OpenOnload에서 실행중인 응용 프로그램을 확인하는 방법은 무엇입니까?
어떻게 수행 할 수 있습니까?
OpenOnload는 미리로드 된 공유 라이브러리가 있음 libonload.so
으로 감지 할 수 있습니다.
이 경우 응용 프로그램 환경에는 LD_PRELOAD=libonload.so
문자열이 포함됩니다.
또는로드 된 공유 라이브러리를 모두 열거하고 libonload.so
을 확인할 수 있습니다.
#include <string>
#include <fstream>
#include <iostream>
// Checks is specific SO loaded in current process.
bool is_so_loaded(const std::string& so_name)
{
const std::string proc_path = "/proc/self/maps";
std::ifstream proc(proc_path);
std::string str;
while (std::getline(proc, str))
{
if (str.find(so_name) != std::string::npos) return true;
}
return false;
}
int main()
{
std::cout
<< "Running with OpenOnload: "
<< (is_so_loaded("/libonload.so") ? "Yes" : "No")
<< std::endl;
return 0;
}
위대한,하지만로드 된 SO를 열거하는 방법? – cassini
@cassini 업데이트 된 답변보기. – Rost