You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
-Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#include "defs.h"
#include <sys/types.h>
#include <signal.h>
-#include <string.h>
+#include "gdb_string.h"
#include <sys/param.h>
#include <fcntl.h>
#include <unistd.h>
#include "frame.h"
#include "regex.h"
#include "inferior.h"
+#include "environ.h"
#include "language.h"
#include "gdbcmd.h"
-#define MAX_PATH_SIZE 256 /* FIXME: Should be dynamic */
+#define MAX_PATH_SIZE 512 /* FIXME: Should be dynamic */
/* On SVR4 systems, for the initial implementation, use some runtime startup
symbol as the "startup mapping complete" breakpoint address. The models
filename = tilde_expand (so -> so_name);
old_chain = make_cleanup (free, filename);
- scratch_chan = openp (getenv ("PATH"), 1, filename, O_RDONLY, 0,
- &scratch_pathname);
+ scratch_chan = openp (get_in_environ (inferior_environ, "PATH"),
+ 1, filename, O_RDONLY, 0, &scratch_pathname);
if (scratch_chan < 0)
{
- scratch_chan = openp (getenv ("LD_LIBRARY_PATH"), 1, filename,
- O_RDONLY, 0, &scratch_pathname);
+ scratch_chan = openp (get_in_environ
+ (inferior_environ, "LD_LIBRARY_PATH"),
+ 1, filename, O_RDONLY, 0, &scratch_pathname);
}
if (scratch_chan < 0)
{
so -> abfd = abfd;
abfd -> cacheable = true;
+ /* copy full path name into so_name, so that later symbol_file_add can find
+ it */
+ if (strlen (scratch_pathname) >= MAX_PATH_SIZE)
+ error ("Full path name length of shared library exceeds MAX_PATH_SIZE in so_list structure.");
+ strcpy (so->so_name, scratch_pathname);
+
if (!bfd_check_format (abfd, bfd_object))
{
error ("\"%s\": not in executable format: %s.",
static int match_main (soname)
char *soname;
{
-char **mainp;
+ char **mainp;
-for (mainp = main_name_list; *mainp != NULL; mainp++)
- {
- if (strcmp (soname, *mainp) == 0)
+ for (mainp = main_name_list; *mainp != NULL; mainp++)
+ {
+ if (strcmp (soname, *mainp) == 0)
return (1);
- }
+ }
-return (0);
+ return (0);
}
/*