Захотел понять в какая строка вызывает ошибку. Нужен отладчик. Ради примера создал простой файл с ошибкой.void main(string[] args)
{
int a = 0;
int b = 5 / a;
}
А вот вывод из терминалаalsoijw@alsoijw-TravelMate-P253:~$ valac --debug 1.vala
1.vala:4.6-4.14: warning: local variable `b' declared but never used
int b = 5 / a;
^^^^^^^^^
Compilation succeeded - 1 warning(s)
alsoijw@alsoijw-TravelMate-P253:~$ gdb 1
GNU gdb (Ubuntu 7.7-0ubuntu3) 7.7
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from 1...done.
(gdb) quit
alsoijw@alsoijw-TravelMate-P253:~$ ltrace ./1
__libc_start_main(0x8048416, 1, 0xbfc31aa4, 0x8048440 <no return ...>
--- SIGFPE (Floating point exception) ---
+++ killed by SIGFPE +++
alsoijw@alsoijw-TravelMate-P253:~$ strace ./1
execve("./1", ["./1"], [/* 63 vars */]) = 0
brk(0) = 0x8eff000
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb77c7000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=115469, ...}) = 0
mmap2(NULL, 115469, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb77aa000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/i386-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\340\233\1\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1758972, ...}) = 0
mmap2(NULL, 1763964, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb75fb000
mmap2(0xb77a4000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1a9000) = 0xb77a4000
mmap2(0xb77a7000, 10876, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb77a7000
close(3) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb75fa000
set_thread_area({entry_number:-1 -> 6, base_addr:0xb75fa940, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0
mprotect(0xb77a4000, 8192, PROT_READ) = 0
mprotect(0x8049000, 4096, PROT_READ) = 0
mprotect(0xb77ea000, 4096, PROT_READ) = 0
munmap(0xb77aa000, 115469) = 0
--- SIGFPE {si_signo=SIGFPE, si_code=FPE_INTDIV, si_addr=0x804840e} ---
+++ killed by SIGFPE (core dumped) +++
Исключение в операции с плавающей точкой (сделан дамп памяти)
alsoijw@alsoijw-TravelMate-P253:~$ ./1
Исключение в операции с плавающей точкой (сделан дамп памяти)
alsoijw@alsoijw-TravelMate-P253:~$
Собственно сам вопрос: есть ли простой и удобный отладчик, которым удобно отлаживать код а Vala/Genie?