Просмотр исходного кода

svc: Specify handle value in thread's name

Allows the handle to be seen alongside the entry point.
Lioncash 7 лет назад
Родитель
Сommit
3283aa1e20
2 измененных файлов с 10 добавлено и 2 удалено
  1. 5 2
      src/core/hle/kernel/svc.cpp
  2. 5 0
      src/core/hle/kernel/thread.h

+ 5 - 2
src/core/hle/kernel/svc.cpp

@@ -1244,10 +1244,9 @@ static ResultCode CreateThread(Core::System& system, Handle* out_handle, VAddr e
         return ERR_INVALID_THREAD_PRIORITY;
         return ERR_INVALID_THREAD_PRIORITY;
     }
     }
 
 
-    const std::string name = fmt::format("thread-{:X}", entry_point);
     auto& kernel = system.Kernel();
     auto& kernel = system.Kernel();
     CASCADE_RESULT(SharedPtr<Thread> thread,
     CASCADE_RESULT(SharedPtr<Thread> thread,
-                   Thread::Create(kernel, name, entry_point, priority, arg, processor_id, stack_top,
+                   Thread::Create(kernel, "", entry_point, priority, arg, processor_id, stack_top,
                                   *current_process));
                                   *current_process));
 
 
     const auto new_thread_handle = current_process->GetHandleTable().Create(thread);
     const auto new_thread_handle = current_process->GetHandleTable().Create(thread);
@@ -1258,6 +1257,10 @@ static ResultCode CreateThread(Core::System& system, Handle* out_handle, VAddr e
     }
     }
     *out_handle = *new_thread_handle;
     *out_handle = *new_thread_handle;
 
 
+    // Set the thread name for debugging purposes.
+    thread->SetName(
+        fmt::format("thread[entry_point={:X}, handle={:X}]", entry_point, *new_thread_handle));
+
     system.CpuCore(thread->GetProcessorID()).PrepareReschedule();
     system.CpuCore(thread->GetProcessorID()).PrepareReschedule();
 
 
     return RESULT_SUCCESS;
     return RESULT_SUCCESS;

+ 5 - 0
src/core/hle/kernel/thread.h

@@ -102,6 +102,11 @@ public:
     std::string GetName() const override {
     std::string GetName() const override {
         return name;
         return name;
     }
     }
+
+    void SetName(std::string new_name) {
+        name = std::move(new_name);
+    }
+
     std::string GetTypeName() const override {
     std::string GetTypeName() const override {
         return "Thread";
         return "Thread";
     }
     }