home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / gdb-4.16-base.tgz / gdb-4.16-base.tar / fsf / gdb / gdb / news-xdep.c < prev    next >
C/C++ Source or Header  |  1995-08-01  |  2KB  |  66 lines

  1. /* Low level interface to ptrace, for GDB when running under Unix.
  2.    Copyright (C) 1986, 1987, 1989 Free Software Foundation, Inc.
  3.  
  4. This file is part of GDB.
  5.  
  6. This program is free software; you can redistribute it and/or modify
  7. it under the terms of the GNU General Public License as published by
  8. the Free Software Foundation; either version 2 of the License, or
  9. (at your option) any later version.
  10.  
  11. This program is distributed in the hope that it will be useful,
  12. but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14. GNU General Public License for more details.
  15.  
  16. You should have received a copy of the GNU General Public License
  17. along with this program; if not, write to the Free Software
  18. Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
  19.  
  20. #ifdef __GNUC__
  21. /* Bad implement execle(3). It's depend for "/bin/cc".
  22.  
  23.    main()
  24.    {
  25.      printf("execle:\n");
  26.      execle(FILE, ARGS, envp);
  27.      exit(1);
  28.    }
  29.  
  30.    GCC:
  31.    link a6,#0
  32.    pea LC5    ; call printf
  33.    jbsr _printf
  34.    ;        ; (not popd stack)
  35.    pea _envp    ; call execle
  36.    clrl sp@-
  37.    pea LC4
  38.    pea LC4
  39.    pea LC4
  40.    pea LC3
  41.    pea LC6
  42.    jbsr _execle
  43.    addw #32,sp    ; delayed pop !!
  44.  
  45.    /bin/cc:
  46.    link.l    fp,#L23
  47.    movem.l    #L24,(sp)
  48.    pea    L26        ; call printf
  49.    jbsr    _printf
  50.    addq.l    #4,sp    ; <--- popd stack !!
  51.    pea    _envp        ; call execle
  52.    clr.l    -(sp)
  53.    pea    L32
  54.    
  55.    */
  56.  
  57. execle(name, args)
  58.      char *name, *args;
  59. {
  60.   register char    **env = &args;
  61.   while (*env++)
  62.     ;
  63.   execve(name, (char **)&args, (char **)*env);
  64. }
  65. #endif
  66.