Ma Xiaojun | 21 May 2013 10:35
Picon

Support for Assembly Language Debugging

There is a 2009 book on Linux Assembly called <Assembly Language Step
By Step, for Linux>:
http://www.duntemann.com/assembly.html

Though the book is not released under a libre license, it is still
nice to see books talking about FOSS.
However, that book uses Insight as GDB frontend, which seems
unmaintained and removed from Debian/Ubuntu repo for quite a long
time.
http://sourceware.org/insight/

Nemiver seems to be one of next generation GDB front-ends. (I assume
GTK+ is more modern than Tcl/Tk here.)

I just tried Nemiver on Ubuntu 13.04. It seems working for C/C++
programs. But I cannot make it work for assembly programs.

In particular, use the hello.asm in the following page:
http://www.tldp.org/HOWTO/Assembly-HOWTO/hello.html

And use:
nasm -f elf64 -g hello.asm
ld -o hello hello.o

Load "hello" into Nemiver, it just report program exited.
Using plain GDB, I can at least use "l" to see the assembly source.

Can anyone help? Thank you in advance.
Dodji Seketeli | 14 Apr 2013 19:09

[PATCH] 687609 - nemiver should install a highcontrast app icon

Hello,

This patch implements the Nemiver part of the "HighContrast application
icons" GNOME Goal[1].  The intent is for Nemiver to install a
HighContrast icon to be used for the HighContrast accessible theme, in
addition to the regular icon that is installed already.

[1]: https://live.gnome.org/GnomeGoals/HighContrastAppIcons

The icons where hacked for us by Andreas Nilsson and attached to
bugzilla at https://bugzilla.gnome.org/show_bug.cgi?id=687609.

I am a tad late for this, but better late than never, or so they say.

Applied to master.

	* configure.ac (data/icons/hicolor/*, data/icons/HighContrast/):
	Generate Makefiles from the Makefile.am of this two new sub-directories.
	(data/icons/{16x16,22x22,24x24,32x32,48x48,scalable): Do not
	generate Makefiles for these directories as they got moved under
	data/icons/hicolor.
	* data/icons/HighContrast/16x16/Makefile.am: New file.
	* data/icons/HighContrast/16x16/nemiver.png: Likewise.
	* data/icons/HighContrast/22x22/Makefile.am: Likewise.
	* data/icons/HighContrast/22x22/nemiver.png: Likewise.
	* data/icons/HighContrast/24x24/Makefile.am: Likewise.
	* data/icons/HighContrast/24x24/nemiver.png: Likewise.
	* data/icons/HighContrast/256x256/Makefile.am: Likewise.
	* data/icons/HighContrast/256x256/nemiver.png: Likewise.
	* data/icons/HighContrast/32x32/Makefile.am: Likewise.
(Continue reading)

Dodji Seketeli | 14 Apr 2013 15:38

[PATCH] Various logging and style tweaking

Hello,

While looking at debugging an issue, I felt the need to add some new
logs, and I stumbled accross some places that could use some style
cleanups.

Thus this patch, tested an applied to the master branch.

	* src/common/nmv-proc-utils.cc (launch_program): Use LOD_DD to log
	to the default domain.
	* src/dbgengine/nmv-gdb-engine.cc (GDBEngine::launch_gdb): Add
	more logs.
	(GDBEngine::load_program): Remove trailing white space and add
	mode logs.
	* src/persp/dbgperspective/nmv-dbg-perspective.cc
	(DBGPerspective::execute_program): Simplify logic.  What was I
	thinking ...
---
 src/common/nmv-proc-utils.cc                    | 2 +-
 src/dbgengine/nmv-gdb-engine.cc                 | 4 +++-
 src/persp/dbgperspective/nmv-dbg-perspective.cc | 4 +---
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/common/nmv-proc-utils.cc b/src/common/nmv-proc-utils.cc
index c6fc315..cfa8d2a 100644
n--- a/src/common/nmv-proc-utils.cc
+++ b/src/common/nmv-proc-utils.cc
 <at>  <at>  -68,7 +68,7  <at>  <at>  launch_program (const std::vector<UString> &a_args,
          ++it) {
         str += *it + " ";
(Continue reading)

Dodji Seketeli | 14 Apr 2013 15:40

[PATCH] 697992 - fail to restart a program wrapped in libtool shell script

Hello,

This bug happens when the user is debugging a program that is wrapped
in a libtool shell script.  That is, she does:

 nemiver foo

but foo is a libtool wrapper script, rather than the real binary.  These
beasts are usually generated by libtool when you use it e.g, coupled
with autoconf and automake.

In that case, Nemiver issues the command:

 libtool --mode=execute gdb foo

Libtool then spawns a GDB process with the path to the real binary
wrapped by the foo shell script.  That might be someting like:

    .libs/lt-foo.

Now when the user modifies the source code of foo, and then type
'make' again, it happens that the autotools machinery removes the
.libs/lt-foo binary.  So when the user asks for the a restart of the
foo in Nemiver, the debugger tries asks GDB to restart .libs/lt-foo,
and then gets lost as the .libs/lt-foo got removed.

I believe the Right Thing To Do ™ in that case is for Nemiver to issue
a:

 libtool --mode=execute gdb foo
(Continue reading)

Inductiveload | 6 Mar 2013 18:14
Picon

Nemiver fails assertion when remote debugging AVR target

Hi,

I am trying to use Nemiver to debug an AVR program written in C and
running on an XMEGA chip, which I know is not exactly a standard
use-case, but it should still work, as it's basically just gdb as
far as the debugger cares. I compile with avr-gcc and run AVaRICE as
a gdb server. I can debug it with avr-gdb on the console, and in
DDD. However, I'd quite like to use Nemiver for this. I start
Nemiver with the following arugments:

> nemiver --remote=localhost:4242 --gdb-binary=/usr/bin/avr-gdb program.elf

I get the following error pop up:

> Assertion failed: addr_range.min () != 0 && addr_range.max () != 0

This assertion comes from
src/persp/dbgperspective/nmv-dbg-perspective.cc:7762

This problem occurs in Nemiver 0.93 and a fresh git build.

The behaviour of avr-gdb and DDD is to break at "0x00000000 in
__vectors ()" on startup. This zero address is presumably what
triggers the assert failure here. Commenting the assertion out (c.f.
patch) allows Nemiver to start normally. I'm not sure what you could
use to say if a zero address is a sign of a problem or is normal
behaviour like here?

Thanks,

(Continue reading)

Dodji Seketeli | 24 Feb 2013 23:36

[PATCH] Use AM_CPPFLAGS instead of INCLUDE

Hello,

Automake 1.13.1 in Fedora Rawhide complains loudly that the INCLUDE
variable in tests/Makefile.am is deprecated and should be replaced by
AM_CPPFLAGS.  What do I know to resist.  Fixed thus and applied to the
master branch.

	* tests/Makefile.am: Use AM_CPPFLAGS instead of the deprecated
	INCLUDE variable.  At least automake 1.13.1 complains for that.
---
 tests/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tests/Makefile.am b/tests/Makefile.am
index 39522a4..38877bc 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
 <at>  <at>  -201,7 +201,7  <at>  <at>  bigvar_LDADD= <at> NEMIVERCOMMON_LIBS <at> 
 threads_SOURCES=$(h)/threads.cc
 threads_LDADD= <at> NEMIVERCOMMON_LIBS <at> 

-INCLUDES=-I$(top_srcdir)/src \
+AM_CPPFLAGS=-I$(top_srcdir)/src \
 -I$(top_srcdir)/src/confmgr \
 -I$(top_srcdir)/src/dbgengine \
  <at> NEMIVERCOMMON_CFLAGS <at>  -DBOOST_TEST_DYN_LINK \
--

-- 
		Dodji
Dodji Seketeli | 24 Feb 2013 23:34

[PATCH] Misc style cleanups

Hello,

While looking at something else, I stumbled accross a bunch of code that
could use some style cleanup.  Fixed thus and committed to master.

	* src/persp/dbgperspective/nmv-preferences-dialog.cc (lots of
	inline member functions): Make inline member functions start on
	their own line, rather than following their return type.
	(Priv::update_widget_from_source_dirs_key):  Mention 'conf keys"
	rather than 'gconf key'.  GConf is just one of the two conf
	backends we support now.
	* src/persp/dbgperspective/nmv-variables-utils.cc
	(unlink_a_variable_row): Fix comment.
---
 src/persp/dbgperspective/nmv-preferences-dialog.cc | 143 +++++++++++++--------
 src/persp/dbgperspective/nmv-variables-utils.cc    |   2 +-
 2 files changed, 92 insertions(+), 53 deletions(-)

diff --git a/src/persp/dbgperspective/nmv-preferences-dialog.cc b/src/persp/dbgperspective/nmv-preferences-dialog.cc
index 4059657..1d47c15 100644
--- a/src/persp/dbgperspective/nmv-preferences-dialog.cc
+++ b/src/persp/dbgperspective/nmv-preferences-dialog.cc
 <at>  <at>  -129,7 +129,8  <at>  <at>  public:
         init ();
     }

-    void on_tree_view_selection_changed ()
+    void
+    on_tree_view_selection_changed ()
     {
(Continue reading)

Dodji Seketeli | 24 Feb 2013 23:51

[PATCH] 680376 - Local variables in nested scopes don't get refreshed automatically

Hello,

To understand this bug, consider this test case (line numbers were
added to ease explanations):

     1	int
     2	main ()
     3	{
     4	    int a = 0;
     5	    a += 1;
     6	    a *= 2;
     7	
     8	    {
     9	        int b = a;
    10	        b += 2;
    11	        a = b;
    12	    }
    13	
    14	    int c = a;
    15	    c++;
    16	    return c;
    17	}

When Nemiver first enters the function, it queries the back-end (which
is GDB nowadays) for the list of local variables.  GDB says that the
list of variables known at the beginning of the function are: 'a' and
'c'.  Then, each time the program stops, Nemiver queries GDB for the
state of 'a' and 'c'.

But then when we enter the nested scope (that starts at line 8),
(Continue reading)

Esra Altintas | 11 Feb 2013 14:58
Picon
Gravatar

LinkedIn'de bağlantı kurma daveti

 
 
 
 
 
Esra Altintas adlı kullanıcıdan
 
Şu okulda öğrenci: Çanakkale Onsekiz Mart Üniversitesi
Muğla, Türkiye
 
 
 
 
 
 
 

Sizi LinkedIn'deki profesyonel ağıma eklemek istiyorum.

- Esra Altintas

 
 
 
 
 
 
 
Bağlantı kurmak için davet e-postaları alıyorsunuz. Aboneliği İptal Et
© 2012, LinkedIn Corporation. 2029 Stierlin Ct. Mountain View, CA 94043 USA
 
_______________________________________________
nemiver-list mailing list
nemiver-list@...
https://mail.gnome.org/mailman/listinfo/nemiver-list
Dodji Seketeli | 14 Jan 2013 00:21

A new Nemiver release 0.9.4 is now available.

Hello,

This release of Nemiver essentially brings bug fixes along with
language translation updates.  Distribution package maintainers are
encouraged to switch to this new version.

Below is the formal announcement.

What is Nemiver?
================

Nemiver is a standalone graphical debugger that integrates well in the
GNOME desktop environment.  It currently features a backend which uses
the GNU debugger GDB for debugging C/C++ programs.

Where to get it?
================

This release is available as a source package in tar.xz format and can
be downloaded from: http://download.gnome.org/sources/nemiver.

The home page of the Nemiver project is at http://projects.gnome.org/nemiver.

What's changed in this release?
================================

Alexandre Franke:
      Update French translation

Ask H. Larsen:
      Updated Danish translation

Bruce Cowan:
      Updated British English translation

Carles Ferrando:
      Added Catalan (Valencian) translation

Cheng-Chia Tseng:
      Updated Traditional Chinese translation(Hong Kong and Taiwan)

Daniel Mustieles:
      Updated Spanish translation
      Added search keywords to .desktop file

Dimitris Spingos:
      Updated Greek translation help

Dodji Seketeli:
      689338 - Sometimes current frame is wrongly set
      689458 - Crash when copying variable value
      684046 - nemiver.desktop conformance fix
      670439 - Nemiver doesn't handle well multi-threaded apps
      689575 - Freeze when local variable values are refreshed
      Fix well form-ness of gl.po
      Fix help browser launching
      Fix French translation markup
      Ensure workbench body is shown
      Added a README.release.txt file
      Various code cleanups

Duarte Loreto:
      Updated Portuguese translation

Fran Diéguez:
      Updated Galician translations

Gabor Kelemen:
      Added hu to LINGUAS
      Added Hungarian translation

Gabriel Speckhahn:
      Updated Brazilian Portuguese translation

Gheyret Kenji:
      Uyghur translation added.

Gil Forcada:
      Updated Catalan translation

Javier Jardón:
      Use new documentation infrastructure

Kjartan Maraas:
      Updated Norwegian bokmål translation

Marek Černocký:
      Updated Czech translation

Mario Blättermann:
      Updated German doc translation
      Updated German translation

Matej Urbančič:
      Updated Slovenian translation

OKANO Takayoshi:
      Updated Japanese translation

Piotr Drąg:
      Updated Polish translation

Rajesh Ranjan:
      hindi update

Richard Stanislavský:
      Added Slovak translation

Rūdolfs Mazurs:
      Added Latvian translation

Seong-ho Cho:
      Updated Korean translation

Takeshi AIHANA:
      Updated Japanese translation.

Wolfgang Stoeggl:
      Updated German translation

Yuri Myasoedov:
      Updated Russian translation

lainme:
      update Simplified Chinese (zh_CN) translation

Happy Debugging!

--

-- 
		Dodji
_______________________________________________
nemiver-list mailing list
nemiver-list <at> gnome.org
https://mail.gnome.org/mailman/listinfo/nemiver-list
Dodji Seketeli | 6 Dec 2012 06:31

[PATCH] Indentation fixes in nmv-workbench.cc

Hello,

The patch below is just for some obvious indentation fixes.

	* src/workbench/nmv-workbench.cc (Workbench::init_builder)
	(Workbench::init_toolbar, init_body): Fix indentation.
---
 src/workbench/nmv-workbench.cc | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/workbench/nmv-workbench.cc b/src/workbench/nmv-workbench.cc
index 6287336..f3a0131 100644
--- a/src/workbench/nmv-workbench.cc
+++ b/src/workbench/nmv-workbench.cc
 <at>  <at>  -575,7 +575,7  <at>  <at>  Workbench::init_builder ()

     Gtk::Widget *w =
         ui_utils::get_widget_from_gtkbuilder<Gtk::Window> (m_priv->builder,
-                                                      "workbench");
+                                                           "workbench");
     THROW_IF_FAIL (w);
     m_priv->root_window.reset (dynamic_cast<Gtk::Window*>
                                                 (w->get_toplevel ()));
 <at>  <at>  -760,7 +760,8  <at>  <at>  Workbench::init_toolbar ()

     m_priv->toolbar_container =
         ui_utils::get_widget_from_gtkbuilder<Gtk::Notebook> (m_priv->builder,
-                                                        "toolbarcontainer");
+                                                             "toolbarcontainer");
+    m_priv->toolbar_container->show_all ();
 }

 void
 <at>  <at>  -769,7 +770,8  <at>  <at>  Workbench::init_body ()
     LOG_FUNCTION_SCOPE_NORMAL_DD;
     m_priv->bodies_container =
         ui_utils::get_widget_from_gtkbuilder<Gtk::Notebook> (m_priv->builder,
-                                                        "bodynotebook");
+                                                             "bodynotebook");
+    m_priv->bodies_container->show_all ();
 }

 void
--

-- 
		Dodji

Gmane