| OLD | NEW | 
|---|
| 1 /* Handle Native Client manifest files. | 1 /* Handle Native Client manifest files. | 
| 2 | 2 | 
| 3    Copyright (C) 2011 Free Software Foundation, Inc. | 3    Copyright (C) 2011 Free Software Foundation, Inc. | 
| 4 | 4 | 
| 5    This file is part of GDB. | 5    This file is part of GDB. | 
| 6 | 6 | 
| 7    This program is free software; you can redistribute it and/or modify | 7    This program is free software; you can redistribute it and/or modify | 
| 8    it under the terms of the GNU General Public License as published by | 8    it under the terms of the GNU General Public License as published by | 
| 9    the Free Software Foundation; either version 3 of the License, or | 9    the Free Software Foundation; either version 3 of the License, or | 
| 10    (at your option) any later version. | 10    (at your option) any later version. | 
| (...skipping 323 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 334     } | 334     } | 
| 335 } | 335 } | 
| 336 | 336 | 
| 337 /* GDB commands for specifying Native Client files.  */ | 337 /* GDB commands for specifying Native Client files.  */ | 
| 338 | 338 | 
| 339 static void | 339 static void | 
| 340 nacl_irt_command (char *args, int from_tty) | 340 nacl_irt_command (char *args, int from_tty) | 
| 341 { | 341 { | 
| 342   if (args) | 342   if (args) | 
| 343     { | 343     { | 
|  | 344       char **argv; | 
|  | 345       struct cleanup *old_chain; | 
| 344       char *nacl_irt_filename; | 346       char *nacl_irt_filename; | 
| 345       nacl_irt_filename = tilde_expand (args); | 347 | 
|  | 348       argv = gdb_buildargv(args); | 
|  | 349       old_chain = make_cleanup_freeargv(argv); | 
|  | 350       if (*argv == NULL) | 
|  | 351 »       error (_("No IRT file name was specified")); | 
|  | 352 | 
|  | 353       nacl_irt_filename = tilde_expand (*argv); | 
|  | 354       make_cleanup(xfree, nacl_irt_filename); | 
|  | 355 | 
| 346       symbol_file_add (nacl_irt_filename, from_tty ? SYMFILE_VERBOSE : 0, | 356       symbol_file_add (nacl_irt_filename, from_tty ? SYMFILE_VERBOSE : 0, | 
| 347                        NULL, OBJF_USERLOADED); | 357                        NULL, OBJF_USERLOADED); | 
| 348       xfree (nacl_irt_filename); |  | 
| 349       /* Recalculate frames.  */ | 358       /* Recalculate frames.  */ | 
| 350       reinit_frame_cache (); | 359       reinit_frame_cache (); | 
|  | 360       do_cleanups(old_chain); | 
| 351     } | 361     } | 
| 352 } | 362 } | 
| 353 | 363 | 
| 354 static struct observer *about_to_proceed_observer = NULL; | 364 static struct observer *about_to_proceed_observer = NULL; | 
| 355 | 365 | 
| 356 static void | 366 static void | 
| 357 about_to_proceed_hook () | 367 about_to_proceed_hook () | 
| 358 { | 368 { | 
| 359   if (exec_bfd == NULL) | 369   if (exec_bfd == NULL) | 
| 360     { | 370     { | 
| 361       const char *filename = nacl_manifest_find ("NaClMain"); | 371       const char *filename = nacl_manifest_find ("NaClMain"); | 
| 362       exec_file_attach (filename, 0); | 372       exec_file_attach (filename, 0); | 
| 363       symbol_file_add (filename, SYMFILE_MAINLINE, NULL, 0); | 373       symbol_file_add (filename, SYMFILE_MAINLINE, NULL, 0); | 
| 364     } | 374     } | 
| 365 } | 375 } | 
| 366 | 376 | 
| 367 static void | 377 static void | 
| 368 nacl_manifest_command (char *args, int from_tty) | 378 nacl_manifest_command (char *args, int from_tty) | 
| 369 { | 379 { | 
| 370   if (args) | 380   if (args) | 
| 371     { | 381     { | 
|  | 382       char **argv; | 
|  | 383       struct cleanup *old_chain; | 
| 372       char *manifest_filename; | 384       char *manifest_filename; | 
| 373       struct cleanup *old_chain; |  | 
| 374       struct json_manifest_reader r = { 0 }; | 385       struct json_manifest_reader r = { 0 }; | 
| 375 | 386 | 
| 376       manifest_filename = tilde_expand (args); | 387       argv = gdb_buildargv (args); | 
| 377       old_chain = make_cleanup (xfree, manifest_filename); | 388       old_chain = make_cleanup_freeargv (argv); | 
|  | 389       if (*argv == NULL) | 
|  | 390 »       error (_("No manifest file name was specified")); | 
|  | 391 | 
|  | 392       manifest_filename = tilde_expand (*argv); | 
|  | 393       make_cleanup (xfree, manifest_filename); | 
| 378 | 394 | 
| 379       r.file = fopen (manifest_filename, "r"); | 395       r.file = fopen (manifest_filename, "r"); | 
| 380       if (!r.file) | 396       if (!r.file) | 
| 381         perror_with_name (manifest_filename); | 397         perror_with_name (manifest_filename); | 
| 382       make_cleanup_fclose (r.file); | 398       make_cleanup_fclose (r.file); | 
| 383 | 399 | 
| 384       r.dirname = ldirname (manifest_filename); | 400       r.dirname = ldirname (manifest_filename); | 
| 385       make_cleanup (xfree, r.dirname); | 401       make_cleanup (xfree, r.dirname); | 
| 386 | 402 | 
| 387       /* TODO: Kill existing manifest only if new one parsed OK!  */ | 403       /* TODO: Kill existing manifest only if new one parsed OK!  */ | 
| (...skipping 19 matching lines...) Expand all  Loading... | 
| 407 | 423 | 
| 408   c = add_com ("nacl-irt", class_files, nacl_irt_command, | 424   c = add_com ("nacl-irt", class_files, nacl_irt_command, | 
| 409                _("Use FILE as Native Client IRT to be debugged.")); | 425                _("Use FILE as Native Client IRT to be debugged.")); | 
| 410   set_cmd_completer (c, filename_completer); | 426   set_cmd_completer (c, filename_completer); | 
| 411 | 427 | 
| 412   c = add_com ("nacl-manifest", class_files, nacl_manifest_command, | 428   c = add_com ("nacl-manifest", class_files, nacl_manifest_command, | 
| 413                _("Use FILE as Native Client manifest for the program" | 429                _("Use FILE as Native Client manifest for the program" | 
| 414                  " to be debugged.")); | 430                  " to be debugged.")); | 
| 415   set_cmd_completer (c, filename_completer); | 431   set_cmd_completer (c, filename_completer); | 
| 416 } | 432 } | 
| OLD | NEW | 
|---|