}
fn fatal_proc_rec(&self, err: &str, proc_res: &ProcRes) -> ! {
- self.try_print_open_handles();
self.error(err);
proc_res.fatal(None);
}
- // This function is a poor man's attempt to debug rust-lang/rust#38620, if
- // that's closed then this should be deleted
- //
- // This is a very "opportunistic" debugging attempt, so we ignore all
- // errors here.
- fn try_print_open_handles(&self) {
- if !cfg!(windows) {
- return;
- }
- if self.config.mode != Incremental {
- return;
- }
-
- let filename = match self.testpaths.file.file_stem() {
- Some(path) => path,
- None => return,
- };
-
- let mut cmd = Command::new("handle.exe");
- cmd.arg("-a").arg("-u");
- cmd.arg(filename);
- cmd.arg("-nobanner");
- cmd.stdout(Stdio::piped());
- cmd.stderr(Stdio::piped());
- let output = match cmd.spawn().and_then(read2_abbreviated) {
- Ok(output) => output,
- Err(_) => return,
- };
- println!("---------------------------------------------------");
- println!("ran extra command to debug rust-lang/rust#38620: ");
- println!("{:?}", cmd);
- println!("result: {}", output.status);
- println!("--- stdout ----------------------------------------");
- println!("{}", String::from_utf8_lossy(&output.stdout));
- println!("--- stderr ----------------------------------------");
- println!("{}", String::from_utf8_lossy(&output.stderr));
- println!("---------------------------------------------------");
- }
-
// codegen tests (using FileCheck)
fn compile_test_and_save_ir(&self) -> ProcRes {