Access Violation
occur when executing `EMSDevServerCommand``for RAD Server on Debian platform:
$ ./EMSDevServerCommand
Exception EAccessViolation in module <unknown> at 0000000000000000.
Access violation at address 0000000000000000, accessing address 0000000000000000.
Tip
|
A quick solution is install curl .
|
First, using ldd
to show if for missing shared libraries used by EMSDevServerCommand
:
$ ldd EMSDevServerCommand
linux-vdso.so.1 (0x00007ffd4c1f6000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f14bd0a0000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f14bcedf000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f14bceda000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f14bceb9000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f14bcc9b000)
bplemsserverapi270.so => /usr/lib/ems/./bplemsserverapi270.so (0x00007f14bca71000)
bplFireDAC270.so => /usr/lib/ems/./bplFireDAC270.so (0x00007f14bc880000)
bplFireDACIBDriver270.so => /usr/lib/ems/./bplFireDACIBDriver270.so (0x00007f14bc7a3000)
bplrtl270.so => /usr/lib/ems/./bplrtl270.so (0x00007f14bbb17000)
bpldbrtl270.so => /usr/lib/ems/./bpldbrtl270.so (0x00007f14bb946000)
bplFireDACCommon270.so => /usr/lib/ems/./bplFireDACCommon270.so (0x00007f14bb728000)
bplFireDACCommonDriver270.so => /usr/lib/ems/./bplFireDACCommonDriver270.so (0x00007f14bb597000)
bplxmlrtl270.so => /usr/lib/ems/./bplxmlrtl270.so (0x00007f14bb01d000)
/lib64/ld-linux-x86-64.so.2 (0x00007f14bd0c0000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f14bae9a000)
libsqlite3.so.0 => /usr/lib/x86_64-linux-gnu/libsqlite3.so.0 (0x00007f14bad78000)
Apparently, all shared libraries is available in the system.
Next, use strace to debug EMSDevServerCommand
at runtime:
# Install strace
$ apt install -y strace
# Launch strace to debug EMSDevServerCommand
$ strace ./EMSDevServerCommand
execve("./EMSDevServerCommand", ["./EMSDevServerCommand"], 0x7ffe5ee80420 /* 18 vars */) = 0
brk(NULL) = 0x1b82000
readlink("/proc/self/exe", "/usr/lib/ems/EMSDevServerCommand", 4096) = 32
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
...
openat(AT_FDCWD, "/usr/lib/ems/libcurl.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) (1)
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 5
fstat(5, {st_mode=S_IFREG|0644, st_size=15855, ...}) = 0
mmap(NULL, 15855, PROT_READ, MAP_PRIVATE, 5, 0) = 0x7f35b0bfb000
close(5) = 0
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libcurl.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/libcurl.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/libcurl.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/lib/libcurl.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
munmap(0x7f35b0bfb000, 15855) = 0
openat(AT_FDCWD, "/usr/lib/ems/libcurl.so.4", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 5
fstat(5, {st_mode=S_IFREG|0644, st_size=15855, ...}) = 0
mmap(NULL, 15855, PROT_READ, MAP_PRIVATE, 5, 0) = 0x7f35b0bfb000
close(5) = 0
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libcurl.so.4", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/libcurl.so.4", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/libcurl.so.4", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/lib/libcurl.so.4", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
munmap(0x7f35b0bfb000, 15855) = 0
openat(AT_FDCWD, "/usr/lib/ems/libcurl.so.3", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 5
fstat(5, {st_mode=S_IFREG|0644, st_size=15855, ...}) = 0
mmap(NULL, 15855, PROT_READ, MAP_PRIVATE, 5, 0) = 0x7f35b0bfb000
close(5) = 0
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libcurl.so.3", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/libcurl.so.3", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/libcurl.so.3", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/lib/libcurl.so.3", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
munmap(0x7f35b0bfb000, 15855) = 0
openat(AT_FDCWD, "/usr/lib/ems/libcurl.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 5
fstat(5, {st_mode=S_IFREG|0644, st_size=15855, ...}) = 0
mmap(NULL, 15855, PROT_READ, MAP_PRIVATE, 5, 0) = 0x7f35b0bfb000
close(5) = 0
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libcurl.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/libcurl.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/libcurl.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/lib/libcurl.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
munmap(0x7f35b0bfb000, 15855) = 0
futex(0x7f35b0bf81a0, FUTEX_WAKE_PRIVATE, 2147483647) = 0
--- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_ACCERR, si_addr=NULL} ---
rt_sigreturn({mask=[]}) = 139868565804120
write(2, "Exception EAccessViolation in mo"..., 150Exception EAccessViolation in module <unknown> at 0000000000000000.
Access violation at address 0000000000000000, accessing address 0000000000000000.
) = 150
close(3) = 0
close(4) = 0
rt_sigaction(SIGINT, NULL, {sa_handler=0x7f35afbd7410, sa_mask=[INT QUIT], sa_flags=SA_RESTORER|SA_SIGINFO, sa_restorer=0x7f35b0a55840}, 8) = 0
rt_sigaction(SIGINT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f35b0a55840}, NULL, 8) = 0
rt_sigaction(SIGFPE, NULL, {sa_handler=0x7f35afbd7410, sa_mask=[INT QUIT], sa_flags=SA_RESTORER|SA_SIGINFO, sa_restorer=0x7f35b0a55840}, 8) = 0
rt_sigaction(SIGFPE, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f35b0a55840}, NULL, 8) = 0
rt_sigaction(SIGSEGV, NULL, {sa_handler=0x7f35afbd7410, sa_mask=[INT QUIT], sa_flags=SA_RESTORER|SA_SIGINFO, sa_restorer=0x7f35b0a55840}, 8) = 0
rt_sigaction(SIGSEGV, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f35b0a55840}, NULL, 8) = 0
rt_sigaction(SIGILL, NULL, {sa_handler=0x7f35afbd7410, sa_mask=[INT QUIT], sa_flags=SA_RESTORER|SA_SIGINFO, sa_restorer=0x7f35b0a55840}, 8) = 0
rt_sigaction(SIGILL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f35b0a55840}, NULL, 8) = 0
rt_sigaction(SIGBUS, NULL, {sa_handler=0x7f35afbd7410, sa_mask=[INT QUIT], sa_flags=SA_RESTORER|SA_SIGINFO, sa_restorer=0x7f35b0a55840}, 8) = 0
rt_sigaction(SIGBUS, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f35b0a55840}, NULL, 8) = 0
rt_sigaction(SIGQUIT, NULL, {sa_handler=0x7f35afbd7410, sa_mask=[INT QUIT], sa_flags=SA_RESTORER|SA_SIGINFO, sa_restorer=0x7f35b0a55840}, 8) = 0
rt_sigaction(SIGQUIT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f35b0a55840}, NULL, 8) = 0
munmap(NULL, 61439) = 0
exit_group(1) = ?
+++ exited with 1 +++
-
libcurl.so is missing
Installing curl
to the system and re-run EMSDevServerCommand
:
$ apt install -y curl
$ ./EMSDevServerCommand
RAD Development Server, Version 4.2
Copyright (c) 2009-2020 Embarcadero Technologies, Inc.
Commands:
- "start" to start the server
- "stop" to stop the server
- "set port" to change the default port
- "log" to show the log
- "log e" to enable the log
- "log d" to disable the log
- "clear" to clear the log
- "status" for Server status
- "help" to show commands
- "q" to quit
>