Skip to content

Commit

Permalink
[casr-cluster] Add dedup by crashline for each cluster
Browse files Browse the repository at this point in the history
  • Loading branch information
hkctkuy committed Nov 1, 2023
1 parent ca3ba4f commit cbccef9
Show file tree
Hide file tree
Showing 8 changed files with 549 additions and 8 deletions.
62 changes: 57 additions & 5 deletions casr/src/bin/casr-cluster.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ use std::fs;
use std::path::{Path, PathBuf};
use std::sync::RwLock;

/// Extract stack trace from casr (casr-san/casr-gdb) report
/// Extract stack trace from casr report
///
/// # Arguments
///
Expand All @@ -27,6 +27,19 @@ fn stacktrace(path: &Path) -> Result<Stacktrace> {
}
}

/// Extract crashline from casr report
///
/// # Arguments
///
/// * `path` - path to the casrep
///
/// # Return value
///
/// Crashlie as a String
fn crashline(path: &Path) -> Result<String> {
Ok(util::report_from_file(path)?.crashline)
}

/// Perform the clustering of casreps
///
/// # Arguments
Expand All @@ -37,10 +50,12 @@ fn stacktrace(path: &Path) -> Result<Stacktrace> {
///
/// * `jobs` - number of jobs for clustering process
///
/// * `dedup` - deduplicate casrep by crashline for each cluster, if true
///
/// # Return value
///
/// Number of clusters
fn make_clusters(inpath: &Path, outpath: Option<&Path>, jobs: usize) -> Result<u32> {
fn make_clusters(inpath: &Path, outpath: Option<&Path>, jobs: usize, dedup: bool) -> Result<usize> {
// if outpath is "None" we consider that outpath and inpath are the same
let outpath = outpath.unwrap_or(inpath);
let dir = fs::read_dir(inpath).with_context(|| format!("File: {}", inpath.display()))?;
Expand Down Expand Up @@ -70,6 +85,8 @@ fn make_clusters(inpath: &Path, outpath: Option<&Path>, jobs: usize) -> Result<u

// Stacktraces from casreps
let traces: RwLock<Vec<Stacktrace>> = RwLock::new(Vec::new());
// Crashlines from casreps
let crashlines: RwLock<Vec<String>> = RwLock::new(Vec::new());
// Casreps with stacktraces, that we can parse
let filtered_casreps: RwLock<Vec<PathBuf>> = RwLock::new(Vec::new());
// Casreps with stacktraces, that we cannot parse
Expand All @@ -79,12 +96,19 @@ fn make_clusters(inpath: &Path, outpath: Option<&Path>, jobs: usize) -> Result<u
if let Ok(trace) = stacktrace(casreps[i].as_path()) {
traces.write().unwrap().push(trace);
filtered_casreps.write().unwrap().push(casreps[i].clone());
// TODO: Try to avoid of checking same cond
if dedup {
if let Ok(crashline) = crashline(casreps[i].as_path()) {
crashlines.write().unwrap().push(crashline);
}
}
} else {
badreports.write().unwrap().push(casreps[i].clone());
}
})
});
let stacktraces = traces.read().unwrap();
let crashlines = crashlines.read().unwrap();
let casreps = filtered_casreps.read().unwrap();
let badreports = badreports.get_mut().unwrap();

Expand All @@ -106,14 +130,25 @@ fn make_clusters(inpath: &Path, outpath: Option<&Path>, jobs: usize) -> Result<u
bail!("{} valid reports, nothing to cluster...", stacktraces.len());
}

let clusters = cluster_stacktraces(&stacktraces)?;
// Get clusters
let mut clusters = cluster_stacktraces(&stacktraces)?;

// Cluster formation
let cluster_cnt = *clusters.iter().max().unwrap();
let cluster_cnt: usize = *clusters.iter().max().unwrap();
for i in 1..=cluster_cnt {
fs::create_dir_all(format!("{}/cl{}", &outpath.display(), i))?;
}

// Get clusters with crashline deduplication
if dedup {
clusters = dedup_crashlines(&crashlines, clusters, cluster_cnt)?;
}

for i in 0..clusters.len() {
// Skip casreps with duplicate crashlines
if clusters[i] == 0 {
continue;
}
fs::copy(
&casreps[i],
format!(
Expand Down Expand Up @@ -387,17 +422,29 @@ fn main() -> Result<()> {
.value_parser(clap::value_parser!(u32).range(1..))
)
.get_matches();

// Init log
init_ignored_frames!("cpp", "rust", "python", "go", "java");

// Get number of threads
let jobs = if let Some(jobs) = matches.get_one::<u32>("jobs") {
*jobs as usize
} else {
std::cmp::max(1, num_cpus::get() / 2)
};

// Get ignore path
if let Some(path) = matches.get_one::<PathBuf>("ignore") {
util::add_custom_ignored_frames(path)?;
}

// Get env var
let dedup_crashlines = if let Ok(dedup) = std::env::var("CASR_CLUSTER_UNIQUE_CRASHLINE") {
dedup == "1"
} else {
false
};

if matches.contains_id("similarity") {
let casreps: Vec<&PathBuf> = matches.get_many::<PathBuf>("similarity").unwrap().collect();
println!(
Expand All @@ -407,7 +454,12 @@ fn main() -> Result<()> {
} else if matches.contains_id("clustering") {
let paths: Vec<&PathBuf> = matches.get_many::<PathBuf>("clustering").unwrap().collect();

let result = make_clusters(paths[0], paths.get(1).map(|x| x.as_path()), jobs)?;
let result = make_clusters(
paths[0],
paths.get(1).map(|x| x.as_path()),
jobs,
dedup_crashlines,
)?;
println!("Number of clusters: {result}");
} else if matches.contains_id("deduplication") {
let paths: Vec<&PathBuf> = matches
Expand Down
214 changes: 214 additions & 0 deletions casr/tests/casr_tests/casrep/test_clustering_small/20.casrep
Original file line number Diff line number Diff line change
@@ -0,0 +1,214 @@
{
"Date": "2021-07-14T19:53:11.220700+03:00",
"Uname": "Linux titanfall 5.8.0-59-generic #66~20.04.1-Ubuntu SMP Thu Jun 17 11:14:10 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux",
"OS": "Ubuntu",
"OSRelease": "20.04",
"Architecture": "amd64",
"ExecutablePath": "/usr/local/bin/thumbnail",
"ProcEnviron": [
"SHELL=/bin/zsh",
"COLORTERM=truecolor",
"SUDO_GID=1000",
"LC_ADDRESS=ru_RU.UTF-8",
"LC_NAME=ru_RU.UTF-8",
"SUDO_COMMAND=./scrypt.sh",
"LC_MONETARY=ru_RU.UTF-8",
"SUDO_USER=avgor46",
"PWD=/home/avgor46/testdoc",
"LOGNAME=root",
"XAUTHORITY=/run/user/1000/gdm/Xauthority",
"HOME=/root",
"LC_PAPER=ru_RU.UTF-8",
"LANG=en_US.UTF-8",
"LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:",
"TERM=xterm-256color",
"LC_IDENTIFICATION=ru_RU.UTF-8",
"USER=root",
"DISPLAY=:0",
"SHLVL=1",
"LC_TELEPHONE=ru_RU.UTF-8",
"LC_MEASUREMENT=ru_RU.UTF-8",
"LC_TIME=ru_RU.UTF-8",
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin",
"SUDO_UID=1000",
"MAIL=/var/mail/root",
"LC_NUMERIC=ru_RU.UTF-8",
"_=/home/avgor46/sydr/build/caesar",
"LC_ALL=C",
"LINES=60",
"COLUMNS=204"
],
"ProcCmdline": "thumbnail ./fuz2thumbnail/main/crashes/id:000015,sig:11,src:000072,time:1869165,op:havoc,rep:8 crash.tiff",
"ProcStatus": [
"process 2943495",
"Name:\tthumbnail",
"Umask:\t0022",
"State:\tt (tracing stop)",
"Tgid:\t2943495",
"Ngid:\t0",
"Pid:\t2943495",
"PPid:\t2943493",
"TracerPid:\t2943493",
"Uid:\t0\t0\t0\t0",
"Gid:\t0\t0\t0\t0",
"FDSize:\t64",
"Groups:\t0 ",
"NStgid:\t2943495",
"NSpid:\t2943495",
"NSpgid:\t2943495",
"NSsid:\t2286199",
"VmPeak:\t 450428 kB",
"VmSize:\t 450428 kB",
"VmLck:\t 0 kB",
"VmPin:\t 0 kB",
"VmHWM:\t 3396 kB",
"VmRSS:\t 3396 kB",
"RssAnon:\t 1200 kB",
"RssFile:\t 2196 kB",
"RssShmem:\t 0 kB",
"VmData:\t 443604 kB",
"VmStk:\t 132 kB",
"VmExe:\t 8 kB",
"VmLib:\t 2916 kB",
"VmPTE:\t 52 kB",
"VmSwap:\t 0 kB",
"HugetlbPages:\t 0 kB",
"CoreDumping:\t0",
"THP_enabled:\t1",
"Threads:\t1",
"SigQ:\t0/127573",
"SigPnd:\t0000000000000000",
"ShdPnd:\t0000000000000000",
"SigBlk:\t0000000000000000",
"SigIgn:\t0000000000000000",
"SigCgt:\t0000000000000000",
"CapInh:\t0000000000000000",
"CapPrm:\t000000ffffffffff",
"CapEff:\t000000ffffffffff",
"CapBnd:\t000000ffffffffff",
"CapAmb:\t0000000000000000",
"NoNewPrivs:\t0",
"Seccomp:\t0",
"Speculation_Store_Bypass:\tthread vulnerable",
"Cpus_allowed:\tfff",
"Cpus_allowed_list:\t0-11",
"Mems_allowed:\t00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000001",
"Mems_allowed_list:\t0",
"voluntary_ctxt_switches:\t5",
"nonvoluntary_ctxt_switches:\t0"
],
"ProcMaps": [
" 0x555555554000 0x555555556000 0x2000 0x0 /usr/local/bin/thumbnail",
" 0x555555556000 0x555555558000 0x2000 0x2000 /usr/local/bin/thumbnail",
" 0x555555558000 0x555555559000 0x1000 0x4000 /usr/local/bin/thumbnail",
" 0x555555559000 0x55555555a000 0x1000 0x4000 /usr/local/bin/thumbnail",
" 0x55555555a000 0x55555555b000 0x1000 0x5000 /usr/local/bin/thumbnail",
" 0x55555555b000 0x555555675000 0x11a000 0x0 [heap]",
" 0x7fffdc941000 0x7ffff7949000 0x1b008000 0x0 ",
" 0x7ffff7949000 0x7ffff794b000 0x2000 0x0 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11",
" 0x7ffff794b000 0x7ffff795c000 0x11000 0x2000 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11",
" 0x7ffff795c000 0x7ffff7962000 0x6000 0x13000 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11",
" 0x7ffff7962000 0x7ffff7963000 0x1000 0x19000 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11",
" 0x7ffff7963000 0x7ffff7964000 0x1000 0x19000 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11",
" 0x7ffff7964000 0x7ffff7965000 0x1000 0x1a000 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11",
" 0x7ffff7965000 0x7ffff7969000 0x4000 0x0 /usr/lib/x86_64-linux-gnu/libjpeg.so.8.2.2",
" 0x7ffff7969000 0x7ffff79ad000 0x44000 0x4000 /usr/lib/x86_64-linux-gnu/libjpeg.so.8.2.2",
" 0x7ffff79ad000 0x7ffff79e7000 0x3a000 0x48000 /usr/lib/x86_64-linux-gnu/libjpeg.so.8.2.2",
" 0x7ffff79e7000 0x7ffff79e8000 0x1000 0x82000 /usr/lib/x86_64-linux-gnu/libjpeg.so.8.2.2",
" 0x7ffff79e8000 0x7ffff79e9000 0x1000 0x82000 /usr/lib/x86_64-linux-gnu/libjpeg.so.8.2.2",
" 0x7ffff79e9000 0x7ffff79ea000 0x1000 0x83000 /usr/lib/x86_64-linux-gnu/libjpeg.so.8.2.2",
" 0x7ffff79ea000 0x7ffff79f5000 0xb000 0x0 /usr/lib/x86_64-linux-gnu/libjbig.so.0",
" 0x7ffff79f5000 0x7ffff7bf4000 0x1ff000 0xb000 /usr/lib/x86_64-linux-gnu/libjbig.so.0",
" 0x7ffff7bf4000 0x7ffff7bf5000 0x1000 0xa000 /usr/lib/x86_64-linux-gnu/libjbig.so.0",
" 0x7ffff7bf5000 0x7ffff7bf8000 0x3000 0xb000 /usr/lib/x86_64-linux-gnu/libjbig.so.0",
" 0x7ffff7bf8000 0x7ffff7c1d000 0x25000 0x0 /usr/lib/x86_64-linux-gnu/libc-2.31.so",
" 0x7ffff7c1d000 0x7ffff7d95000 0x178000 0x25000 /usr/lib/x86_64-linux-gnu/libc-2.31.so",
" 0x7ffff7d95000 0x7ffff7ddf000 0x4a000 0x19d000 /usr/lib/x86_64-linux-gnu/libc-2.31.so",
" 0x7ffff7ddf000 0x7ffff7de0000 0x1000 0x1e7000 /usr/lib/x86_64-linux-gnu/libc-2.31.so",
" 0x7ffff7de0000 0x7ffff7de3000 0x3000 0x1e7000 /usr/lib/x86_64-linux-gnu/libc-2.31.so",
" 0x7ffff7de3000 0x7ffff7de6000 0x3000 0x1ea000 /usr/lib/x86_64-linux-gnu/libc-2.31.so",
" 0x7ffff7de6000 0x7ffff7dea000 0x4000 0x0 ",
" 0x7ffff7dea000 0x7ffff7df9000 0xf000 0x0 /usr/lib/x86_64-linux-gnu/libm-2.31.so",
" 0x7ffff7df9000 0x7ffff7ea0000 0xa7000 0xf000 /usr/lib/x86_64-linux-gnu/libm-2.31.so",
" 0x7ffff7ea0000 0x7ffff7f37000 0x97000 0xb6000 /usr/lib/x86_64-linux-gnu/libm-2.31.so",
" 0x7ffff7f37000 0x7ffff7f38000 0x1000 0x14c000 /usr/lib/x86_64-linux-gnu/libm-2.31.so",
" 0x7ffff7f38000 0x7ffff7f39000 0x1000 0x14d000 /usr/lib/x86_64-linux-gnu/libm-2.31.so",
" 0x7ffff7f39000 0x7ffff7f41000 0x8000 0x0 /usr/local/lib/libtiff.so.3.9.6",
" 0x7ffff7f41000 0x7ffff7f76000 0x35000 0x8000 /usr/local/lib/libtiff.so.3.9.6",
" 0x7ffff7f76000 0x7ffff7f9f000 0x29000 0x3d000 /usr/local/lib/libtiff.so.3.9.6",
" 0x7ffff7f9f000 0x7ffff7fa0000 0x1000 0x66000 /usr/local/lib/libtiff.so.3.9.6",
" 0x7ffff7fa0000 0x7ffff7fa2000 0x2000 0x66000 /usr/local/lib/libtiff.so.3.9.6",
" 0x7ffff7fa2000 0x7ffff7fa3000 0x1000 0x68000 /usr/local/lib/libtiff.so.3.9.6",
" 0x7ffff7fa3000 0x7ffff7fa5000 0x2000 0x0 ",
" 0x7ffff7fc5000 0x7ffff7fc9000 0x4000 0x0 /home/avgor46/testdoc/fuz2thumbnail/main/crashes/id:000015,sig:11,src:000072,time:1869165,op:havoc,rep:8",
" 0x7ffff7fc9000 0x7ffff7fcd000 0x4000 0x0 [vvar]",
" 0x7ffff7fcd000 0x7ffff7fcf000 0x2000 0x0 [vdso]",
" 0x7ffff7fcf000 0x7ffff7fd0000 0x1000 0x0 /usr/lib/x86_64-linux-gnu/ld-2.31.so",
" 0x7ffff7fd0000 0x7ffff7ff3000 0x23000 0x1000 /usr/lib/x86_64-linux-gnu/ld-2.31.so",
" 0x7ffff7ff3000 0x7ffff7ffb000 0x8000 0x24000 /usr/lib/x86_64-linux-gnu/ld-2.31.so",
" 0x7ffff7ffc000 0x7ffff7ffd000 0x1000 0x2c000 /usr/lib/x86_64-linux-gnu/ld-2.31.so",
" 0x7ffff7ffd000 0x7ffff7ffe000 0x1000 0x2d000 /usr/lib/x86_64-linux-gnu/ld-2.31.so",
" 0x7ffff7ffe000 0x7ffff7fff000 0x1000 0x0 ",
" 0x7ffffffde000 0x7ffffffff000 0x21000 0x0 [stack]",
" 0xffffffffff600000 0xffffffffff601000 0x1000 0x0 [vsyscall]"
],
"CrashSeverity": {
"Type": "NOT_CRITICAL",
"ShortDescription": "AccessViolation",
"Description": "Access violation",
"Explanation": "The target crashed due to an access violation but there is not enough additional information available to determine crash severity."
},
"Stacktrace": [
"#0 __memmove_avx_unaligned_erms () at ../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S:383",
"#1 0x00007ffff7f70bcb in TIFFReadRawStrip1 (tif=0x55555555bbf0, strip=0, buf=0x7fffdc941010, size=453000805, module=0x7ffff7f96a30 <module> \"TIFFReadRawStrip\") at tif_read.c:208",
"#2 0x0000555555556e6e in cpStrips (out=0x55555555b2a0, in=0x55555555bbf0) at thumbnail.c:279",
"#3 cpIFD (out=<optimized out>, in=<optimized out>) at thumbnail.c:337",
"#4 main (argc=<optimized out>, argv=<optimized out>) at thumbnail.c:116"
],
"Prstatus": {
"registers": {
"cs": 51,
"ds": 0,
"eflags": 66199,
"es": 0,
"fs": 0,
"gs": 0,
"r10": 34,
"r11": 582,
"r12": 453000805,
"r13": 140736894078992,
"r14": 140737353706032,
"r15": 140736894078992,
"r8": 140737353706032,
"r9": 93824993281112,
"rax": 140736894078992,
"rbp": 0,
"rbx": 93824992263152,
"rcx": 453000805,
"rdi": 140736894078992,
"rdx": 453000805,
"rip": 140737351542752,
"rsi": 140741195878594,
"rsp": 140737488347784,
"ss": 43
}
},
"Disassembly": [
"=> 0x7ffff7d867e0 <__memmove_avx_unaligned_erms+368>:\tvmovdqu ymm4,YMMWORD PTR [rsi]",
" 0x7ffff7d867e4 <__memmove_avx_unaligned_erms+372>:\tvmovdqu ymm5,YMMWORD PTR [rsi+rdx*1-0x20]",
" 0x7ffff7d867ea <__memmove_avx_unaligned_erms+378>:\tvmovdqu ymm6,YMMWORD PTR [rsi+rdx*1-0x40]",
" 0x7ffff7d867f0 <__memmove_avx_unaligned_erms+384>:\tvmovdqu ymm7,YMMWORD PTR [rsi+rdx*1-0x60]",
" 0x7ffff7d867f6 <__memmove_avx_unaligned_erms+390>:\tvmovdqu ymm8,YMMWORD PTR [rsi+rdx*1-0x80]",
" 0x7ffff7d867fc <__memmove_avx_unaligned_erms+396>:\tmov r11,rdi",
" 0x7ffff7d867ff <__memmove_avx_unaligned_erms+399>:\tlea rcx,[rdi+rdx*1-0x20]",
" 0x7ffff7d86804 <__memmove_avx_unaligned_erms+404>:\tmov r8,rdi",
" 0x7ffff7d86807 <__memmove_avx_unaligned_erms+407>:\tand r8,0x1f",
" 0x7ffff7d8680b <__memmove_avx_unaligned_erms+411>:\tsub r8,0x20",
" 0x7ffff7d8680f <__memmove_avx_unaligned_erms+415>:\tsub rsi,r8",
" 0x7ffff7d86812 <__memmove_avx_unaligned_erms+418>:\tsub rdi,r8",
" 0x7ffff7d86815 <__memmove_avx_unaligned_erms+421>:\tadd rdx,r8",
" 0x7ffff7d86818 <__memmove_avx_unaligned_erms+424>:\tcmp rdx,QWORD PTR [rip+0x62979] # 0x7ffff7de9198 <__x86_shared_non_temporal_threshold>",
" 0x7ffff7d8681f <__memmove_avx_unaligned_erms+431>:\tja 0x7ffff7d8692c <__memmove_avx_unaligned_erms+700>",
" 0x7ffff7d86825 <__memmove_avx_unaligned_erms+437>:\tvmovdqu ymm0,YMMWORD PTR [rsi]"
]
}
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,7 @@
"#5 t2p_write_pdf (t2p=0x5555555672a0, input=0x555555567ea0, output=0x555555568f10) at tiff2pdf.c:5133",
"#6 0x00005555555568d4 in main (argc=<optimized out>, argv=<optimized out>) at tiff2pdf.c:763"
],
"CrashLine": "malloc.c:1466",
"Prstatus": {
"registers": {
"cs": 51,
Expand Down
Loading

0 comments on commit cbccef9

Please sign in to comment.