Giter Site home page Giter Site logo

rover's Introduction

Introduction

Rover is a file browser for the terminal.

Rover screenshot

The main goal is to provide a faster way to explore a file system from the terminal, compared to what's possible by using cd, ls, etc. Rover has vi-like key bindings for navigation and can open files in $PAGER and $EDITOR. Basic file system operations are also implemented (see rover(1) for details). Rover is designed to be simple, fast and portable.

Quick Start

Building and Installing:

$ make
$ sudo make install

Running:

$ rover [DIR1 [DIR2 [DIR3 [...]]]]

Basic Usage:

      q - quit Rover
      ? - show Rover manual
    j/k - move cursor down/up
    J/K - move cursor down/up 10 lines
    g/G - move cursor to top/bottom of listing
      l - enter selected directory
      h - go to parent directory
      H - go to $HOME directory
    0-9 - change tab
 RETURN - open $SHELL on the current directory
  SPACE - open $PAGER with the selected file
      e - open $VISUAL or $EDITOR with the selected file
      / - start incremental search (RETURN to finish)
    n/N - create new file/directory
      R - rename selected file or directory
      D - delete selected file or (empty) directory

Please read rover(1) for more information.

Requirements

  • Unix-like system;
  • curses library.

Configuration

Rover configuration (mostly key bindings and colors) can only be changed by editing the file config.h and rebuilding the binary.

Note that the external programs executed by some Rover commands may be changed via the appropriate environment variables. For example, to specify an editor:

$ VISUAL=vi rover

Rover will first check for variables prefixed with ROVER_. This can be used to change Rover behavior without interfering with the global environment:

$ ROVER_VISUAL=vi rover

Please read rover(1) for more information.

Copying

All of the source code and documentation for Rover is released into the public domain and provided without warranty of any kind.

rover's People

Contributors

ikji avatar lecram avatar orbea avatar oten avatar vifon avatar ypnose avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rover's Issues

Bad UTF-8 filename encoding

I have some files with a bad encoding. I think they came from a FAT32 pendrive using the latin-1 encoding, and are now in a EXT4 filesystem. Once I try to see the directory in rover, those files appear in a empty line; not even the size is shown.

I can replicate the behaviour by creating a bogus file (I'm using spanish locale, but any UTF-8 should work):

$ touch $(echo "bad\0355char")
$ ls
'bad'$'\355''char'
$ locale
LANG=es_ES.UTF-8
LC_CTYPE="es_ES.UTF-8"
LC_NUMERIC="es_ES.UTF-8"
LC_TIME="es_ES.UTF-8"
LC_COLLATE="es_ES.UTF-8"
LC_MONETARY="es_ES.UTF-8"
LC_MESSAGES="es_ES.UTF-8"
LC_PAPER="es_ES.UTF-8"
LC_NAME="es_ES.UTF-8"
LC_ADDRESS="es_ES.UTF-8"
LC_TELEPHONE="es_ES.UTF-8"
LC_MEASUREMENT="es_ES.UTF-8"
LC_IDENTIFICATION="es_ES.UTF-8"
LC_ALL=
$ rover

The problem is that the \355 character (í in latin encoding) is 0xED and hence a 2 multibyte starting byte in UTF-8. As the next character does't continue the 2 multibyte encoding, is an incorrect UTF-8 string.

The functions mbstowcs() and swprintf() are failling silently, returning -1, as they cannot deal with the string. So nothing gets copied to the WBUF buffer, and the row remains empty.

If you create a bogus directory, the behavior is even more interesting. The WBUF gets reused from the last usage, and the filename seems to be named as the CWD or the previous directory.

$ mkdir bad-$'\355'
$ rover

I was thinking in how to solve the issue, perhaps some workaround like the ls(1) program does, replacing the spurious character with an ? symbol or similar. Deletion and other operations work fine.

Rover freezes during file transfer

When transfering large amount of files, I can not move around in rover, neither switching tabs nor navigating in the current directory.
The "copying xx%" status bar at the bottom is progressing, and the computer is not frozen. When the transfer is finished, rover comes back to normal life again.
I'm wondering if that's how it supposed to be working at the moment, or is it actually a bug?

Unicode support

I've just noticed that the unicode filenames are broken. Æ is displayed as M-C~F, ö is M-CM-6 and so on. Would adding a proper Unicode support be difficult?

Add license file

I see in the README file, we have a COPYING section, In which it says: All of the source code and documentation for Rover is released into the public domain and provided without warranty of any kind.

How about adding it in a License file for ease of Packaging ?

P.S: You did an awesome job writing it.

Feature request: file type association support

"File browsers usually allow the user to open a file with an appropriate program. Rover is still very limited on this area."

I love rover and how uninvasive it is. Would be very useful to be able to use some kind of file type/application mapping to open files with external programs, something along the lines of a .rovercap file?

.doc application/msword; antiword %s
.pdf application/pdf; pdftotext %s
.sc application/sc; sc %s

etc

Error when building project

~/K/T/rover (master) $ make
cc  -o rover rover.c -lncursesw
rover.c:238:15: error: use of undeclared identifier 'SIGWINCH'
    sigaction(SIGWINCH, &sa, NULL);
              ^
rover.c:248:15: error: use of undeclared identifier 'SIGWINCH'
    sigaction(SIGWINCH, &sa, NULL);
              ^
rover.c:310:24: error: use of undeclared identifier 'SIGWINCH'
        kill(getpid(), SIGWINCH);
                       ^
3 errors generated.
make: *** [rover] Error 1
~/K/T/rover (master) $
~/K/T/rover (master) $ clang -v
Apple LLVM version 7.0.0 (clang-700.0.72)
Target: x86_64-apple-darwin15.0.0
Thread model: posix

Typing is invisible after hitting ENTER to launch shell in current directory, if rover is bound to a shortcut in bash

Say that I've set the following line in .bashrc

bind -x '"\eF":"rover"'

Now I can invoke rover by hitting Alt+Shift+f.

But when I hit ENTER key to open a subshell of the directory that I'm in rover. the typing has become invisible, but it works when I hit ENTER to commit the typing.

Here's the demo

rover-typing-invisible-issue.mp4

What happened?


bash version: 5.2.21
Terminal: Kitty with version 0.31.0

Open $SHELL on the currect directory and problems with recursive instances

Hello,

is there a way to enter $SHELL on the current directory and quit rover?

What usually happens to me:

  1. I use rover and enter $SHELL on a directory.
  2. Do something there, forget that I was using rover.
  3. Start another instance of rover, and so on.

Instead I should type exit to get back to the original rover instance. However, maybe I also changed directory in the meantime and want to use this new directory as a starting point for using rover?

I also had problems with rover not responding because there were too many recursive instances. Maybe I am just missing something fundamental, so please correct me.

Output marked entries to STDOUT upon exiting

Nice tool.

Would be interesting to have some sort of way (e.g. command line switch) that has rover output any entries marked upon exit;

This would allow useful piping to other commands.

Public Domain Dedication/License?

Would you be willing to license this code under a formal dedication to the public domain like the unlicense or CC0? I greatly respect that you've placed this code in the public domain, but these more verbose licenses ensure that your intentions are respected in countries that don't legally recognize the concept of "public domain." For a more thorough breakdown of why these licenses are helpful, see this wiki article.

Fails to open files with a space in its name.

OS: Slackware64-current
rover-0.4.2-x86_64-1_SBo

When trying to open a file with rover using a program like less it will fail to do so if the file name has spaces in it.

To test try this, touch "some test name" and then opening it in rover and you will see an issue along the lines of:

$ rover
some: No such file or directory
test: No such file or directory
name: No such file or directory

Compilation error on OpenBSD

When running make, I get the following error:

Package ncursesw was not found in the pkg-config search path

I have plenty of other programs on my machine that use ncursesw and have compiled them before, so I'm not sure what the issue would be here.

m-C key sequence empties the marked files

Hey what's up? Yours is still the best file manager out there.

In all those years I was very careful to not hit m followed by C, but it did happen a couple of times and once I didn't have a backup. (For a split second I had thought C created a new directory to where I would then move the files I just marked.)

The key sequence marks a file and then writes an empty file of the same name over it. There might be other sequences that pose the same risk.

Would you mind adding a protection against this?

Segault on Empty directory

Hi,

just recognized this behavior.

open rover in a empty directory --> imitatively segfault

$ rover

│ │
│Segmentation fault │
$ ───────────────────────────────────┘
$ Loading "/tmp/rover_test/"...
$
$ ls -l
total 0
$ ls -al
total 0
drwxrwxr-x 2 user user 40 2018-08-02 20:28 .
drwxrwxrwt 18 root root 400 2018-08-02 20:28 ..
$ pwd
/tmp/rover_test
$

Symlinks always treated as regular files

Currently symlinks are always treated as the regular files by the filters, even if they point to directories. Is that intentional? Most programs use the symlink target type to determine the "symlink type" so I've found this behavior confusing at first.

Add LDFLAGS and terminfo

Hi,
The following patch allows user-defined LDFLAGS to be used.-lterminfo was added to be able to compile rover with netbsd-curses from Sabotage Linux. Without that, we have a ton of those fatal messages:

tty.c:(.text+0x978): undefined reference to `ti_puts'
[...]
cr_put.c:(.text+0x2da): undefined reference to `cur_term'
cr_put.c:(.text+0x2f6): undefined reference to `tputs'

Here you go: http://sprunge.us/ibge

Aborted (core dumped) issue

[tomasz@arch ~]$ ldd /bin/rover
        linux-vdso.so.1 (0x00007ffd25d97000)
        libncursesw.so.5 => /usr/lib/libncursesw.so.5 (0x00007f2b488ae000)
        libc.so.6 => /usr/lib/libc.so.6 (0x00007f2b4850c000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f2b48b13000)

strace results:

execve("/bin/rover", ["/bin/rover"], [/* 62 vars */]) = 0
brk(0)                                  = 0x5556ab8c7000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=332137, ...}) = 0
mmap(NULL, 332137, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7ff6ebd51000
close(3)                                = 0
open("/usr/lib/libncursesw.so.5", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0P\1\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=411648, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ff6ebd50000
mmap(NULL, 2508816, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7ff6eb91d000
mprotect(0x7ff6eb97c000, 2097152, PROT_NONE) = 0
mmap(0x7ff6ebb7c000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x5f000) = 0x7ff6ebb7c000
close(3)                                = 0
open("/usr/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\260\10\2\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1979984, ...}) = 0
mmap(NULL, 3807760, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7ff6eb57b000
mprotect(0x7ff6eb714000, 2093056, PROT_NONE) = 0
mmap(0x7ff6eb913000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x198000) = 0x7ff6eb913000
mmap(0x7ff6eb919000, 14864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7ff6eb919000
close(3)                                = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ff6ebd4f000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ff6ebd4e000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ff6ebd4d000
arch_prctl(ARCH_SET_FS, 0x7ff6ebd4e700) = 0
mprotect(0x7ff6eb913000, 16384, PROT_READ) = 0
mprotect(0x7ff6ebb7c000, 16384, PROT_READ) = 0
mprotect(0x5556aa227000, 4096, PROT_READ) = 0
mprotect(0x7ff6ebda3000, 4096, PROT_READ) = 0
munmap(0x7ff6ebd51000, 332137)          = 0
ioctl(1, TCGETS, {B38400 opost isig icanon echo ...}) = 0
brk(0)                                  = 0x5556ab8c7000
brk(0x5556ab8e8000)                     = 0x5556ab8e8000
stat("/home/tomasz/.terminfo", 0x7ffc61d47240) = -1 ENOENT (No such file or directory)
stat("/usr/share/terminfo", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
access("/usr/share/terminfo/x/xterm", R_OK) = 0
open("/usr/share/terminfo/x/xterm", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=3270, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ff6ebda2000
read(3, "\32\0010\0&\0\17\0\235\1l\5xterm|xterm terminal"..., 4096) = 3270
read(3, "", 4096)                       = 0
close(3)                                = 0
munmap(0x7ff6ebda2000, 4096)            = 0
ioctl(1, TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(1, TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(1, TIOCGWINSZ, {ws_row=33, ws_col=85, ws_xpixel=0, ws_ypixel=0}) = 0
ioctl(1, TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(1, TIOCGWINSZ, {ws_row=33, ws_col=85, ws_xpixel=0, ws_ypixel=0}) = 0
brk(0x5556ab909000)                     = 0x5556ab909000
ioctl(1, TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(1, TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(1, TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(1, SNDCTL_TMR_STOP or TCSETSW, {B38400 opost isig -icanon echo ...}) = 0
ioctl(1, SNDCTL_TMR_STOP or TCSETSW, {B38400 opost isig -icanon -echo ...}) = 0
rt_sigaction(SIGTSTP, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGTSTP, {0x7ff6eb941d80, [], SA_RESTORER|SA_RESTART, 0x7ff6eb5ae5b0}, NULL, 8) = 0
rt_sigaction(SIGINT, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGINT, {0x7ff6eb941c90, [], SA_RESTORER|SA_RESTART, 0x7ff6eb5ae5b0}, NULL, 8) = 0
rt_sigaction(SIGTERM, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGTERM, {0x7ff6eb941c90, [], SA_RESTORER|SA_RESTART, 0x7ff6eb5ae5b0}, NULL, 8) = 0
rt_sigaction(SIGWINCH, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGWINCH, {0x7ff6eb941c80, [], SA_RESTORER, 0x7ff6eb5ae5b0}, NULL, 8) = 0
ioctl(1, TCGETS, {B38400 opost isig -icanon -echo ...}) = 0
ioctl(1, SNDCTL_TMR_STOP or TCSETSW, {B38400 opost isig -icanon -echo ...}) = 0
ioctl(1, SNDCTL_TMR_STOP or TCSETSW, {B38400 opost isig -icanon -echo ...}) = 0
write(1, "\33[?1049h\33[1;33r\33(B\33[m\33[4l\33[?7h\33["..., 37) = 37
write(1, "\33[?25l", 6)                 = 6
rt_sigaction(SIGWINCH, {0x5556aa025310, [], SA_RESTORER, 0x7ff6eb5ae5b0}, NULL, 8) = 0
getcwd("/home/tomasz", 4096)            = 13
rt_sigaction(SIGTSTP, {SIG_IGN, [], SA_RESTORER|SA_RESTART, 0x7ff6eb5ae5b0}, {0x7ff6eb941d80, [], SA_RESTORER|SA_RESTART, 0x7ff6eb5ae5b0}, 8) = 0
write(1, "\33[39;49m\33[39;49m\33(B\33[m\33[H\33[2J\33[3"..., 72) = 72
rt_sigaction(SIGTSTP, {0x7ff6eb941d80, [], SA_RESTORER|SA_RESTART, 0x7ff6eb5ae5b0}, NULL, 8) = 0
chdir("/home/tomasz/")                  = 0
openat(AT_FDCWD, ".", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3
getdents(3, /* 113 entries */, 32768)   = 3688
getdents(3, /* 0 entries */, 32768)     = 0
lseek(3, 0, SEEK_SET)                   = 0
brk(0x5556ab92a000)                     = 0x5556ab92a000
getdents(3, /* 113 entries */, 32768)   = 3688
lstat("Biblioteka calibre", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat("Biblioteka calibre", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("Szablony", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat("Szablony", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("Wideo", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat("Wideo", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("Pobrane", {st_mode=S_IFDIR|0700, st_size=12288, ...}) = 0
stat("Pobrane", {st_mode=S_IFDIR|0700, st_size=12288, ...}) = 0
lstat("cover.log", {st_mode=S_IFREG|0644, st_size=5932, ...}) = 0
stat("cover.log", {st_mode=S_IFREG|0644, st_size=5997, ...}) = 0
lstat("Muzyka", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat("Muzyka", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("Pulpit", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat("Pulpit", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("Dropbox", {st_mode=S_IFDIR|0700, st_size=4096, ...}) = 0
stat("Dropbox", {st_mode=S_IFDIR|0700, st_size=4096, ...}) = 0
lstat("Obrazy", {st_mode=S_IFDIR|0755, st_size=12288, ...}) = 0
stat("Obrazy", {st_mode=S_IFDIR|0755, st_size=12288, ...}) = 0
lstat("AUR4", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat("AUR4", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("PDF", {st_mode=S_IFDIR|0700, st_size=4096, ...}) = 0
stat("PDF", {st_mode=S_IFDIR|0700, st_size=4096, ...}) = 0
lstat("Copy", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat("Copy", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("Dokumenty", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat("Dokumenty", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("VirtualBox VMs", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat("VirtualBox VMs", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("GITHUB", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat("GITHUB", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("MEGA", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat("MEGA", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("DEV", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat("DEV", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
getdents(3, /* 0 entries */, 32768)     = 0
close(3)                                = 0
open("/dev/tty", O_RDWR|O_NOCTTY|O_NONBLOCK) = 3
writev(3, [{"*** ", 4}, {"buffer overflow detected", 24}, {" ***: ", 6}, {"/bin/rover", 10}, {" terminated\n", 12}], 5) = 56
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ff6ebda2000
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 4
fstat(4, {st_mode=S_IFREG|0644, st_size=332137, ...}) = 0
mmap(NULL, 332137, PROT_READ, MAP_PRIVATE, 4, 0) = 0x7ff6ebcfb000
close(4)                                = 0
open("/usr/lib/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = 4
read(4, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\260*\0\0\0\0\0\0"..., 832) = 832
fstat(4, {st_mode=S_IFREG|0644, st_size=537656, ...}) = 0
mmap(NULL, 2185440, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 4, 0) = 0x7ff6eb365000
mprotect(0x7ff6eb37b000, 2093056, PROT_NONE) = 0
mmap(0x7ff6eb57a000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x15000) = 0x7ff6eb57a000
close(4)                                = 0
munmap(0x7ff6ebcfb000, 332137)          = 0
write(3, "======= Backtrace: =========\n", 29) = 29
writev(3, [{"/usr/lib/libc.so.6", 18}, {"(", 1}, {"+0x", 3}, {"71bad", 5}, {")", 1}, {"[0x", 3}, {"7ff6eb5ecbad", 12}, {"]\n", 2}], 8) = 45
writev(3, [{"/usr/lib/libc.so.6", 18}, {"(", 1}, {"__fortify_fail", 14}, {"+0x", 3}, {"37", 2}, {")", 1}, {"[0x", 3}, {"7ff6eb672ff7", 12}, {"]\n", 2}], 9) = 56
writev(3, [{"/usr/lib/libc.so.6", 18}, {"(", 1}, {"+0x", 3}, {"f61c0", 5}, {")", 1}, {"[0x", 3}, {"7ff6eb6711c0", 12}, {"]\n", 2}], 8) = 45
writev(3, [{"/usr/lib/libc.so.6", 18}, {"(", 1}, {"+0x", 3}, {"f7885", 5}, {")", 1}, {"[0x", 3}, {"7ff6eb672885", 12}, {"]\n", 2}], 8) = 45
writev(3, [{"/bin/rover", 10}, {"(", 1}, {"+0x", 3}, {"4ab6", 4}, {")", 1}, {"[0x", 3}, {"5556aa025ab6", 12}, {"]\n", 2}], 8) = 36
writev(3, [{"/bin/rover", 10}, {"(", 1}, {"+0x", 3}, {"580d", 4}, {")", 1}, {"[0x", 3}, {"5556aa02680d", 12}, {"]\n", 2}], 8) = 36
writev(3, [{"/bin/rover", 10}, {"(", 1}, {"+0x", 3}, {"307d", 4}, {")", 1}, {"[0x", 3}, {"5556aa02407d", 12}, {"]\n", 2}], 8) = 36
writev(3, [{"/usr/lib/libc.so.6", 18}, {"(", 1}, {"__libc_start_main", 17}, {"+0x", 3}, {"f0", 2}, {")", 1}, {"[0x", 3}, {"7ff6eb59b790", 12}, {"]\n", 2}], 9) = 59
writev(3, [{"/bin/rover", 10}, {"(", 1}, {"+0x", 3}, {"4209", 4}, {")", 1}, {"[0x", 3}, {"5556aa025209", 12}, {"]\n", 2}], 8) = 36
write(3, "======= Memory map: ========\n", 29) = 29
open("/proc/self/maps", O_RDONLY)       = 4
read(4, "5556aa021000-5556aa028000 r-xp 0"..., 1024) = 1024
write(3, "5556aa021000-5556aa028000 r-xp 0"..., 1024) = 1024
read(4, "               /usr/lib/libc-2.2"..., 1024) = 1024
write(3, "               /usr/lib/libc-2.2"..., 1024) = 1024
read(4, "--p 00000000 00:00 0            "..., 1024) = 217
write(3, "--p 00000000 00:00 0            "..., 217) = 217
read(4, "", 1024)                       = 0
close(4)                                = 0
rt_sigprocmask(SIG_UNBLOCK, [ABRT], NULL, 8) = 0
gettid()                                = 4334
tgkill(4334, 4334, SIGABRT)             = 0
--- SIGABRT {si_signo=SIGABRT, si_code=SI_TKILL, si_pid=4334, si_uid=1000} ---
+++ killed by SIGABRT (core dumped) +++

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.