summaryrefslogtreecommitdiffstats
path: root/src/gallium/auxiliary/os/os_process.c
diff options
context:
space:
mode:
authorBrian Paul <[email protected]>2015-11-18 09:25:48 -0700
committerBrian Paul <[email protected]>2015-11-19 09:23:04 -0700
commit15f8dc7b234fa79c9dca69b0b49afead463293e3 (patch)
tree5dd475c8aac66190e4d30a1d124c40c9753c4bf4 /src/gallium/auxiliary/os/os_process.c
parentf1ba0a5ea0faf331be9fa28fd6d43a3ff061b735 (diff)
os: check for GALLIUM_PROCESS_NAME to override os_get_process_name()
Useful for debugging and for glretrace. Reviewed-by: Charmaine Lee <[email protected]> Reviewed-by: José Fonseca <[email protected]>
Diffstat (limited to 'src/gallium/auxiliary/os/os_process.c')
-rw-r--r--src/gallium/auxiliary/os/os_process.c47
1 files changed, 29 insertions, 18 deletions
diff --git a/src/gallium/auxiliary/os/os_process.c b/src/gallium/auxiliary/os/os_process.c
index a6262283d87..d2dcd0d7fbc 100644
--- a/src/gallium/auxiliary/os/os_process.c
+++ b/src/gallium/auxiliary/os/os_process.c
@@ -54,37 +54,48 @@ boolean
os_get_process_name(char *procname, size_t size)
{
const char *name;
+
+ /* First, check if the GALLIUM_PROCESS_NAME env var is set to
+ * override the normal process name query.
+ */
+ name = os_get_option("GALLIUM_PROCESS_NAME");
+
+ if (!name) {
+ /* do normal query */
+
#if defined(PIPE_SUBSYSTEM_WINDOWS_USER)
- char szProcessPath[MAX_PATH];
- char *lpProcessName;
- char *lpProcessExt;
+ char szProcessPath[MAX_PATH];
+ char *lpProcessName;
+ char *lpProcessExt;
- GetModuleFileNameA(NULL, szProcessPath, Elements(szProcessPath));
+ GetModuleFileNameA(NULL, szProcessPath, Elements(szProcessPath));
- lpProcessName = strrchr(szProcessPath, '\\');
- lpProcessName = lpProcessName ? lpProcessName + 1 : szProcessPath;
+ lpProcessName = strrchr(szProcessPath, '\\');
+ lpProcessName = lpProcessName ? lpProcessName + 1 : szProcessPath;
- lpProcessExt = strrchr(lpProcessName, '.');
- if (lpProcessExt) {
- *lpProcessExt = '\0';
- }
+ lpProcessExt = strrchr(lpProcessName, '.');
+ if (lpProcessExt) {
+ *lpProcessExt = '\0';
+ }
- name = lpProcessName;
+ name = lpProcessName;
#elif defined(__GLIBC__) || defined(__CYGWIN__)
- name = program_invocation_short_name;
+ name = program_invocation_short_name;
#elif defined(PIPE_OS_BSD) || defined(PIPE_OS_APPLE)
- /* *BSD and OS X */
- name = getprogname();
+ /* *BSD and OS X */
+ name = getprogname();
#elif defined(PIPE_OS_HAIKU)
- image_info info;
- get_image_info(B_CURRENT_TEAM, &info);
- name = info.name;
+ image_info info;
+ get_image_info(B_CURRENT_TEAM, &info);
+ name = info.name;
#else
#warning unexpected platform in os_process.c
- return FALSE;
+ return FALSE;
#endif
+ }
+
assert(size > 0);
assert(procname);