mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-27 03:51:15 +08:00
* win32-nat.c: Fix up gcc warnings throughout.
(handle_load_dll): Change DLL name to lower case. (handle_exception): Add a second argument indicating whether a breakpoint should be ignored. Return a 0 if the breakpoint was ignored. (get_child_debug_event): Pass argument to handle_exception to control whether a breakpoint should be ignored. (child_create_inferior): Use modern cygwin API. Explicitly clear last_sig. Pass FIRST_EXCEPTION to get_child_debug_event for detection of first breakpoint. * configure.in: Eliminate unneeded WINDRES/DLLTOOL tests left over after last change. * configure: Regenerate.
This commit is contained in:
parent
95ca63c499
commit
29fe111d82
@ -1,6 +1,19 @@
|
||||
2000-06-02 Christopher Faylor <cgf@cygnus.com>
|
||||
|
||||
* configure.in: Detect correct versions of ranlib and windres when
|
||||
* win32-nat.c: Fix up gcc warnings throughout.
|
||||
(handle_load_dll): Change DLL name to lower case.
|
||||
(handle_exception): Add a second argument indicating whether a
|
||||
breakpoint should be ignored. Return a 0 if the breakpoint was
|
||||
ignored.
|
||||
(get_child_debug_event): Pass argument to handle_exception to control
|
||||
whether a breakpoint should be ignored.
|
||||
(child_create_inferior): Use modern cygwin API. Explicitly clear
|
||||
last_sig. Pass FIRST_EXCEPTION to get_child_debug_event for detection
|
||||
of first breakpoint.
|
||||
|
||||
2000-06-02 Christopher Faylor <cgf@cygnus.com>
|
||||
|
||||
* configure.in: Detect correct versions of dlltool and windres when
|
||||
cross-compiling.
|
||||
* configure: Regenerate.
|
||||
|
||||
|
101
gdb/configure
vendored
101
gdb/configure
vendored
@ -5791,11 +5791,6 @@ fi
|
||||
|
||||
echo "$ac_t""$gdb_cv_os_cygwin" 1>&6
|
||||
|
||||
DLLTOOL=${DLLTOOL-dlltool}
|
||||
WINDRES=${WINDRES-windres}
|
||||
|
||||
|
||||
|
||||
if test x$gdb_host = xgo32; then
|
||||
TERM_LIB=
|
||||
else
|
||||
@ -5804,7 +5799,7 @@ if test x$gdb_cv_os_cygwin = xyes; then
|
||||
else
|
||||
TERM_LIB=
|
||||
echo $ac_n "checking for tgetent in -lncurses""... $ac_c" 1>&6
|
||||
echo "configure:5808: checking for tgetent in -lncurses" >&5
|
||||
echo "configure:5803: checking for tgetent in -lncurses" >&5
|
||||
ac_lib_var=`echo ncurses'_'tgetent | sed 'y%./+-%__p_%'`
|
||||
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
@ -5812,7 +5807,7 @@ else
|
||||
ac_save_LIBS="$LIBS"
|
||||
LIBS="-lncurses $LIBS"
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 5816 "configure"
|
||||
#line 5811 "configure"
|
||||
#include "confdefs.h"
|
||||
/* Override any gcc2 internal prototype to avoid an error. */
|
||||
/* We use char because int might match the return type of a gcc2
|
||||
@ -5823,7 +5818,7 @@ int main() {
|
||||
tgetent()
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:5827: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
if { (eval echo configure:5822: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
rm -rf conftest*
|
||||
eval "ac_cv_lib_$ac_lib_var=yes"
|
||||
else
|
||||
@ -5842,7 +5837,7 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
|
||||
else
|
||||
echo "$ac_t""no" 1>&6
|
||||
echo $ac_n "checking for tgetent in -lHcurses""... $ac_c" 1>&6
|
||||
echo "configure:5846: checking for tgetent in -lHcurses" >&5
|
||||
echo "configure:5841: checking for tgetent in -lHcurses" >&5
|
||||
ac_lib_var=`echo Hcurses'_'tgetent | sed 'y%./+-%__p_%'`
|
||||
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
@ -5850,7 +5845,7 @@ else
|
||||
ac_save_LIBS="$LIBS"
|
||||
LIBS="-lHcurses $LIBS"
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 5854 "configure"
|
||||
#line 5849 "configure"
|
||||
#include "confdefs.h"
|
||||
/* Override any gcc2 internal prototype to avoid an error. */
|
||||
/* We use char because int might match the return type of a gcc2
|
||||
@ -5861,7 +5856,7 @@ int main() {
|
||||
tgetent()
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:5865: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
if { (eval echo configure:5860: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
rm -rf conftest*
|
||||
eval "ac_cv_lib_$ac_lib_var=yes"
|
||||
else
|
||||
@ -5880,7 +5875,7 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
|
||||
else
|
||||
echo "$ac_t""no" 1>&6
|
||||
echo $ac_n "checking for tgetent in -ltermlib""... $ac_c" 1>&6
|
||||
echo "configure:5884: checking for tgetent in -ltermlib" >&5
|
||||
echo "configure:5879: checking for tgetent in -ltermlib" >&5
|
||||
ac_lib_var=`echo termlib'_'tgetent | sed 'y%./+-%__p_%'`
|
||||
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
@ -5888,7 +5883,7 @@ else
|
||||
ac_save_LIBS="$LIBS"
|
||||
LIBS="-ltermlib $LIBS"
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 5892 "configure"
|
||||
#line 5887 "configure"
|
||||
#include "confdefs.h"
|
||||
/* Override any gcc2 internal prototype to avoid an error. */
|
||||
/* We use char because int might match the return type of a gcc2
|
||||
@ -5899,7 +5894,7 @@ int main() {
|
||||
tgetent()
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:5903: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
if { (eval echo configure:5898: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
rm -rf conftest*
|
||||
eval "ac_cv_lib_$ac_lib_var=yes"
|
||||
else
|
||||
@ -5918,7 +5913,7 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
|
||||
else
|
||||
echo "$ac_t""no" 1>&6
|
||||
echo $ac_n "checking for tgetent in -ltermcap""... $ac_c" 1>&6
|
||||
echo "configure:5922: checking for tgetent in -ltermcap" >&5
|
||||
echo "configure:5917: checking for tgetent in -ltermcap" >&5
|
||||
ac_lib_var=`echo termcap'_'tgetent | sed 'y%./+-%__p_%'`
|
||||
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
@ -5926,7 +5921,7 @@ else
|
||||
ac_save_LIBS="$LIBS"
|
||||
LIBS="-ltermcap $LIBS"
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 5930 "configure"
|
||||
#line 5925 "configure"
|
||||
#include "confdefs.h"
|
||||
/* Override any gcc2 internal prototype to avoid an error. */
|
||||
/* We use char because int might match the return type of a gcc2
|
||||
@ -5937,7 +5932,7 @@ int main() {
|
||||
tgetent()
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:5941: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
if { (eval echo configure:5936: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
rm -rf conftest*
|
||||
eval "ac_cv_lib_$ac_lib_var=yes"
|
||||
else
|
||||
@ -5956,7 +5951,7 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
|
||||
else
|
||||
echo "$ac_t""no" 1>&6
|
||||
echo $ac_n "checking for tgetent in -lcurses""... $ac_c" 1>&6
|
||||
echo "configure:5960: checking for tgetent in -lcurses" >&5
|
||||
echo "configure:5955: checking for tgetent in -lcurses" >&5
|
||||
ac_lib_var=`echo curses'_'tgetent | sed 'y%./+-%__p_%'`
|
||||
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
@ -5964,7 +5959,7 @@ else
|
||||
ac_save_LIBS="$LIBS"
|
||||
LIBS="-lcurses $LIBS"
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 5968 "configure"
|
||||
#line 5963 "configure"
|
||||
#include "confdefs.h"
|
||||
/* Override any gcc2 internal prototype to avoid an error. */
|
||||
/* We use char because int might match the return type of a gcc2
|
||||
@ -5975,7 +5970,7 @@ int main() {
|
||||
tgetent()
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:5979: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
if { (eval echo configure:5974: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
rm -rf conftest*
|
||||
eval "ac_cv_lib_$ac_lib_var=yes"
|
||||
else
|
||||
@ -5994,7 +5989,7 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
|
||||
else
|
||||
echo "$ac_t""no" 1>&6
|
||||
echo $ac_n "checking for tgetent in -lterminfo""... $ac_c" 1>&6
|
||||
echo "configure:5998: checking for tgetent in -lterminfo" >&5
|
||||
echo "configure:5993: checking for tgetent in -lterminfo" >&5
|
||||
ac_lib_var=`echo terminfo'_'tgetent | sed 'y%./+-%__p_%'`
|
||||
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
@ -6002,7 +5997,7 @@ else
|
||||
ac_save_LIBS="$LIBS"
|
||||
LIBS="-lterminfo $LIBS"
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 6006 "configure"
|
||||
#line 6001 "configure"
|
||||
#include "confdefs.h"
|
||||
/* Override any gcc2 internal prototype to avoid an error. */
|
||||
/* We use char because int might match the return type of a gcc2
|
||||
@ -6013,7 +6008,7 @@ int main() {
|
||||
tgetent()
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:6017: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
if { (eval echo configure:6012: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
rm -rf conftest*
|
||||
eval "ac_cv_lib_$ac_lib_var=yes"
|
||||
else
|
||||
@ -6171,7 +6166,7 @@ if test "${with_tclconfig+set}" = set; then
|
||||
fi
|
||||
|
||||
echo $ac_n "checking for Tcl configuration""... $ac_c" 1>&6
|
||||
echo "configure:6175: checking for Tcl configuration" >&5
|
||||
echo "configure:6170: checking for Tcl configuration" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_c_tclconfig'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -6279,7 +6274,7 @@ if test "${with_tkconfig+set}" = set; then
|
||||
fi
|
||||
|
||||
echo $ac_n "checking for Tk configuration""... $ac_c" 1>&6
|
||||
echo "configure:6283: checking for Tk configuration" >&5
|
||||
echo "configure:6278: checking for Tk configuration" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_c_tkconfig'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -6375,7 +6370,7 @@ fi
|
||||
|
||||
no_tcl=true
|
||||
echo $ac_n "checking for Tcl private headers. dir=${configdir}""... $ac_c" 1>&6
|
||||
echo "configure:6379: checking for Tcl private headers. dir=${configdir}" >&5
|
||||
echo "configure:6374: checking for Tcl private headers. dir=${configdir}" >&5
|
||||
# Check whether --with-tclinclude or --without-tclinclude was given.
|
||||
if test "${with_tclinclude+set}" = set; then
|
||||
withval="$with_tclinclude"
|
||||
@ -6441,17 +6436,17 @@ fi
|
||||
if test x"${ac_cv_c_tclh}" = x ; then
|
||||
ac_safe=`echo "tclInt.h" | sed 'y%./+-%__p_%'`
|
||||
echo $ac_n "checking for tclInt.h""... $ac_c" 1>&6
|
||||
echo "configure:6445: checking for tclInt.h" >&5
|
||||
echo "configure:6440: checking for tclInt.h" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 6450 "configure"
|
||||
#line 6445 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <tclInt.h>
|
||||
EOF
|
||||
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
|
||||
{ (eval echo configure:6455: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||
{ (eval echo configure:6450: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
|
||||
if test -z "$ac_err"; then
|
||||
rm -rf conftest*
|
||||
@ -6511,7 +6506,7 @@ fi
|
||||
#
|
||||
no_tk=true
|
||||
echo $ac_n "checking for Tk private headers""... $ac_c" 1>&6
|
||||
echo "configure:6515: checking for Tk private headers" >&5
|
||||
echo "configure:6510: checking for Tk private headers" >&5
|
||||
# Check whether --with-tkinclude or --without-tkinclude was given.
|
||||
if test "${with_tkinclude+set}" = set; then
|
||||
withval="$with_tkinclude"
|
||||
@ -6577,17 +6572,17 @@ fi
|
||||
if test x"${ac_cv_c_tkh}" = x ; then
|
||||
ac_safe=`echo "tk.h" | sed 'y%./+-%__p_%'`
|
||||
echo $ac_n "checking for tk.h""... $ac_c" 1>&6
|
||||
echo "configure:6581: checking for tk.h" >&5
|
||||
echo "configure:6576: checking for tk.h" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 6586 "configure"
|
||||
#line 6581 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <tk.h>
|
||||
EOF
|
||||
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
|
||||
{ (eval echo configure:6591: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||
{ (eval echo configure:6586: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
|
||||
if test -z "$ac_err"; then
|
||||
rm -rf conftest*
|
||||
@ -6633,7 +6628,7 @@ fi
|
||||
|
||||
|
||||
echo $ac_n "checking for Itcl private headers. srcdir=${srcdir}""... $ac_c" 1>&6
|
||||
echo "configure:6637: checking for Itcl private headers. srcdir=${srcdir}" >&5
|
||||
echo "configure:6632: checking for Itcl private headers. srcdir=${srcdir}" >&5
|
||||
if test x"${ac_cv_c_itclh}" = x ; then
|
||||
for i in ${srcdir}/../itcl ${srcdir}/../../itcl ${srcdir}/../../../itcl ${srcdir}/../itcl/itcl; do
|
||||
if test -f $i/generic/itcl.h ; then
|
||||
@ -6656,7 +6651,7 @@ fi
|
||||
|
||||
|
||||
echo $ac_n "checking for Itk private headers. srcdir=${srcdir}""... $ac_c" 1>&6
|
||||
echo "configure:6660: checking for Itk private headers. srcdir=${srcdir}" >&5
|
||||
echo "configure:6655: checking for Itk private headers. srcdir=${srcdir}" >&5
|
||||
if test x"${ac_cv_c_itkh}" = x ; then
|
||||
for i in ${srcdir}/../itcl ${srcdir}/../../itcl ${srcdir}/../../../itcl ${srcdir}/../itcl/itk; do
|
||||
if test -f $i/generic/itk.h ; then
|
||||
@ -6679,7 +6674,7 @@ fi
|
||||
|
||||
|
||||
echo $ac_n "checking for Tix private headers. srcdir=${srcdir}""... $ac_c" 1>&6
|
||||
echo "configure:6683: checking for Tix private headers. srcdir=${srcdir}" >&5
|
||||
echo "configure:6678: checking for Tix private headers. srcdir=${srcdir}" >&5
|
||||
if test x"${ac_cv_c_tixh}" = x ; then
|
||||
for i in ${srcdir}/../tix ${srcdir}/../../tix ${srcdir}/../../../tix ; do
|
||||
if test -f $i/generic/tix.h ; then
|
||||
@ -6717,7 +6712,7 @@ if test "${with_itclconfig+set}" = set; then
|
||||
fi
|
||||
|
||||
echo $ac_n "checking for Itcl configuration""... $ac_c" 1>&6
|
||||
echo "configure:6721: checking for Itcl configuration" >&5
|
||||
echo "configure:6716: checking for Itcl configuration" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_c_itclconfig'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -6829,7 +6824,7 @@ if test "${with_itkconfig+set}" = set; then
|
||||
fi
|
||||
|
||||
echo $ac_n "checking for Itk configuration""... $ac_c" 1>&6
|
||||
echo "configure:6833: checking for Itk configuration" >&5
|
||||
echo "configure:6828: checking for Itk configuration" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_c_itkconfig'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -6941,7 +6936,7 @@ if test "${with_tixconfig+set}" = set; then
|
||||
fi
|
||||
|
||||
echo $ac_n "checking for Tix configuration""... $ac_c" 1>&6
|
||||
echo "configure:6945: checking for Tix configuration" >&5
|
||||
echo "configure:6940: checking for Tix configuration" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_c_tixconfig'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -7080,7 +7075,7 @@ fi
|
||||
# Uses ac_ vars as temps to allow command line to override cache and checks.
|
||||
# --without-x overrides everything else, but does not touch the cache.
|
||||
echo $ac_n "checking for X""... $ac_c" 1>&6
|
||||
echo "configure:7084: checking for X" >&5
|
||||
echo "configure:7079: checking for X" >&5
|
||||
|
||||
# Check whether --with-x or --without-x was given.
|
||||
if test "${with_x+set}" = set; then
|
||||
@ -7142,12 +7137,12 @@ if test "$ac_x_includes" = NO; then
|
||||
|
||||
# First, try using that file with no special directory specified.
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 7146 "configure"
|
||||
#line 7141 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <$x_direct_test_include>
|
||||
EOF
|
||||
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
|
||||
{ (eval echo configure:7151: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||
{ (eval echo configure:7146: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
|
||||
if test -z "$ac_err"; then
|
||||
rm -rf conftest*
|
||||
@ -7216,14 +7211,14 @@ if test "$ac_x_libraries" = NO; then
|
||||
ac_save_LIBS="$LIBS"
|
||||
LIBS="-l$x_direct_test_library $LIBS"
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 7220 "configure"
|
||||
#line 7215 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
int main() {
|
||||
${x_direct_test_function}()
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:7227: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
if { (eval echo configure:7222: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
rm -rf conftest*
|
||||
LIBS="$ac_save_LIBS"
|
||||
# We can link X programs with no special library path.
|
||||
@ -7505,7 +7500,7 @@ files="${files} config/nm-empty.h"
|
||||
links="${links} nm.h"
|
||||
fi
|
||||
echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6
|
||||
echo "configure:7509: checking whether ln -s works" >&5
|
||||
echo "configure:7504: checking whether ln -s works" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -7529,12 +7524,12 @@ fi
|
||||
|
||||
|
||||
echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6
|
||||
echo "configure:7533: checking for Cygwin environment" >&5
|
||||
echo "configure:7528: checking for Cygwin environment" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 7538 "configure"
|
||||
#line 7533 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
int main() {
|
||||
@ -7545,7 +7540,7 @@ int main() {
|
||||
return __CYGWIN__;
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:7549: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
if { (eval echo configure:7544: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
rm -rf conftest*
|
||||
ac_cv_cygwin=yes
|
||||
else
|
||||
@ -7562,19 +7557,19 @@ echo "$ac_t""$ac_cv_cygwin" 1>&6
|
||||
CYGWIN=
|
||||
test "$ac_cv_cygwin" = yes && CYGWIN=yes
|
||||
echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6
|
||||
echo "configure:7566: checking for mingw32 environment" >&5
|
||||
echo "configure:7561: checking for mingw32 environment" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 7571 "configure"
|
||||
#line 7566 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
int main() {
|
||||
return __MINGW32__;
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:7578: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
if { (eval echo configure:7573: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
rm -rf conftest*
|
||||
ac_cv_mingw32=yes
|
||||
else
|
||||
@ -7593,7 +7588,7 @@ test "$ac_cv_mingw32" = yes && MINGW32=yes
|
||||
|
||||
|
||||
echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
|
||||
echo "configure:7597: checking for executable suffix" >&5
|
||||
echo "configure:7592: checking for executable suffix" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -7603,7 +7598,7 @@ else
|
||||
rm -f conftest*
|
||||
echo 'int main () { return 0; }' > conftest.$ac_ext
|
||||
ac_cv_exeext=
|
||||
if { (eval echo configure:7607: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
|
||||
if { (eval echo configure:7602: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
|
||||
for file in conftest.*; do
|
||||
case $file in
|
||||
*.c | *.o | *.obj | *.ilk | *.pdb) ;;
|
||||
|
@ -609,11 +609,6 @@ AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
|
||||
lose
|
||||
#endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
|
||||
|
||||
DLLTOOL=${DLLTOOL-dlltool}
|
||||
WINDRES=${WINDRES-windres}
|
||||
AC_SUBST(DLLTOOL)
|
||||
AC_SUBST(WINDRES)
|
||||
|
||||
dnl Figure out which term library to use.
|
||||
if test x$gdb_host = xgo32; then
|
||||
TERM_LIB=
|
||||
|
160
gdb/win32-nat.c
160
gdb/win32-nat.c
@ -34,13 +34,9 @@
|
||||
#include <sys/types.h>
|
||||
#include <fcntl.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#include "windefs.h"
|
||||
#else /* other WIN32 compiler */
|
||||
#include <windows.h>
|
||||
#include <imagehlp.h>
|
||||
#endif
|
||||
#include <sys/cygwin.h>
|
||||
|
||||
#include "buildsym.h"
|
||||
#include "symfile.h"
|
||||
@ -62,11 +58,13 @@ extern int (*ui_loop_hook) PARAMS ((int signo));
|
||||
#define CONTEXT_DEBUGGER (CONTEXT_FULL | CONTEXT_FLOATING_POINT)
|
||||
#endif
|
||||
|
||||
#define FIRST_EXCEPTION 0xffffffff
|
||||
|
||||
/* The string sent by cygwin when it processes a signal.
|
||||
FIXME: This should be in a cygwin include file. */
|
||||
#define CYGWIN_SIGNAL_STRING "cygwin: signal"
|
||||
|
||||
#define CHECK(x) check (x, __FILE__,__LINE__)
|
||||
#define CHECK(x) check (x, __FILE__,__LINE__)
|
||||
#define DEBUG_EXEC(x) if (debug_exec) printf x
|
||||
#define DEBUG_EVENTS(x) if (debug_events) printf x
|
||||
#define DEBUG_MEM(x) if (debug_memory) printf x
|
||||
@ -81,7 +79,6 @@ void child_kill_inferior (void);
|
||||
|
||||
static int last_sig = 0; /* Set if a signal was received from the
|
||||
debugged process */
|
||||
|
||||
/* Thread information structure used to track information that is
|
||||
not available in gdb's thread structure. */
|
||||
typedef struct thread_info_struct
|
||||
@ -95,7 +92,7 @@ typedef struct thread_info_struct
|
||||
STACKFRAME sf;
|
||||
} thread_info;
|
||||
|
||||
static thread_info thread_head = {NULL};
|
||||
static thread_info thread_head;
|
||||
|
||||
/* The process and thread handles for the above context. */
|
||||
|
||||
@ -104,8 +101,6 @@ static DEBUG_EVENT current_event; /* The current debug event from
|
||||
static HANDLE current_process_handle; /* Currently executing process */
|
||||
static thread_info *current_thread; /* Info on currently selected thread */
|
||||
static DWORD main_thread_id; /* Thread ID of the main thread */
|
||||
static int ignore_first_first_chance = 0; /* True if we should ignore the
|
||||
first first chance exception that we get. */
|
||||
|
||||
/* Counts of things. */
|
||||
static int exception_count = 0;
|
||||
@ -282,7 +277,7 @@ static void
|
||||
check (BOOL ok, const char *file, int line)
|
||||
{
|
||||
if (!ok)
|
||||
printf_filtered ("error return %s:%d was %d\n", file, line, GetLastError ());
|
||||
printf_filtered ("error return %s:%d was %lu\n", file, line, GetLastError ());
|
||||
}
|
||||
|
||||
static void
|
||||
@ -396,7 +391,7 @@ int psapi_get_dll_name (DWORD BaseAddress, char *dll_name_ret)
|
||||
if (!ok)
|
||||
goto failed;
|
||||
|
||||
for (i = 0; i < cbNeeded / sizeof (HMODULE); i++)
|
||||
for (i = 0; i < (int) (cbNeeded / sizeof (HMODULE)); i++)
|
||||
{
|
||||
if (!(*psapi_GetModuleInformation) (current_process_handle,
|
||||
DllHandle [i],
|
||||
@ -409,7 +404,7 @@ int psapi_get_dll_name (DWORD BaseAddress, char *dll_name_ret)
|
||||
dll_name_ret,
|
||||
MAX_PATH);
|
||||
if (len == 0)
|
||||
error ("Error getting dll name: %u\n", GetLastError ());
|
||||
error ("Error getting dll name: %u\n", GetLastError ());
|
||||
|
||||
if ((DWORD) (mi.lpBaseOfDll) == BaseAddress)
|
||||
return 1;
|
||||
@ -473,15 +468,13 @@ safe_symbol_file_add (char *name, int from_tty,
|
||||
of error; store status through argument pointer OURSTATUS. */
|
||||
|
||||
static int
|
||||
handle_load_dll (PTR dummy)
|
||||
handle_load_dll (PTR dummy ATTRIBUTE_UNUSED)
|
||||
{
|
||||
LOAD_DLL_DEBUG_INFO *event = ¤t_event.u.LoadDll;
|
||||
DWORD dll_name_ptr;
|
||||
DWORD done;
|
||||
char dll_buf[MAX_PATH + 1];
|
||||
char *p, *dll_name = NULL;
|
||||
struct objfile *objfile;
|
||||
MEMORY_BASIC_INFORMATION minfo;
|
||||
struct section_addr_info section_addrs;
|
||||
|
||||
memset (§ion_addrs, 0, sizeof (section_addrs));
|
||||
@ -497,7 +490,7 @@ handle_load_dll (PTR dummy)
|
||||
a program. It will not work for attached processes. */
|
||||
if (dll_name == NULL || *dll_name == '\0')
|
||||
{
|
||||
int size = event->fUnicode ? sizeof (WCHAR) : sizeof (char);
|
||||
DWORD size = event->fUnicode ? sizeof (WCHAR) : sizeof (char);
|
||||
int len = 0;
|
||||
char b[2];
|
||||
|
||||
@ -551,6 +544,8 @@ handle_load_dll (PTR dummy)
|
||||
if (!dll_name)
|
||||
return 1;
|
||||
|
||||
(void) strlwr (dll_name);
|
||||
|
||||
while ((p = strchr (dll_name, '\\')))
|
||||
*p = '/';
|
||||
|
||||
@ -561,7 +556,7 @@ handle_load_dll (PTR dummy)
|
||||
section_addrs.other[0].name = ".text";
|
||||
section_addrs.other[0].addr = (int) event->lpBaseOfDll + 0x1000;
|
||||
safe_symbol_file_add (dll_name, 0, §ion_addrs, 0, OBJF_SHARED);
|
||||
printf_unfiltered ("%x:%s\n", event->lpBaseOfDll, dll_name);
|
||||
printf_unfiltered ("%lx:%s\n", (DWORD) event->lpBaseOfDll, dll_name);
|
||||
|
||||
return 1;
|
||||
}
|
||||
@ -583,7 +578,7 @@ handle_output_debug_string (struct target_waitstatus *ourstatus)
|
||||
if (strncmp (s, CYGWIN_SIGNAL_STRING, sizeof (CYGWIN_SIGNAL_STRING) - 1) != 0)
|
||||
{
|
||||
if (strncmp (s, "cYg", 3) != 0)
|
||||
warning (s);
|
||||
warning ("%s", s);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -600,27 +595,26 @@ handle_output_debug_string (struct target_waitstatus *ourstatus)
|
||||
}
|
||||
|
||||
static int
|
||||
handle_exception (struct target_waitstatus *ourstatus)
|
||||
handle_exception (struct target_waitstatus *ourstatus, int ignore_trap)
|
||||
{
|
||||
int i;
|
||||
int done = 0;
|
||||
thread_info *th;
|
||||
int fc = ignore_first_first_chance;
|
||||
DWORD code = current_event.u.Exception.ExceptionRecord.ExceptionCode;
|
||||
|
||||
if (ignore_trap && code == EXCEPTION_BREAKPOINT)
|
||||
return 0;
|
||||
|
||||
ourstatus->kind = TARGET_WAITKIND_STOPPED;
|
||||
|
||||
ignore_first_first_chance = 0;
|
||||
|
||||
/* Record the context of the current thread */
|
||||
th = thread_rec (current_event.dwThreadId, -1);
|
||||
|
||||
last_sig = 0;
|
||||
|
||||
switch (current_event.u.Exception.ExceptionRecord.ExceptionCode)
|
||||
switch (code)
|
||||
{
|
||||
case EXCEPTION_ACCESS_VIOLATION:
|
||||
DEBUG_EXCEPT (("gdb: Target exception ACCESS_VIOLATION at 0x%08x\n",
|
||||
current_event.u.Exception.ExceptionRecord.ExceptionAddress));
|
||||
DEBUG_EXCEPT (("gdb: Target exception ACCESS_VIOLATION at 0x%08lx\n",
|
||||
(DWORD) current_event.u.Exception.ExceptionRecord.ExceptionAddress));
|
||||
ourstatus->value.sig = TARGET_SIGNAL_SEGV;
|
||||
last_sig = SIGSEGV;
|
||||
break;
|
||||
@ -628,47 +622,42 @@ handle_exception (struct target_waitstatus *ourstatus)
|
||||
case STATUS_FLOAT_DIVIDE_BY_ZERO:
|
||||
case STATUS_FLOAT_OVERFLOW:
|
||||
case STATUS_INTEGER_DIVIDE_BY_ZERO:
|
||||
DEBUG_EXCEPT (("gdb: Target exception STACK_OVERFLOW at 0x%08x\n",
|
||||
current_event.u.Exception.ExceptionRecord.ExceptionAddress));
|
||||
DEBUG_EXCEPT (("gdb: Target exception STACK_OVERFLOW at 0x%08lx\n",
|
||||
(DWORD) current_event.u.Exception.ExceptionRecord.ExceptionAddress));
|
||||
ourstatus->value.sig = TARGET_SIGNAL_FPE;
|
||||
last_sig = SIGFPE;
|
||||
break;
|
||||
case STATUS_STACK_OVERFLOW:
|
||||
DEBUG_EXCEPT (("gdb: Target exception STACK_OVERFLOW at 0x%08x\n",
|
||||
current_event.u.Exception.ExceptionRecord.ExceptionAddress));
|
||||
DEBUG_EXCEPT (("gdb: Target exception STACK_OVERFLOW at 0x%08lx\n",
|
||||
(DWORD) current_event.u.Exception.ExceptionRecord.ExceptionAddress));
|
||||
ourstatus->value.sig = TARGET_SIGNAL_SEGV;
|
||||
break;
|
||||
case EXCEPTION_BREAKPOINT:
|
||||
if (fc && current_event.u.Exception.dwFirstChance &&
|
||||
((DWORD) current_event.u.Exception.ExceptionRecord.ExceptionAddress & 0xc0000000))
|
||||
{
|
||||
last_sig = -1;
|
||||
return 0;
|
||||
}
|
||||
DEBUG_EXCEPT (("gdb: Target exception BREAKPOINT at 0x%08x\n",
|
||||
current_event.u.Exception.ExceptionRecord.ExceptionAddress));
|
||||
DEBUG_EXCEPT (("gdb: Target exception BREAKPOINT at 0x%08lx\n",
|
||||
(DWORD) current_event.u.Exception.ExceptionRecord.ExceptionAddress));
|
||||
ourstatus->value.sig = TARGET_SIGNAL_TRAP;
|
||||
break;
|
||||
case DBG_CONTROL_C:
|
||||
DEBUG_EXCEPT (("gdb: Target exception CONTROL_C at 0x%08x\n",
|
||||
current_event.u.Exception.ExceptionRecord.ExceptionAddress));
|
||||
DEBUG_EXCEPT (("gdb: Target exception CONTROL_C at 0x%08lx\n",
|
||||
(DWORD) current_event.u.Exception.ExceptionRecord.ExceptionAddress));
|
||||
ourstatus->value.sig = TARGET_SIGNAL_INT;
|
||||
last_sig = SIGINT; /* FIXME - should check pass state */
|
||||
break;
|
||||
case EXCEPTION_SINGLE_STEP:
|
||||
DEBUG_EXCEPT (("gdb: Target exception SINGLE_STEP at 0x%08x\n",
|
||||
current_event.u.Exception.ExceptionRecord.ExceptionAddress));
|
||||
DEBUG_EXCEPT (("gdb: Target exception SINGLE_STEP at 0x%08lx\n",
|
||||
(DWORD) current_event.u.Exception.ExceptionRecord.ExceptionAddress));
|
||||
ourstatus->value.sig = TARGET_SIGNAL_TRAP;
|
||||
break;
|
||||
case EXCEPTION_ILLEGAL_INSTRUCTION:
|
||||
DEBUG_EXCEPT (("gdb: Target exception SINGLE_ILL at 0x%08x\n",
|
||||
current_event.u.Exception.ExceptionRecord.ExceptionAddress));
|
||||
DEBUG_EXCEPT (("gdb: Target exception SINGLE_ILL at 0x%08lx\n",
|
||||
(DWORD) current_event.u.Exception.ExceptionRecord.ExceptionAddress));
|
||||
ourstatus->value.sig = TARGET_SIGNAL_ILL;
|
||||
last_sig = SIGILL;
|
||||
break;
|
||||
default:
|
||||
printf_unfiltered ("gdb: unknown target exception 0x%08x at 0x%08x\n",
|
||||
printf_unfiltered ("gdb: unknown target exception 0x%08lx at 0x%08lx\n",
|
||||
current_event.u.Exception.ExceptionRecord.ExceptionCode,
|
||||
current_event.u.Exception.ExceptionRecord.ExceptionAddress);
|
||||
(DWORD) current_event.u.Exception.ExceptionRecord.ExceptionAddress);
|
||||
ourstatus->value.sig = TARGET_SIGNAL_UNKNOWN;
|
||||
break;
|
||||
}
|
||||
@ -685,7 +674,7 @@ child_continue (DWORD continue_status, int id)
|
||||
thread_info *th;
|
||||
BOOL res;
|
||||
|
||||
DEBUG_EVENTS (("ContinueDebugEvent (cpid=%d, ctid=%d, DBG_CONTINUE);\n",
|
||||
DEBUG_EVENTS (("ContinueDebugEvent (cpid=%ld, ctid=%ld, DBG_CONTINUE);\n",
|
||||
current_event.dwProcessId, current_event.dwThreadId));
|
||||
res = ContinueDebugEvent (current_event.dwProcessId,
|
||||
current_event.dwThreadId,
|
||||
@ -693,7 +682,7 @@ child_continue (DWORD continue_status, int id)
|
||||
continue_status = 0;
|
||||
if (res)
|
||||
for (th = &thread_head; (th = th->next) != NULL;)
|
||||
if (((id == -1) || (id == th->id)) && th->suspend_count)
|
||||
if (((id == -1) || (id == (int) th->id)) && th->suspend_count)
|
||||
{
|
||||
for (i = 0; i < th->suspend_count; i++)
|
||||
(void) ResumeThread (th->h);
|
||||
@ -707,7 +696,7 @@ child_continue (DWORD continue_status, int id)
|
||||
handling by WFI (or whatever).
|
||||
*/
|
||||
static int
|
||||
get_child_debug_event (int pid, struct target_waitstatus *ourstatus,
|
||||
get_child_debug_event (int pid ATTRIBUTE_UNUSED, struct target_waitstatus *ourstatus,
|
||||
DWORD target_event_code, int *retval)
|
||||
{
|
||||
int breakout = 0;
|
||||
@ -716,15 +705,12 @@ get_child_debug_event (int pid, struct target_waitstatus *ourstatus,
|
||||
thread_info *th = NULL;
|
||||
static thread_info dummy_thread_info;
|
||||
|
||||
*retval = 0;
|
||||
if (!(debug_event = WaitForDebugEvent (¤t_event, 1000)))
|
||||
{
|
||||
*retval = 0;
|
||||
goto out;
|
||||
}
|
||||
goto out;
|
||||
|
||||
event_count++;
|
||||
continue_status = DBG_CONTINUE;
|
||||
*retval = 0;
|
||||
|
||||
event_code = current_event.dwDebugEventCode;
|
||||
breakout = event_code == target_event_code;
|
||||
@ -799,14 +785,10 @@ get_child_debug_event (int pid, struct target_waitstatus *ourstatus,
|
||||
(unsigned) current_event.dwProcessId,
|
||||
(unsigned) current_event.dwThreadId,
|
||||
"EXCEPTION_DEBUG_EVENT"));
|
||||
if (handle_exception (ourstatus))
|
||||
if (handle_exception (ourstatus, target_event_code == FIRST_EXCEPTION))
|
||||
*retval = current_event.dwThreadId;
|
||||
else
|
||||
{
|
||||
if (last_sig >= 0)
|
||||
continue_status = DBG_EXCEPTION_NOT_HANDLED;
|
||||
breakout = 0;
|
||||
}
|
||||
breakout = -1;
|
||||
break;
|
||||
|
||||
case OUTPUT_DEBUG_STRING_EVENT: /* message from the kernel */
|
||||
@ -817,17 +799,17 @@ get_child_debug_event (int pid, struct target_waitstatus *ourstatus,
|
||||
handle_output_debug_string ( ourstatus);
|
||||
break;
|
||||
default:
|
||||
printf_unfiltered ("gdb: kernel event for pid=%d tid=%d\n",
|
||||
current_event.dwProcessId,
|
||||
current_event.dwThreadId);
|
||||
printf_unfiltered (" unknown event code %d\n",
|
||||
printf_unfiltered ("gdb: kernel event for pid=%ld tid=%ld\n",
|
||||
(DWORD) current_event.dwProcessId,
|
||||
(DWORD) current_event.dwThreadId);
|
||||
printf_unfiltered (" unknown event code %ld\n",
|
||||
current_event.dwDebugEventCode);
|
||||
break;
|
||||
}
|
||||
|
||||
if (breakout)
|
||||
if (breakout > 0)
|
||||
current_thread = th ?: thread_rec (current_event.dwThreadId, TRUE);
|
||||
else
|
||||
else if (!breakout)
|
||||
CHECK (child_continue (continue_status, -1));
|
||||
|
||||
out:
|
||||
@ -838,7 +820,6 @@ get_child_debug_event (int pid, struct target_waitstatus *ourstatus,
|
||||
static int
|
||||
child_wait (int pid, struct target_waitstatus *ourstatus)
|
||||
{
|
||||
DWORD event_code;
|
||||
int retval;
|
||||
|
||||
/* We loop when we get a non-standard exception rather than return
|
||||
@ -902,9 +883,7 @@ child_attach (args, from_tty)
|
||||
}
|
||||
|
||||
static void
|
||||
child_detach (args, from_tty)
|
||||
char *args;
|
||||
int from_tty;
|
||||
child_detach (char *args ATTRIBUTE_UNUSED, int from_tty)
|
||||
{
|
||||
if (from_tty)
|
||||
{
|
||||
@ -922,8 +901,7 @@ child_detach (args, from_tty)
|
||||
/* Print status information about what we're accessing. */
|
||||
|
||||
static void
|
||||
child_files_info (ignore)
|
||||
struct target_ops *ignore;
|
||||
child_files_info (struct target_ops *ignore ATTRIBUTE_UNUSED)
|
||||
{
|
||||
printf_unfiltered ("\tUsing the running image of %s %s.\n",
|
||||
attach_flag ? "attached" : "child", target_pid_to_str (inferior_pid));
|
||||
@ -931,9 +909,7 @@ child_files_info (ignore)
|
||||
|
||||
/* ARGSUSED */
|
||||
static void
|
||||
child_open (arg, from_tty)
|
||||
char *arg;
|
||||
int from_tty;
|
||||
child_open (char *arg ATTRIBUTE_UNUSED, int from_tty ATTRIBUTE_UNUSED)
|
||||
{
|
||||
error ("Use the \"run\" command to start a Unix child process.");
|
||||
}
|
||||
@ -960,7 +936,6 @@ child_create_inferior (exec_file, allargs, env)
|
||||
BOOL ret;
|
||||
DWORD flags;
|
||||
char *args;
|
||||
DWORD event_code;
|
||||
|
||||
if (!exec_file)
|
||||
{
|
||||
@ -970,7 +945,7 @@ child_create_inferior (exec_file, allargs, env)
|
||||
memset (&si, 0, sizeof (si));
|
||||
si.cb = sizeof (si);
|
||||
|
||||
cygwin32_conv_to_win32_path (exec_file, real_path);
|
||||
cygwin_conv_to_win32_path (exec_file, real_path);
|
||||
|
||||
flags = DEBUG_ONLY_THIS_PROCESS;
|
||||
|
||||
@ -1016,9 +991,9 @@ child_create_inferior (exec_file, allargs, env)
|
||||
len = strlen (conv_path_names[j]);
|
||||
if (strncmp (conv_path_names[j], env[i], len) == 0)
|
||||
{
|
||||
if (cygwin32_posix_path_list_p (env[i] + len))
|
||||
if (cygwin_posix_path_list_p (env[i] + len))
|
||||
envlen += len
|
||||
+ cygwin32_posix_to_win32_path_list_buf_size (env[i] + len);
|
||||
+ cygwin_posix_to_win32_path_list_buf_size (env[i] + len);
|
||||
else
|
||||
envlen += strlen (env[i]) + 1;
|
||||
break;
|
||||
@ -1040,10 +1015,10 @@ child_create_inferior (exec_file, allargs, env)
|
||||
len = strlen (conv_path_names[j]);
|
||||
if (strncmp (conv_path_names[j], env[i], len) == 0)
|
||||
{
|
||||
if (cygwin32_posix_path_list_p (env[i] + len))
|
||||
if (cygwin_posix_path_list_p (env[i] + len))
|
||||
{
|
||||
memcpy (temp, env[i], len);
|
||||
cygwin32_posix_to_win32_path_list (env[i] + len, temp + len);
|
||||
cygwin_posix_to_win32_path_list (env[i] + len, temp + len);
|
||||
}
|
||||
else
|
||||
strcpy (temp, env[i]);
|
||||
@ -1086,12 +1061,11 @@ child_create_inferior (exec_file, allargs, env)
|
||||
clear_proceed_status ();
|
||||
target_terminal_init ();
|
||||
target_terminal_inferior ();
|
||||
|
||||
ignore_first_first_chance = 1;
|
||||
last_sig = 0;
|
||||
|
||||
/* Run until process and threads are loaded */
|
||||
while (!get_child_debug_event (inferior_pid, &dummy,
|
||||
CREATE_PROCESS_DEBUG_EVENT, &ret))
|
||||
FIRST_EXCEPTION, &ret))
|
||||
continue;
|
||||
|
||||
/* child_continue (DBG_CONTINUE, -1);*/
|
||||
@ -1119,21 +1093,21 @@ child_stop ()
|
||||
|
||||
int
|
||||
child_xfer_memory (CORE_ADDR memaddr, char *our, int len,
|
||||
int write, struct target_ops *target)
|
||||
int write, struct target_ops *target ATTRIBUTE_UNUSED)
|
||||
{
|
||||
DWORD done;
|
||||
if (write)
|
||||
{
|
||||
DEBUG_MEM (("gdb: write target memory, %d bytes at 0x%08x\n",
|
||||
len, memaddr));
|
||||
DEBUG_MEM (("gdb: write target memory, %d bytes at 0x%08lx\n",
|
||||
len, (DWORD) memaddr));
|
||||
WriteProcessMemory (current_process_handle, (LPVOID) memaddr, our,
|
||||
len, &done);
|
||||
FlushInstructionCache (current_process_handle, (LPCVOID) memaddr, len);
|
||||
}
|
||||
else
|
||||
{
|
||||
DEBUG_MEM (("gdb: read target memory, %d bytes at 0x%08x\n",
|
||||
len, memaddr));
|
||||
DEBUG_MEM (("gdb: read target memory, %d bytes at 0x%08lx\n",
|
||||
len, (DWORD) memaddr));
|
||||
ReadProcessMemory (current_process_handle, (LPCVOID) memaddr, our, len,
|
||||
&done);
|
||||
}
|
||||
@ -1328,9 +1302,9 @@ char *
|
||||
cygwin_pid_to_str (int pid)
|
||||
{
|
||||
static char buf[80];
|
||||
if (pid == current_event.dwProcessId)
|
||||
if ((DWORD) pid == current_event.dwProcessId)
|
||||
sprintf (buf, "process %d", pid);
|
||||
else
|
||||
sprintf (buf, "thread %d.0x%x", current_event.dwProcessId, pid);
|
||||
sprintf (buf, "thread %ld.0x%x", current_event.dwProcessId, pid);
|
||||
return buf;
|
||||
}
|
||||
|
@ -34,13 +34,9 @@
|
||||
#include <sys/types.h>
|
||||
#include <fcntl.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#include "windefs.h"
|
||||
#else /* other WIN32 compiler */
|
||||
#include <windows.h>
|
||||
#include <imagehlp.h>
|
||||
#endif
|
||||
#include <sys/cygwin.h>
|
||||
|
||||
#include "buildsym.h"
|
||||
#include "symfile.h"
|
||||
@ -62,11 +58,13 @@ extern int (*ui_loop_hook) PARAMS ((int signo));
|
||||
#define CONTEXT_DEBUGGER (CONTEXT_FULL | CONTEXT_FLOATING_POINT)
|
||||
#endif
|
||||
|
||||
#define FIRST_EXCEPTION 0xffffffff
|
||||
|
||||
/* The string sent by cygwin when it processes a signal.
|
||||
FIXME: This should be in a cygwin include file. */
|
||||
#define CYGWIN_SIGNAL_STRING "cygwin: signal"
|
||||
|
||||
#define CHECK(x) check (x, __FILE__,__LINE__)
|
||||
#define CHECK(x) check (x, __FILE__,__LINE__)
|
||||
#define DEBUG_EXEC(x) if (debug_exec) printf x
|
||||
#define DEBUG_EVENTS(x) if (debug_events) printf x
|
||||
#define DEBUG_MEM(x) if (debug_memory) printf x
|
||||
@ -81,7 +79,6 @@ void child_kill_inferior (void);
|
||||
|
||||
static int last_sig = 0; /* Set if a signal was received from the
|
||||
debugged process */
|
||||
|
||||
/* Thread information structure used to track information that is
|
||||
not available in gdb's thread structure. */
|
||||
typedef struct thread_info_struct
|
||||
@ -95,7 +92,7 @@ typedef struct thread_info_struct
|
||||
STACKFRAME sf;
|
||||
} thread_info;
|
||||
|
||||
static thread_info thread_head = {NULL};
|
||||
static thread_info thread_head;
|
||||
|
||||
/* The process and thread handles for the above context. */
|
||||
|
||||
@ -104,8 +101,6 @@ static DEBUG_EVENT current_event; /* The current debug event from
|
||||
static HANDLE current_process_handle; /* Currently executing process */
|
||||
static thread_info *current_thread; /* Info on currently selected thread */
|
||||
static DWORD main_thread_id; /* Thread ID of the main thread */
|
||||
static int ignore_first_first_chance = 0; /* True if we should ignore the
|
||||
first first chance exception that we get. */
|
||||
|
||||
/* Counts of things. */
|
||||
static int exception_count = 0;
|
||||
@ -282,7 +277,7 @@ static void
|
||||
check (BOOL ok, const char *file, int line)
|
||||
{
|
||||
if (!ok)
|
||||
printf_filtered ("error return %s:%d was %d\n", file, line, GetLastError ());
|
||||
printf_filtered ("error return %s:%d was %lu\n", file, line, GetLastError ());
|
||||
}
|
||||
|
||||
static void
|
||||
@ -396,7 +391,7 @@ int psapi_get_dll_name (DWORD BaseAddress, char *dll_name_ret)
|
||||
if (!ok)
|
||||
goto failed;
|
||||
|
||||
for (i = 0; i < cbNeeded / sizeof (HMODULE); i++)
|
||||
for (i = 0; i < (int) (cbNeeded / sizeof (HMODULE)); i++)
|
||||
{
|
||||
if (!(*psapi_GetModuleInformation) (current_process_handle,
|
||||
DllHandle [i],
|
||||
@ -409,7 +404,7 @@ int psapi_get_dll_name (DWORD BaseAddress, char *dll_name_ret)
|
||||
dll_name_ret,
|
||||
MAX_PATH);
|
||||
if (len == 0)
|
||||
error ("Error getting dll name: %u\n", GetLastError ());
|
||||
error ("Error getting dll name: %u\n", GetLastError ());
|
||||
|
||||
if ((DWORD) (mi.lpBaseOfDll) == BaseAddress)
|
||||
return 1;
|
||||
@ -473,15 +468,13 @@ safe_symbol_file_add (char *name, int from_tty,
|
||||
of error; store status through argument pointer OURSTATUS. */
|
||||
|
||||
static int
|
||||
handle_load_dll (PTR dummy)
|
||||
handle_load_dll (PTR dummy ATTRIBUTE_UNUSED)
|
||||
{
|
||||
LOAD_DLL_DEBUG_INFO *event = ¤t_event.u.LoadDll;
|
||||
DWORD dll_name_ptr;
|
||||
DWORD done;
|
||||
char dll_buf[MAX_PATH + 1];
|
||||
char *p, *dll_name = NULL;
|
||||
struct objfile *objfile;
|
||||
MEMORY_BASIC_INFORMATION minfo;
|
||||
struct section_addr_info section_addrs;
|
||||
|
||||
memset (§ion_addrs, 0, sizeof (section_addrs));
|
||||
@ -497,7 +490,7 @@ handle_load_dll (PTR dummy)
|
||||
a program. It will not work for attached processes. */
|
||||
if (dll_name == NULL || *dll_name == '\0')
|
||||
{
|
||||
int size = event->fUnicode ? sizeof (WCHAR) : sizeof (char);
|
||||
DWORD size = event->fUnicode ? sizeof (WCHAR) : sizeof (char);
|
||||
int len = 0;
|
||||
char b[2];
|
||||
|
||||
@ -551,6 +544,8 @@ handle_load_dll (PTR dummy)
|
||||
if (!dll_name)
|
||||
return 1;
|
||||
|
||||
(void) strlwr (dll_name);
|
||||
|
||||
while ((p = strchr (dll_name, '\\')))
|
||||
*p = '/';
|
||||
|
||||
@ -561,7 +556,7 @@ handle_load_dll (PTR dummy)
|
||||
section_addrs.other[0].name = ".text";
|
||||
section_addrs.other[0].addr = (int) event->lpBaseOfDll + 0x1000;
|
||||
safe_symbol_file_add (dll_name, 0, §ion_addrs, 0, OBJF_SHARED);
|
||||
printf_unfiltered ("%x:%s\n", event->lpBaseOfDll, dll_name);
|
||||
printf_unfiltered ("%lx:%s\n", (DWORD) event->lpBaseOfDll, dll_name);
|
||||
|
||||
return 1;
|
||||
}
|
||||
@ -583,7 +578,7 @@ handle_output_debug_string (struct target_waitstatus *ourstatus)
|
||||
if (strncmp (s, CYGWIN_SIGNAL_STRING, sizeof (CYGWIN_SIGNAL_STRING) - 1) != 0)
|
||||
{
|
||||
if (strncmp (s, "cYg", 3) != 0)
|
||||
warning (s);
|
||||
warning ("%s", s);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -600,27 +595,26 @@ handle_output_debug_string (struct target_waitstatus *ourstatus)
|
||||
}
|
||||
|
||||
static int
|
||||
handle_exception (struct target_waitstatus *ourstatus)
|
||||
handle_exception (struct target_waitstatus *ourstatus, int ignore_trap)
|
||||
{
|
||||
int i;
|
||||
int done = 0;
|
||||
thread_info *th;
|
||||
int fc = ignore_first_first_chance;
|
||||
DWORD code = current_event.u.Exception.ExceptionRecord.ExceptionCode;
|
||||
|
||||
if (ignore_trap && code == EXCEPTION_BREAKPOINT)
|
||||
return 0;
|
||||
|
||||
ourstatus->kind = TARGET_WAITKIND_STOPPED;
|
||||
|
||||
ignore_first_first_chance = 0;
|
||||
|
||||
/* Record the context of the current thread */
|
||||
th = thread_rec (current_event.dwThreadId, -1);
|
||||
|
||||
last_sig = 0;
|
||||
|
||||
switch (current_event.u.Exception.ExceptionRecord.ExceptionCode)
|
||||
switch (code)
|
||||
{
|
||||
case EXCEPTION_ACCESS_VIOLATION:
|
||||
DEBUG_EXCEPT (("gdb: Target exception ACCESS_VIOLATION at 0x%08x\n",
|
||||
current_event.u.Exception.ExceptionRecord.ExceptionAddress));
|
||||
DEBUG_EXCEPT (("gdb: Target exception ACCESS_VIOLATION at 0x%08lx\n",
|
||||
(DWORD) current_event.u.Exception.ExceptionRecord.ExceptionAddress));
|
||||
ourstatus->value.sig = TARGET_SIGNAL_SEGV;
|
||||
last_sig = SIGSEGV;
|
||||
break;
|
||||
@ -628,47 +622,42 @@ handle_exception (struct target_waitstatus *ourstatus)
|
||||
case STATUS_FLOAT_DIVIDE_BY_ZERO:
|
||||
case STATUS_FLOAT_OVERFLOW:
|
||||
case STATUS_INTEGER_DIVIDE_BY_ZERO:
|
||||
DEBUG_EXCEPT (("gdb: Target exception STACK_OVERFLOW at 0x%08x\n",
|
||||
current_event.u.Exception.ExceptionRecord.ExceptionAddress));
|
||||
DEBUG_EXCEPT (("gdb: Target exception STACK_OVERFLOW at 0x%08lx\n",
|
||||
(DWORD) current_event.u.Exception.ExceptionRecord.ExceptionAddress));
|
||||
ourstatus->value.sig = TARGET_SIGNAL_FPE;
|
||||
last_sig = SIGFPE;
|
||||
break;
|
||||
case STATUS_STACK_OVERFLOW:
|
||||
DEBUG_EXCEPT (("gdb: Target exception STACK_OVERFLOW at 0x%08x\n",
|
||||
current_event.u.Exception.ExceptionRecord.ExceptionAddress));
|
||||
DEBUG_EXCEPT (("gdb: Target exception STACK_OVERFLOW at 0x%08lx\n",
|
||||
(DWORD) current_event.u.Exception.ExceptionRecord.ExceptionAddress));
|
||||
ourstatus->value.sig = TARGET_SIGNAL_SEGV;
|
||||
break;
|
||||
case EXCEPTION_BREAKPOINT:
|
||||
if (fc && current_event.u.Exception.dwFirstChance &&
|
||||
((DWORD) current_event.u.Exception.ExceptionRecord.ExceptionAddress & 0xc0000000))
|
||||
{
|
||||
last_sig = -1;
|
||||
return 0;
|
||||
}
|
||||
DEBUG_EXCEPT (("gdb: Target exception BREAKPOINT at 0x%08x\n",
|
||||
current_event.u.Exception.ExceptionRecord.ExceptionAddress));
|
||||
DEBUG_EXCEPT (("gdb: Target exception BREAKPOINT at 0x%08lx\n",
|
||||
(DWORD) current_event.u.Exception.ExceptionRecord.ExceptionAddress));
|
||||
ourstatus->value.sig = TARGET_SIGNAL_TRAP;
|
||||
break;
|
||||
case DBG_CONTROL_C:
|
||||
DEBUG_EXCEPT (("gdb: Target exception CONTROL_C at 0x%08x\n",
|
||||
current_event.u.Exception.ExceptionRecord.ExceptionAddress));
|
||||
DEBUG_EXCEPT (("gdb: Target exception CONTROL_C at 0x%08lx\n",
|
||||
(DWORD) current_event.u.Exception.ExceptionRecord.ExceptionAddress));
|
||||
ourstatus->value.sig = TARGET_SIGNAL_INT;
|
||||
last_sig = SIGINT; /* FIXME - should check pass state */
|
||||
break;
|
||||
case EXCEPTION_SINGLE_STEP:
|
||||
DEBUG_EXCEPT (("gdb: Target exception SINGLE_STEP at 0x%08x\n",
|
||||
current_event.u.Exception.ExceptionRecord.ExceptionAddress));
|
||||
DEBUG_EXCEPT (("gdb: Target exception SINGLE_STEP at 0x%08lx\n",
|
||||
(DWORD) current_event.u.Exception.ExceptionRecord.ExceptionAddress));
|
||||
ourstatus->value.sig = TARGET_SIGNAL_TRAP;
|
||||
break;
|
||||
case EXCEPTION_ILLEGAL_INSTRUCTION:
|
||||
DEBUG_EXCEPT (("gdb: Target exception SINGLE_ILL at 0x%08x\n",
|
||||
current_event.u.Exception.ExceptionRecord.ExceptionAddress));
|
||||
DEBUG_EXCEPT (("gdb: Target exception SINGLE_ILL at 0x%08lx\n",
|
||||
(DWORD) current_event.u.Exception.ExceptionRecord.ExceptionAddress));
|
||||
ourstatus->value.sig = TARGET_SIGNAL_ILL;
|
||||
last_sig = SIGILL;
|
||||
break;
|
||||
default:
|
||||
printf_unfiltered ("gdb: unknown target exception 0x%08x at 0x%08x\n",
|
||||
printf_unfiltered ("gdb: unknown target exception 0x%08lx at 0x%08lx\n",
|
||||
current_event.u.Exception.ExceptionRecord.ExceptionCode,
|
||||
current_event.u.Exception.ExceptionRecord.ExceptionAddress);
|
||||
(DWORD) current_event.u.Exception.ExceptionRecord.ExceptionAddress);
|
||||
ourstatus->value.sig = TARGET_SIGNAL_UNKNOWN;
|
||||
break;
|
||||
}
|
||||
@ -685,7 +674,7 @@ child_continue (DWORD continue_status, int id)
|
||||
thread_info *th;
|
||||
BOOL res;
|
||||
|
||||
DEBUG_EVENTS (("ContinueDebugEvent (cpid=%d, ctid=%d, DBG_CONTINUE);\n",
|
||||
DEBUG_EVENTS (("ContinueDebugEvent (cpid=%ld, ctid=%ld, DBG_CONTINUE);\n",
|
||||
current_event.dwProcessId, current_event.dwThreadId));
|
||||
res = ContinueDebugEvent (current_event.dwProcessId,
|
||||
current_event.dwThreadId,
|
||||
@ -693,7 +682,7 @@ child_continue (DWORD continue_status, int id)
|
||||
continue_status = 0;
|
||||
if (res)
|
||||
for (th = &thread_head; (th = th->next) != NULL;)
|
||||
if (((id == -1) || (id == th->id)) && th->suspend_count)
|
||||
if (((id == -1) || (id == (int) th->id)) && th->suspend_count)
|
||||
{
|
||||
for (i = 0; i < th->suspend_count; i++)
|
||||
(void) ResumeThread (th->h);
|
||||
@ -707,7 +696,7 @@ child_continue (DWORD continue_status, int id)
|
||||
handling by WFI (or whatever).
|
||||
*/
|
||||
static int
|
||||
get_child_debug_event (int pid, struct target_waitstatus *ourstatus,
|
||||
get_child_debug_event (int pid ATTRIBUTE_UNUSED, struct target_waitstatus *ourstatus,
|
||||
DWORD target_event_code, int *retval)
|
||||
{
|
||||
int breakout = 0;
|
||||
@ -716,15 +705,12 @@ get_child_debug_event (int pid, struct target_waitstatus *ourstatus,
|
||||
thread_info *th = NULL;
|
||||
static thread_info dummy_thread_info;
|
||||
|
||||
*retval = 0;
|
||||
if (!(debug_event = WaitForDebugEvent (¤t_event, 1000)))
|
||||
{
|
||||
*retval = 0;
|
||||
goto out;
|
||||
}
|
||||
goto out;
|
||||
|
||||
event_count++;
|
||||
continue_status = DBG_CONTINUE;
|
||||
*retval = 0;
|
||||
|
||||
event_code = current_event.dwDebugEventCode;
|
||||
breakout = event_code == target_event_code;
|
||||
@ -799,14 +785,10 @@ get_child_debug_event (int pid, struct target_waitstatus *ourstatus,
|
||||
(unsigned) current_event.dwProcessId,
|
||||
(unsigned) current_event.dwThreadId,
|
||||
"EXCEPTION_DEBUG_EVENT"));
|
||||
if (handle_exception (ourstatus))
|
||||
if (handle_exception (ourstatus, target_event_code == FIRST_EXCEPTION))
|
||||
*retval = current_event.dwThreadId;
|
||||
else
|
||||
{
|
||||
if (last_sig >= 0)
|
||||
continue_status = DBG_EXCEPTION_NOT_HANDLED;
|
||||
breakout = 0;
|
||||
}
|
||||
breakout = -1;
|
||||
break;
|
||||
|
||||
case OUTPUT_DEBUG_STRING_EVENT: /* message from the kernel */
|
||||
@ -817,17 +799,17 @@ get_child_debug_event (int pid, struct target_waitstatus *ourstatus,
|
||||
handle_output_debug_string ( ourstatus);
|
||||
break;
|
||||
default:
|
||||
printf_unfiltered ("gdb: kernel event for pid=%d tid=%d\n",
|
||||
current_event.dwProcessId,
|
||||
current_event.dwThreadId);
|
||||
printf_unfiltered (" unknown event code %d\n",
|
||||
printf_unfiltered ("gdb: kernel event for pid=%ld tid=%ld\n",
|
||||
(DWORD) current_event.dwProcessId,
|
||||
(DWORD) current_event.dwThreadId);
|
||||
printf_unfiltered (" unknown event code %ld\n",
|
||||
current_event.dwDebugEventCode);
|
||||
break;
|
||||
}
|
||||
|
||||
if (breakout)
|
||||
if (breakout > 0)
|
||||
current_thread = th ?: thread_rec (current_event.dwThreadId, TRUE);
|
||||
else
|
||||
else if (!breakout)
|
||||
CHECK (child_continue (continue_status, -1));
|
||||
|
||||
out:
|
||||
@ -838,7 +820,6 @@ get_child_debug_event (int pid, struct target_waitstatus *ourstatus,
|
||||
static int
|
||||
child_wait (int pid, struct target_waitstatus *ourstatus)
|
||||
{
|
||||
DWORD event_code;
|
||||
int retval;
|
||||
|
||||
/* We loop when we get a non-standard exception rather than return
|
||||
@ -902,9 +883,7 @@ child_attach (args, from_tty)
|
||||
}
|
||||
|
||||
static void
|
||||
child_detach (args, from_tty)
|
||||
char *args;
|
||||
int from_tty;
|
||||
child_detach (char *args ATTRIBUTE_UNUSED, int from_tty)
|
||||
{
|
||||
if (from_tty)
|
||||
{
|
||||
@ -922,8 +901,7 @@ child_detach (args, from_tty)
|
||||
/* Print status information about what we're accessing. */
|
||||
|
||||
static void
|
||||
child_files_info (ignore)
|
||||
struct target_ops *ignore;
|
||||
child_files_info (struct target_ops *ignore ATTRIBUTE_UNUSED)
|
||||
{
|
||||
printf_unfiltered ("\tUsing the running image of %s %s.\n",
|
||||
attach_flag ? "attached" : "child", target_pid_to_str (inferior_pid));
|
||||
@ -931,9 +909,7 @@ child_files_info (ignore)
|
||||
|
||||
/* ARGSUSED */
|
||||
static void
|
||||
child_open (arg, from_tty)
|
||||
char *arg;
|
||||
int from_tty;
|
||||
child_open (char *arg ATTRIBUTE_UNUSED, int from_tty ATTRIBUTE_UNUSED)
|
||||
{
|
||||
error ("Use the \"run\" command to start a Unix child process.");
|
||||
}
|
||||
@ -960,7 +936,6 @@ child_create_inferior (exec_file, allargs, env)
|
||||
BOOL ret;
|
||||
DWORD flags;
|
||||
char *args;
|
||||
DWORD event_code;
|
||||
|
||||
if (!exec_file)
|
||||
{
|
||||
@ -970,7 +945,7 @@ child_create_inferior (exec_file, allargs, env)
|
||||
memset (&si, 0, sizeof (si));
|
||||
si.cb = sizeof (si);
|
||||
|
||||
cygwin32_conv_to_win32_path (exec_file, real_path);
|
||||
cygwin_conv_to_win32_path (exec_file, real_path);
|
||||
|
||||
flags = DEBUG_ONLY_THIS_PROCESS;
|
||||
|
||||
@ -1016,9 +991,9 @@ child_create_inferior (exec_file, allargs, env)
|
||||
len = strlen (conv_path_names[j]);
|
||||
if (strncmp (conv_path_names[j], env[i], len) == 0)
|
||||
{
|
||||
if (cygwin32_posix_path_list_p (env[i] + len))
|
||||
if (cygwin_posix_path_list_p (env[i] + len))
|
||||
envlen += len
|
||||
+ cygwin32_posix_to_win32_path_list_buf_size (env[i] + len);
|
||||
+ cygwin_posix_to_win32_path_list_buf_size (env[i] + len);
|
||||
else
|
||||
envlen += strlen (env[i]) + 1;
|
||||
break;
|
||||
@ -1040,10 +1015,10 @@ child_create_inferior (exec_file, allargs, env)
|
||||
len = strlen (conv_path_names[j]);
|
||||
if (strncmp (conv_path_names[j], env[i], len) == 0)
|
||||
{
|
||||
if (cygwin32_posix_path_list_p (env[i] + len))
|
||||
if (cygwin_posix_path_list_p (env[i] + len))
|
||||
{
|
||||
memcpy (temp, env[i], len);
|
||||
cygwin32_posix_to_win32_path_list (env[i] + len, temp + len);
|
||||
cygwin_posix_to_win32_path_list (env[i] + len, temp + len);
|
||||
}
|
||||
else
|
||||
strcpy (temp, env[i]);
|
||||
@ -1086,12 +1061,11 @@ child_create_inferior (exec_file, allargs, env)
|
||||
clear_proceed_status ();
|
||||
target_terminal_init ();
|
||||
target_terminal_inferior ();
|
||||
|
||||
ignore_first_first_chance = 1;
|
||||
last_sig = 0;
|
||||
|
||||
/* Run until process and threads are loaded */
|
||||
while (!get_child_debug_event (inferior_pid, &dummy,
|
||||
CREATE_PROCESS_DEBUG_EVENT, &ret))
|
||||
FIRST_EXCEPTION, &ret))
|
||||
continue;
|
||||
|
||||
/* child_continue (DBG_CONTINUE, -1);*/
|
||||
@ -1119,21 +1093,21 @@ child_stop ()
|
||||
|
||||
int
|
||||
child_xfer_memory (CORE_ADDR memaddr, char *our, int len,
|
||||
int write, struct target_ops *target)
|
||||
int write, struct target_ops *target ATTRIBUTE_UNUSED)
|
||||
{
|
||||
DWORD done;
|
||||
if (write)
|
||||
{
|
||||
DEBUG_MEM (("gdb: write target memory, %d bytes at 0x%08x\n",
|
||||
len, memaddr));
|
||||
DEBUG_MEM (("gdb: write target memory, %d bytes at 0x%08lx\n",
|
||||
len, (DWORD) memaddr));
|
||||
WriteProcessMemory (current_process_handle, (LPVOID) memaddr, our,
|
||||
len, &done);
|
||||
FlushInstructionCache (current_process_handle, (LPCVOID) memaddr, len);
|
||||
}
|
||||
else
|
||||
{
|
||||
DEBUG_MEM (("gdb: read target memory, %d bytes at 0x%08x\n",
|
||||
len, memaddr));
|
||||
DEBUG_MEM (("gdb: read target memory, %d bytes at 0x%08lx\n",
|
||||
len, (DWORD) memaddr));
|
||||
ReadProcessMemory (current_process_handle, (LPCVOID) memaddr, our, len,
|
||||
&done);
|
||||
}
|
||||
@ -1328,9 +1302,9 @@ char *
|
||||
cygwin_pid_to_str (int pid)
|
||||
{
|
||||
static char buf[80];
|
||||
if (pid == current_event.dwProcessId)
|
||||
if ((DWORD) pid == current_event.dwProcessId)
|
||||
sprintf (buf, "process %d", pid);
|
||||
else
|
||||
sprintf (buf, "thread %d.0x%x", current_event.dwProcessId, pid);
|
||||
sprintf (buf, "thread %ld.0x%x", current_event.dwProcessId, pid);
|
||||
return buf;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user