Code Monkey home page Code Monkey logo

insight's Introduction

IMPORTANT NOTE:

The insight graphical debugger is now back to its legitimate location at
https://sourceware.org/git/?p=insight.git.
The current github repository will NOT be updated anymore and will be removed
soon.
Please update your git location to git://sourceware.org/git/insight.git.

YOU HAVE BEEN WARNED !!!


		insight: the gdb tcl/tk graphic interface
		-----------------------------------------

The GUI part of insight is now maintained outside the gdb tree. Bundles are
therefore needed to get the whole code embedded. They are implemented as:

- bfd, opcodes, texinfo, readline, libiberty, include, sim, cpu, intl and
  libdecnumber are now bundles of binutils-gdb.

- libgui does not appear in any other repository and thus is now part of
  insight.

- binutils-gdb is included as a git submodule.

- tcl, tk, itcl, itk and iwidgets must be provided externally.


Cloning:
  After a simple clone, the submodule has to be initialized and downloaded. This
is done as:
	git clone <url>
	cd insight.git
	git submodule init
	git submodule update

Alternatively, initial cloning can be performed as:
	git clone --recursive <url>

Updating:
  For automatic submodule pulls upon main module pull, set

	git config fetch.recurseSubmodules true

else use

	git submodule foreach --recursive git pull

when submodule pulls are required.
If upgrade of submodules is needed, finish update by

	git submodule update --remote


Building:
- Prepare the configuration scripts with:
autoconf

- Configure the package with the needed options. In example:
./configure	--prefix=/usr/.						\
		--libdir=/usr/lib64					\
		--disable-binutils					\
		--disable-elfcpp					\
		--disable-gas						\
		--disable-gold						\
		--disable-gprof						\
		--disable-ld						\
		--disable-rpath						\
		--disable-zlib						\
		--enable-sim						\
		--with-gdb-datadir=/usr/share/insight			\
		--with-jit-reader-dir=/usr/lib64/insight		\
		--with-separate-debug-dir='/usr/lib/debug'		\
		--with-expat						\
		--with-python						\
		--without-libunwind

  The configure script builds the "bundle" directory where the rest of
  the build will be performed.

- run make: the top Makefile is only a stub recursively making in the
  "bundle" directory.


To produce a source release tarball:
- Start from a FRESH recursive clone. Work in its top directory.
- autoconf
- configure
- (cd bundle; ./src-release.sh [-b|-g|-x] insight)
  -b, -g and -x compress the tarball with bzip2, gzip and xz respectively.
Tarball is left in file bundle/insight-VE.RS.ION.DATE.tar[.suffix]

insight's People

Contributors

monnerat avatar shtiek 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

insight's Issues

Failed to run ARM EABI target on Ubuntu 14.04.01

  1. Tried to build insight with --target=arm-none-eabi.
    The build has finished successfully, but running arm-none-eabi-insight produces an error:
    Error: can't find package itk 4.0
  2. Missing uninstall target - playing with --prefix=/usr is dangerous

build of insight can not find Tcl private header files

Compiling insight fails on Slackware 14.2, which has its default tcl/tk of version 8.6.5. The message is "Can not find the Tcl private headers", but they do actually exist in /usr/include.

Here's the end of the output from make:

--snip--
Configuring in ./libgui
configure: loading cache ./config.cache
checking for a BSD-compatible install... /usr/bin/ginstall -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether to enable maintainer-specific portions of Makefiles... no
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking for x86_64-pc-linux-gnu-gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking for x86_64-pc-linux-gnu-ranlib... ranlib
checking for x86_64-pc-linux-gnu-ar... ar
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for size_t... yes
checking for working alloca.h... yes
checking for alloca... yes
checking stddef.h usability... yes
checking stddef.h presence... yes
checking for stddef.h... yes
checking for stdlib.h... (cached) yes
checking getopt.h usability... yes
checking getopt.h presence... yes
checking for getopt.h... yes
checking for unistd.h... (cached) yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking sys/file.h usability... yes
checking sys/file.h presence... yes
checking for sys/file.h... yes
checking sys/wait.h usability... yes
checking sys/wait.h presence... yes
checking for sys/wait.h... yes
checking for string.h... (cached) yes
checking for strings.h... (cached) yes
checking for raise... yes
checking for random... yes
checking for cygwin32... no
checking for Tcl configuration... found /usr/lib64/tclConfig.sh
checking for existence of /usr/lib64/tclConfig.sh... loading
checking for Tk configuration... found /usr/lib64/tkConfig.sh
checking for existence of /usr/lib64/tkConfig.sh... loading
checking for Tcl private headers... configure: error: could not find private Tcl headers
Makefile:6960: recipe for target 'configure-libgui' failed
make[2]: *** [configure-libgui] Error 1
make[2]: Leaving directory '/home/kreator/dev/GIT/insight/bundle'
Makefile:850: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/home/kreator/dev/GIT/insight/bundle'
Makefile:4: recipe for target 'notarget' failed
make: *** [notarget] Error 2
--snip--

I've confirmed that the ''private headers" are in /usr/include in slackware, but still I don't know enough about the GNU autotools to find out where it is trying to look for them.

Ideas?

Error: can't find package itk 3.3

Hi

First of all I thank you for developing such a tool. I am running Ubuntu 14.04.03 32 bit platform. I cloned your project and compiled it with

   autoconf

   ./configure --disable-binutilsconfigure.ac --disable-elfcppconfigure.ac --disable-gasconfigure.ac --disable-goldconfigure.ac --disable-gprofconfigure.ac --disable-ldconfigure.ac --disable-rpathconfigure.ac --disable-zlibconfigure.ac --enable-simconfigure.ac --with-gdb-datadir=/usr/local/share/insightconfigure.ac --with-jit-reader-dir=/usr/local/lib/insightconfigure.ac --with-separate-debug-dir='/usr/local/lib/debug'configure.ac --with-expatconfigure.ac --with-pythonconfigure.ac --without-libunwind

flags. During compilation it found local tcltk installation in

    /usr/lib/tcl8.5/tclConfig.sh
    /usr/lib/tcl8.6/tclConfig.sh

so I named /usr/local to /usr/localt.

Compilation ended successfully after hours of process. I renamed back /usr/local
I unstalled it , its default must be /usr/local/..

When I attempt to launch it in terminal like

   $ insight

I get

    Error: can't find package itk 3.3

I searched for the net but I could not find a solution. I had to install InsightToolkit-4.8.2 from source but it did not fix the error.

I have itk 3.3 dev package installed in my system, I tried to pass the library path to insight like:

   export LD_LIBRARY_PATH=/usr/lib/i386-linux-gnu/
   export LIBRARY_PATH=/usr/lib/

without luck.

I hope you help me fix it.

Kind regards.

Kenn

Would the development of Insight be continued in the future?

Hi,
I have used Insight for a long time. I also want to know whether this project is still alive or not. After reading a few messages from the mailing list, I find that you have created a git repository. It seems that the project has been restarted. What can I do for the project? Would the development of Insight be continued in the future?
Thanks.

Warning occurs on each add to watch window

Each time a typical variable is added to the watch window a warning pops up saying:

"Expression is not an assignment (and might have no effect)"

It doesn't stop the item from being watched but it is still annoying (and unexpected). The warning is coming from binutils-gdb/gdb/printcmd.c in function set_command(). It is intended to warn the user in command line GDB that an attempt to set a variable had no effect, such as "set loops==100" or even "set loops".

The attached patch file suppresses the warning when 1) a variable is set with no value assigned, 2) when a machine register is set with no value assigned and 3) when a "convenience" variable is set with no value assigned. Apparently insight's hooks into GDB when adding watch items cause values to be "set" with no value assigned.

008-Avoid-warning-on-every-add-to-watch.patch.zip

Adding this patch file to patches/binutils-gdb and re-running "configure..." + "make all install" fixes the problem in insight.

Running insight on Ubuntu 16.04 64-bit

hello,

Regarding insight (i am learning assembly by Jeff Duntemann's book "Assembly language step by step")
i have followed everything as in her:
https://github.com/monnerat/insight
The insight directory is now in my /root folder.

root@LIKAJF:# pwd
/root
root@LIKAJF:
# ls
insight
root@LIKAJF:# cd insight/
root@LIKAJF:
/insight# ls
autom4te.cache config.log configure.ac libgui README
binutils-gdb config.status COPYING Makefile testsuite
bundle configure gdbtk patches
root@LIKAJF:~/insight#

But how do i run insight from terminal to debug .asm files.
I get "no insight command found" when itry to run it.

Thank you in advance for your help.

*-devel packages needed?

The README does not mention that possibly various -devel packages are also need. With only the listed packages installed I saw a build error. This is on Fedora 23. I installed these extra packages and now it builds OK:
tk-devel
itk-devel
tcl-devel
itcl-devel
Not sure if all are needed.
Anyhow, thanks for providing this repo!

some errors and solutions

Hi,
I want to use insight, but the gdb version is too old at the last release version.
I was excited to find the project. Thank you for developing this tool.

  1. when I run insight, it gives error: can't find package tcl8.5
    My computer have three version tcl and tk: tcltk, tcl8.4,tcl8.5...
    I removed tcltk tcl8.4 tktcl tk8.4 tk8.6, and recompiled. it fixed.
  2. when I run insight, it gives error: can't find package itcl3
    sudo apt-get install itcl3
  3. error:can't find package itk3
    sudo apt-get install itk3
  4. error:can't find package iwidgets4
    sudo apt-get install iwidgets4

infrun.c:5238: internal-error: switch_back_to_stepped_thread: Assertion `!schedlock_applies (1)' failed

I was debugging a multithreaded application when this happened (hit a breakpoint, stepping over in insight's gdb console with "n"). I can reproduce this reliably (have done 3 times in a row); it doesn't happen in commandline gdb.

Fedora 21 x86_64 with insight-7.8.50-4.20140827git.fc21.x86_64, gdb-7.8.2-38.fc21.x86_64, binutils-2.24-30.fc21.x86_64

This looks very similar to https://sourceware.org/bugzilla/show_bug.cgi?id=17408 fixed in gdb 7.8.1 branch from October 29, 2014 (which RedHat has rebased from, according to the gdb rpm changelog). I installed the src.rpm to check, and the fix in gdb/infrun.c is indeed there, as described in https://sourceware.org/ml/gdb-patches/2014-10/msg00634.html

Can't find usable main.tcl

Any idea what causes this error on insight startup? I see the error when I use the fedora 25 provided insight package (actually only a f24 package is provided). I also see this when I build insight with this git project on an f25 machine. However, the strange thing is another f25 machine it works fine on (or at least it starts up and I see the gui). When I was on f23 over a year ago I had no problem with code built from this project.

Can't find a usable main.tcl in the following directories:
    /home/gene/install/insight/share/insight1.0 /usr/share/insight1.0 /usr/share/tcl8.6/insight1.0 /usr/lib64/tcl8.6/insight1.0 /usr/lib64/tk8.6/insight1.0 /usr/share/tk8.6/insight1.0 /home/gene/install/insight/share/redhat/gui/insight1.0 /home/gene/install/insight/lib/insight1.0 /home/gene/install/lib/insight1.0 /home/gene/install/insight/library

/home/gene/install/insight/share/insight1.0/main.tcl: wrong # args: should be "debug subcommand ?arg ...?"
wrong # args: should be "debug subcommand ?arg ...?"
    while executing
"debug"
    (procedure "pref_set_defaults" line 3)
    invoked from within
"pref_set_defaults"
    (file "/home/gene/install/insight/share/insight1.0/main.tcl" line 154)
    invoked from within
"source /home/gene/install/insight/share/insight1.0/main.tcl"
    ("uplevel" body line 1)
    invoked from within
"uplevel #0 [list source $file]"


This probably means that insight wasn't installed properly.

    while executing
"error $msg"
    (procedure "tcl_findLibrary" line 1)
    invoked from within
"tcl_findLibrary insight 1.0 {} main.tcl GDBTK_LIBRARY GDBTK_LIBRARY"
    (procedure "gdbtk_find_main" line 11)
    invoked from within
"gdbtk_find_main"

can a release be made ?

i've seen the sourceware git repo is still active. since the last insight release 6.8.1 is ten years old, it'd be nice if finally a release could be produced, since it's awkward to pull git repos with submodules for distro build recipes, also to run autoreconf via the build script. it's much nicer to have a release tarball where all this is included.

on another topic, i managed to get 6.8.1 to build, however when i start it it complains about:

Tcl_Init failed: Can't find a usable init.tcl in the following directories: 
    {} /share/tcl8.4 /library

i do have have tcl 8.6 installed though and the FAQ here https://sourceware.org/insight/faq.php#q-2.4 mentions environment variable TCL_LIBRARY, so i tried:

$ TCL_LIBRARY=/lib/tcl8.6 insight myprogram

which results in

Tcl_Init failed: Can't find a usable init.tcl in the following directories: 
    /lib/tcl8.6 {} /lib/tcl8.6 /lib/e/tcl8.4 /share/tcl8.4 /library

/lib/tcl8.6/init.tcl: version conflict for package "Tcl": have 8.4, need 8.6.4
version conflict for package "Tcl": have 8.4, need 8.6.4
    while executing
"package require -exact Tcl 8.6.4"
    (file "/lib/tcl8.6/init.tcl" line 19)
    invoked from within
"source /lib/tcl8.6/init.tcl"
    ("uplevel" body line 1)
    invoked from within
"uplevel #0 [list source $tclfile]"
/lib/tcl8.6/init.tcl: version conflict for package "Tcl": have 8.4, need 8.6.4
version conflict for package "Tcl": have 8.4, need 8.6.4
    while executing
...

do you happen to know how this can be fixed ?

Installing on Linux Mint 18.1

I was trying to install Insight debugger on linux mint 18.1. Every time I use make it shows following error Configuring in ./libgui
configure: creating cache ./config.cache
/mnt/28D42DB4D42D8562/Downloads/insight/bundle/libgui/configure: line 2182: syntax error near unexpected token libgui,' /mnt/28D42DB4D42D8562/Downloads/insight/bundle/libgui/configure: line 2182: AM_INIT_AUTOMAKE(libgui, 0.0)'
Makefile:6738: recipe for target 'configure-libgui' failed
make[2]: *** [configure-libgui] Error 1
make[2]: Leaving directory '/mnt/28D42DB4D42D8562/Downloads/insight/bundle'
Makefile:846: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/mnt/28D42DB4D42D8562/Downloads/insight/bundle'
Makefile:4: recipe for target 'notarget' failed
make: *** [notarget] Error 2

I tried same same with kali linux it worked. But for mint 18.1 it is not working. What might be the problem?

Latest update on upstream broke something

Hey @monnerat ,

I know that the original repo is at git://sourceware.org/git/insight.git , I hope you are the one who made the changes ? ( Patrick Monnerat ). The problem is that the latest update broke insight memory window , When I load a program , nothing is shown but on the previous versions it works great! Any idea why this occured.

If you wish to test this bug , Please use my portable version of insight , You don't need to install anything , Just download and mark it executable.

COMMIT 3a66ae3: ( The version which works good )
Download Insight-continuous-x86_64.AppImage

COMMIT c06903: ( The version which screws the memory window )
Download Insight-continuous-x86_64.AppImage

HOW TO EXECUTE APPIMAGE:

 $ # This is how you execute
 $ chmod +x Insight-continuous-x86_64.AppImage
 $ ./Insight-continuous-x86_64.AppImage

Project page for more info: https://github.com/antony-jr/insight

Thanks for the patches and other fixes. Please keep on doing your stuff.

Problems with target=arm-rtems4.12

The primary thing I am seeing is that very often when I debug an RTEMS (embedded RTOS using st-util gdbserver) program I don't see all the expected dashes on the left where breakpoints can be set. This is mainly in the bottom half of the single application file I am debugging. But the dashes at the top are sometimes on comments or blank lines. Then maybe if I make a change in the file (such as changing a comment) and rebuild and reload I then see all the dash marks and can set the breakpoints and the dashes appear on the expected lines. But if I quit the debugger and reload again, with no changes, the original problem recurs. But sometimes it works, sometimes not; seems kind of random -- not sure why it works sometimes.

The other problem I see is that if I set more than one breakpoint in the application and then, with right click on the red square and attempt to disable or delete a single breakpoint, all breakpoints are disabled or deleted, not just the one right-clicked on. (The breakpoint dialog works OK.) These are h/w breakpoints on rom addresses.

The only modification I made was to configure with --target=arm-rtems4.12 before building the master version.

unable to install, failed at make

hi, i followed your instructions (from http://www.dalfonso.co/blog/2016/04/23/setting-insight-debugger-on-ubuntu-16-04-lts/) to install insight debugger in ubuntu 16.04lts, unfortunately it failed at step 10 (make), below is the error message (by the way thanks a lot for bringing back insight):

./gdbtk/generic/gdbtk.c:552:1: error: invalid conversion from ‘void ()(Tcl_Time)’ to ‘void ()(const Tcl_Time)’ [-fpermissive]
};
^
./gdbtk/generic/gdbtk.c:552:1: error: invalid conversion from ‘int ()(Tcl_Time)’ to ‘int ()(const Tcl_Time)’ [-fpermissive]
Makefile:2096: recipe for target 'gdbtk.o' failed
make[3]: *** [gdbtk.o] Error 1
make[3]: Leaving directory '/root/insight/bundle/gdb'
Makefile:9006: recipe for target 'all-gdb' failed
make[2]: *** [all-gdb] Error 2
make[2]: Leaving directory '/root/insight/bundle'
Makefile:847: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/root/insight/bundle'
Makefile:4: recipe for target 'notarget' failed
make: *** [notarget] Error 2

I was able to install insight back in may 2016, but after I reinstall ubuntu and use the latest version error occurred, do you have older version of this?

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.