~ubuntu-branches/debian/jessie/gdb/jessie

« back to all changes in this revision

Viewing changes to gdb/gdbserver/inferiors.c

  • Committer: Bazaar Package Importer
  • Author(s): Daniel Jacobowitz
  • Date: 2010-03-20 01:21:29 UTC
  • mfrom: (1.3.4 upstream)
  • Revision ID: james.westby@ubuntu.com-20100320012129-t7h25y8zgr8c2369
Tags: 7.1-1
* New upstream release, including:
  - PIE support (Closes: #346409).
  - C++ improvements, including static_cast<> et al, namespace imports,
    and bug fixes in printing virtual base classes.
  - Multi-program debugging.  One GDB can now debug multiple programs
    at the same time.
  - Python scripting improvements, including gdb.parse_and_eval.
  - Updated MIPS Linux signal frame layout (Closes: #570875).
  - No internal error stepping over _dl_debug_state (Closes: #569551).
* Update to Standards-Version: 3.8.4 (no changes required).
* Include more relevant (and smaller) docs in the gdbserver package
  (Closes: #571132).
* Do not duplicate documentation in gdb64, gdb-source, and libgdb-dev.
* Fix crash when switching into TUI mode (Closes: #568489).

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
/* Inferior process information for the remote server for GDB.
2
 
   Copyright (C) 2002, 2005, 2007, 2008, 2009 Free Software Foundation, Inc.
 
2
   Copyright (C) 2002, 2005, 2007, 2008, 2009, 2010
 
3
   Free Software Foundation, Inc.
3
4
 
4
5
   Contributed by MontaVista Software.
5
6
 
248
249
  free_one_thread (&thread->entry);
249
250
}
250
251
 
 
252
/* Find the first inferior_list_entry E in LIST for which FUNC (E, ARG)
 
253
   returns non-zero.  If no entry is found then return NULL.  */
 
254
 
251
255
struct inferior_list_entry *
252
256
find_inferior (struct inferior_list *list,
253
257
               int (*func) (struct inferior_list_entry *, void *), void *arg)
365
369
  key_dll.base_addr = base_addr;
366
370
 
367
371
  dll = (void *) find_inferior (&all_dlls, match_dll, &key_dll);
368
 
  remove_inferior (&all_dlls, &dll->entry);
369
 
  free_one_dll (&dll->entry);
370
 
  dlls_changed = 1;
 
372
 
 
373
  if (dll == NULL)
 
374
    /* For some inferiors we might get unloaded_dll events without having
 
375
       a corresponding loaded_dll.  In that case, the dll cannot be found
 
376
       in ALL_DLL, and there is nothing further for us to do.
 
377
 
 
378
       This has been observed when running 32bit executables on Windows64
 
379
       (i.e. through WOW64, the interface between the 32bits and 64bits
 
380
       worlds).  In that case, the inferior always does some strange
 
381
       unloading of unnamed dll.  */
 
382
    return;
 
383
  else
 
384
    {
 
385
      /* DLL has been found so remove the entry and free associated
 
386
         resources.  */
 
387
      remove_inferior (&all_dlls, &dll->entry);
 
388
      free_one_dll (&dll->entry);
 
389
      dlls_changed = 1;
 
390
    }
371
391
}
372
392
 
373
393
#define clear_list(LIST) \