diff --git a/lava_helper/codecov_helper.py b/lava_helper/codecov_helper.py
index ad4ad55..3ab21de 100644
--- a/lava_helper/codecov_helper.py
+++ b/lava_helper/codecov_helper.py
@@ -22,6 +22,21 @@
     subprocess.check_call(cmd, shell=True, cwd=cwd)
 
 
+def extract_trace_data(lava_log_fname, job_dir):
+    last_fname = None
+    f_out = None
+    with open(lava_log_fname) as f_in:
+        for l in f_in:
+            if l.startswith("covtrace-"):
+                fname, l = l.split(" ", 1)
+                if fname != last_fname:
+                    if f_out:
+                        f_out.close()
+                    f_out = open(job_dir + "/" + fname, "w")
+                    last_fname = fname
+                f_out.write(l)
+
+
 def coverage_reports(jobs, user_args):
     lava = test_lava_dispatch_credentials(user_args)
     for job_id, info in jobs.items():
diff --git a/lava_helper/lava_wait_jobs.py b/lava_helper/lava_wait_jobs.py
index 9e1532b..08e94f2 100755
--- a/lava_helper/lava_wait_jobs.py
+++ b/lava_helper/lava_wait_jobs.py
@@ -120,6 +120,7 @@
     resubmitted_jobs = [int(x) for x in resubmitted_jobs if x != '']
     return resubmitted_jobs
 
+
 def fetch_artifacts(jobs, user_args, lava):
     if not user_args.artifacts_path:
         return
@@ -139,6 +140,7 @@
         lava.get_job_config(job_id, config)
         time.sleep(0.2)
         lava.get_job_results(job_id, results_file)
+        codecov_helper.extract_trace_data(target_log, job_dir)
     return(jobs)
 
 
