+ autoprobe_val = getenv("UST_AUTOPROBE");
+ if(autoprobe_val) {
+ struct marker_iter iter;
+
+ DBG("Autoprobe enabled.");
+
+ /* Ensure markers are initialized */
+ //init_markers();
+
+ /* Ensure marker control is initialized, for the probe */
+ init_marker_control();
+
+ /* first, set the callback that will connect the
+ * probe on new markers
+ */
+ if(autoprobe_val[0] == '/') {
+ result = regcomp(&autoprobe_regex, autoprobe_val+1, 0);
+ if (result) {
+ char regexerr[150];
+
+ regerror(result, &autoprobe_regex, regexerr, sizeof(regexerr));
+ ERR("cannot parse regex %s (%s), will ignore UST_AUTOPROBE", autoprobe_val, regexerr);
+ /* don't crash the application just for this */
+ }
+ else {
+ autoprobe_method = AUTOPROBE_ENABLE_REGEX;
+ }
+ }
+ else {
+ /* just enable all instrumentation */
+ autoprobe_method = AUTOPROBE_ENABLE_ALL;
+ }
+
+ marker_set_new_marker_cb(auto_probe_connect);
+
+ /* Now, connect the probes that were already registered. */
+ marker_iter_reset(&iter);
+ marker_iter_start(&iter);
+
+ DBG("now iterating on markers already registered");
+ while(iter.marker) {
+ DBG("now iterating on marker %s", iter.marker->name);
+ auto_probe_connect(iter.marker);
+ marker_iter_next(&iter);
+ }
+ }
+