public inbox for insight@sourceware.org
 help / color / mirror / Atom feed
From: Tom Tromey <tromey@redhat.com>
To: Keith Seitz <keiths@redhat.com>
Cc: Insight List <insight@sourceware.org>
Subject: Re: [PATCH] use an observer instead of deprecated_file_changed_hook
Date: Thu, 09 Jan 2014 17:25:00 -0000	[thread overview]
Message-ID: <87k3e99if8.fsf@fleche.redhat.com> (raw)
In-Reply-To: <87txdd9iy5.fsf@fleche.redhat.com> (Tom Tromey's message of "Thu,	09 Jan 2014 10:13:54 -0700")

Tom> This one failed with my patch.  I'm trying a new patch to see if I can
Tom> make it work reasonably well with the existing observers.  I'll let you
Tom> know.

I thought I could make it work by also using the free_objfile observer,
but that observer is not in the old CVS repository.  So until Insight
has its own git repository and can be based on the latest gdb, no joy
here.

I'm appending my current patch for reference.  I can't test it though.

Tom

Index: gdbtk-hooks.c
===================================================================
RCS file: /cvs/src/src/gdb/gdbtk/generic/gdbtk-hooks.c,v
retrieving revision 1.60
diff -u -c -r1.60 gdbtk-hooks.c
cvs diff: conflicting specifications of output style
--- gdbtk-hooks.c	2 Jul 2013 17:07:29 -0000	1.60
+++ gdbtk-hooks.c	9 Jan 2014 17:24:28 -0000
@@ -1,7 +1,7 @@
 /* Startup code for Insight.
 
    Copyright (C) 1994, 1995, 1996, 1997, 1998, 2000, 200, 2002, 2003, 2004,
-   2008, 2010, 2011, 2012, 2013 Free Software Foundation, Inc.
+   2008, 2010, 2011, 2012, 2013, 2014 Free Software Foundation, Inc.
 
    Written by Stu Grossman <grossman@cygnus.com> of Cygnus Support.
 
@@ -77,7 +77,8 @@
 static void gdbtk_trace_start_stop (int, int);
 static void gdbtk_attach (void);
 static void gdbtk_detach (void);
-static void gdbtk_file_changed (char *);
+static void gdbtk_new_objfile (struct objfile *);
+static void gdbtk_objfile_removed (struct objfile *);
 static void gdbtk_exec_file_display (char *);
 static void gdbtk_call_command (struct cmd_list_element *, char *, int);
 static ptid_t gdbtk_wait (ptid_t, struct target_waitstatus *, int);
@@ -144,7 +145,9 @@
   deprecated_ui_loop_hook = x_event;
   deprecated_pre_add_symbol_hook = gdbtk_pre_add_symbol;
   deprecated_post_add_symbol_hook = gdbtk_post_add_symbol;
-  deprecated_file_changed_hook = gdbtk_file_changed;
+  observer_attach_new_objfile (gdbtk_new_objfile);
+  observer_attach_free_objfile (gdbtk_objfile_removed);
+
   specify_exec_file_hook (gdbtk_exec_file_display);
 
   deprecated_trace_find_hook = gdbtk_trace_find;
@@ -764,11 +767,23 @@
   gdb_context = num;
 }
 
-/* Called from file_command */
+/* Called from file_command, via the new objfile observer.  */
+static void
+gdbtk_new_objfile (struct objfile *objfile)
+{
+  if (objfile == symfile_objfile && objfile != NULL)
+    gdbtk_two_elem_cmd ("gdbtk_tcl_file_changed",
+			objfile == NULL ? NULL : objfile->original_name);
+}
+
+/* Called from file_command, via the free objfile observer.  */
 static void
-gdbtk_file_changed (char *filename)
+gdbtk_objfile_removed (struct objfile *objfile)
 {
-  gdbtk_two_elem_cmd ("gdbtk_tcl_file_changed", filename);
+  static int symfile_was_set;
+
+  if (objfile == symfile_objfile)
+    gdbtk_two_elem_cmd ("gdbtk_tcl_file_changed", NULL);
 }
 
 /* Called from exec_file_command */

      reply	other threads:[~2014-01-09 17:25 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-07 19:09 Tom Tromey
2014-01-07 20:03 ` Keith Seitz
2014-01-09 17:13   ` Tom Tromey
2014-01-09 17:25     ` Tom Tromey [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87k3e99if8.fsf@fleche.redhat.com \
    --to=tromey@redhat.com \
    --cc=insight@sourceware.org \
    --cc=keiths@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).