@@ -502,7 +502,7 @@ class DartDev {
502502 int idx = 0 ;
503503 char err_msg[256 ];
504504 err_msg[0 ] = ' \0 ' ;
505- intptr_t num_args = argc + 2 ;
505+ intptr_t num_args = argc + 3 ;
506506 char ** exec_argv = new char *[num_args];
507507#if defined(DART_HOST_OS_WINDOWS)
508508 char * exec_name = StringUtilsWin::ArgumentEscape (dartvm_path.get ());
@@ -515,11 +515,20 @@ class DartDev {
515515 Platform::ResolveExecutablePathInto (dart_path, kPathBufSize );
516516 idx += 1 ;
517517#if defined(DART_HOST_OS_WINDOWS)
518- char * dart_name = Utils::SCreate (" --executable_name=%s" , dart_path);
518+ char * dart_name =
519+ Utils::SCreate (" --resolved_executable_name=%s" , dart_path);
520+ exec_argv[idx] = StringUtilsWin::ArgumentEscape (dart_name);
521+ free (dart_name);
522+ idx += 1 ;
523+ dart_name =
524+ Utils::SCreate (" --executable_name=%s" , Platform::GetExecutableName ());
519525 exec_argv[idx] = StringUtilsWin::ArgumentEscape (dart_name);
520526 free (dart_name);
521527#else
522- exec_argv[idx] = Utils::SCreate (" --executable_name=%s" , dart_path);
528+ exec_argv[idx] = Utils::SCreate (" --resolved_executable_name=%s" , dart_path);
529+ idx += 1 ;
530+ exec_argv[idx] =
531+ Utils::SCreate (" --executable_name=%s" , Platform::GetExecutableName ());
523532#endif
524533 for (intptr_t i = 1 ; i < argc; ++i) {
525534#if defined(DART_HOST_OS_WINDOWS)
@@ -629,9 +638,9 @@ class DartDev {
629638 };
630639 // Total count of arguments to be passed to the script being execed.
631640 if (mark_main_isolate_as_system_isolate) {
632- argc_ = argc + num_vm_options + 4 ;
641+ argc_ = argc + num_vm_options + 5 ;
633642 } else {
634- argc_ = argc + num_vm_options + 3 ;
643+ argc_ = argc + num_vm_options + 4 ;
635644 }
636645
637646 // Array of arguments to be passed to the script being execed.
@@ -657,11 +666,18 @@ class DartDev {
657666 char dart_path[kPathBufSize ];
658667 Platform::ResolveExecutablePathInto (dart_path, kPathBufSize );
659668#if defined(DART_HOST_OS_WINDOWS)
660- char * dart_name = Utils::SCreate (" --executable_name=%s" , dart_path);
669+ char * dart_name =
670+ Utils::SCreate (" --resolved_executable_name=%s" , dart_path);
671+ argv_[idx++] = StringUtilsWin::ArgumentEscape (dart_name);
672+ free (dart_name);
673+ dart_name =
674+ Utils::SCreate (" --executable_name=%s" , Platform::GetExecutableName ());
661675 argv_[idx++] = StringUtilsWin::ArgumentEscape (dart_name);
662676 free (dart_name);
663677#else
664- argv_[idx++] = Utils::SCreate (" --executable_name=%s" , dart_path);
678+ argv_[idx++] = Utils::SCreate (" --resolved_executable_name=%s" , dart_path);
679+ argv_[idx++] =
680+ Utils::SCreate (" --executable_name=%s" , Platform::GetExecutableName ());
665681#endif
666682 }
667683 if (mark_main_isolate_as_system_isolate) {
0 commit comments