Add AITESTPLUGIN

Usage:

nc -l -p 61916
AITESTPLUGIN=1 LL_WRAPPER='gdb --args' ./singularity

Then paste into nc:

<llsd>
    <map>
        <key>class</key>
            <string>internal</string>
        <key>name</key>
            <string>load_plugin</string>
        <key>params</key>
            <map>
                <key>dir</key>
                    <string>/opt/secondlife/viewers/singularity/SingularityViewer/linden/indra/viewer-linux-x86_64-debug/newview/packaged/bin/llplugin</string>
                <key>file</key>
                    <string>/opt/secondlife/viewers/singularity/SingularityViewer/linden/indra/viewer-linux-x86_64-debug/newview/packaged/bin/llplugin/libbasic_plugin_filepicker.so</string>
            </map>
    </map>
</llsd>

and press control-v control-shift-2

Where the path should match the library you want to load.
This commit is contained in:
Aleric Inglewood
2013-10-04 22:24:01 +02:00
parent e3ce473639
commit 909be9e169
2 changed files with 27 additions and 11 deletions

View File

@@ -174,6 +174,8 @@ bool checkExceptionHandler()
}
#endif
bool self_test = false;
// If this application on Windows platform is a console application, a console is always
// created which is bad. Making it a Windows "application" via CMake settings but not
// adding any code to explicitly create windows does the right thing.
@@ -220,22 +222,30 @@ int main(int argc, char **argv)
LL_ERRS("slplugin") << "usage: " << argv[0] << " launcher_port" << LL_ENDL;
}
U32 port = 0;
if(!LLStringUtil::convertToU32(argv[1], port))
U32 port = 61916; // Test port.
if (strcmp(argv[1], "TESTPLUGIN") == 0)
{
std::cout << "Running self test..." << std::endl;
self_test = true;
}
else if (!LLStringUtil::convertToU32(argv[1], port))
{
LL_ERRS("slplugin") << "port number must be numeric" << LL_ENDL;
}
// Catch signals that most kinds of crashes will generate, and exit cleanly so the system crash dialog isn't shown.
signal(SIGILL, &crash_handler); // illegal instruction
if (!self_test)
{
// Catch signals that most kinds of crashes will generate, and exit cleanly so the system crash dialog isn't shown.
signal(SIGILL, &crash_handler); // illegal instruction
# if LL_DARWIN
signal(SIGEMT, &crash_handler); // emulate instruction executed
signal(SIGEMT, &crash_handler); // emulate instruction executed
# endif // LL_DARWIN
signal(SIGFPE, &crash_handler); // floating-point exception
signal(SIGBUS, &crash_handler); // bus error
signal(SIGSEGV, &crash_handler); // segmentation violation
signal(SIGSYS, &crash_handler); // non-existent system call invoked
signal(SIGFPE, &crash_handler); // floating-point exception
signal(SIGBUS, &crash_handler); // bus error
signal(SIGSEGV, &crash_handler); // segmentation violation
signal(SIGSYS, &crash_handler); // non-existent system call invoked
#endif
}
#if LL_DARWIN
setupCocoa();
@@ -247,7 +257,7 @@ int main(int argc, char **argv)
plugin->init(port);
#if LL_DARWIN
deleteAutoReleasePool();
deleteAutoReleasePool();
#endif
LLTimer timer;