Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[casr-cluster] Add dedup by crashline for each cluster #170

Merged
merged 7 commits into from
Nov 6, 2023
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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()) {
Avgor46 marked this conversation as resolved.
Show resolved Hide resolved
traces.write().unwrap().push(trace);
filtered_casreps.write().unwrap().push(casreps[i].clone());
// TODO: Try to avoid of checking same cond
anfedotoff marked this conversation as resolved.
Show resolved Hide resolved
if dedup {
SweetVishnya marked this conversation as resolved.
Show resolved Hide resolved
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 {
anfedotoff marked this conversation as resolved.
Show resolved Hide resolved
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
anfedotoff marked this conversation as resolved.
Show resolved Hide resolved
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
Loading