- if (sscanf(line, XBT_HEAP_FLOAT_T " " XBT_MAXMIN_FLOAT_T "\n", &event.delta, &event.value) != 2){
- fprintf(stderr, "%s,%d: Syntax error\n", filename, linecount);
- abort();
-/* xbt_dynar_free(&(trace->event_list)); */
-/* xbt_free(trace); */
-/* return NULL; */
- }
-
- if(last_event) {
- if((last_event->delta=event.delta-last_event->delta) <=0) {
- fprintf(stderr, "%s,%d: Invalid trace value, events have to be sorted\n",
- filename, linecount);
- abort();
+ if (sscanf(val, "%lg" " " "%lg" "\n", &event.delta, &event.value) != 2)
+ xbt_die("%s:%d: Syntax error in trace\n%s", id, linecount, input);
+
+ if (last_event) {
+ if (last_event->delta > event.delta) {
+ xbt_die("%s:%d: Invalid trace: Events must be sorted, "
+ "but time %lg > time %lg.\n%s",
+ id, linecount, last_event->delta, event.delta, input);