/*
* This file is part of ltrace.
- * Copyright (C) 2011,2012,2013 Petr Machata, Red Hat Inc.
+ * Copyright (C) 2011,2012,2013,2014 Petr Machata, Red Hat Inc.
* Copyright (C) 2001,2009 Juan Cespedes
* Copyright (C) 2006 Ian Wienand
*
* 02110-1301 USA
*/
+#include "config.h"
+
#include <stdlib.h>
#include <string.h>
#include <assert.h>
lib->symbols = NULL;
library_exported_names_init(&lib->exported_names);
+ lib->should_activate_latent = false;
lib->type = type;
#if defined(HAVE_LIBDW)
dtor_string,
NULL);
}
-static void dtor_vect(const struct vect **tgt, void *data)
+static void dtor_vect(struct vect **tgt, void *data)
{
VECT_DESTROY(*tgt, const char*, dtor_string, NULL);
free(*tgt);
}
int library_exported_names_push(struct library_exported_names *names,
- uint64_t addr, const char *name,
+ uint64_t addr, char *name,
int own_name )
{
// first, take ownership of the name, if it's not yet ours
else
aliases = *paliases;
- const char *namedup = strdup(name);
+ char *namedup = strdup(name);
if (namedup == NULL)
return -1;
}
const char** library_exported_names_each_alias(
- const struct library_exported_names *names,
+ struct library_exported_names *names,
const char *aliasname,
const char **name_start_after,
enum callback_status (*cb)(const char *,
library_exported_names_each_alias_cb, &context);
}
-int library_exported_names_contains(const struct library_exported_names* names,
- const char* queryname)
+int library_exported_names_contains(struct library_exported_names *names,
+ const char *queryname)
{
uint64_t *addr = DICT_FIND_REF(&names->names,
&queryname, uint64_t);
library_set_pathname(retp, pathname, lib->own_pathname);
retp->key = lib->key;
+ retp->should_activate_latent = lib->should_activate_latent;
/* Clone symbols. */
{
goto fail;
}
+#if defined(HAVE_LIBDW)
+ /* Wipe DWFL_MODULE, leave it to proc_add_library to
+ * initialize. */
+ lib->dwfl_module = NULL;
+#endif
+
return 0;
}