DebugActiveProcessStop是否关闭句柄?

时间:2018-11-18 17:57:11

标签: windows debugging winapi

根据the documentation import pandas as pd from sklearn.ensemble import GradientBoostingRegressor from sklearn.model_selection import KFold from sklearn.model_selection import cross_val_score dataset = pd.read_excel("C:\Futures\Futures.xls") dataset['Contracts'] = dataset['Contracts'].str.rstrip('(E)') dataset['Contracts'] = pd.to_datetime(dataset['Contracts']) dataset = dataset.set_index('Contracts') dataset1 = dataset.values X = dataset1[:,0:5] y = dataset1[:,0] gbrt=GradientBoostingRegressor(n_estimators=100) kfold = KFold(n_splits=10, random_state=7, shuffle = True) results = cross_val_score(gbrt, X, y, cv=kfold) print("Accuracy: %.2f%% (%.2f%%)" % (results.mean()*100, results.std()*100)) gbrt.fit(X_train, y_train) predictions = gbrt.predict(X_test) print(predictions) 将在ContinueDebugEventEXIT_THREAD_DEBUG_EVENT之后关闭句柄。

在以下情况下这些句柄会发生什么:

EXIT_PROCESS_DEBUG_EVENT

该进程和线程仍将运行,并且the documentation没有提及任何有关句柄的内容。我可以假设他们会为我关闭吗?

1 个答案:

答案 0 :(得分:2)

是,DebugActiveProcessStop调用CloseAllProcessHandles,然后再通过DbgUiStopDebugging调用实际停止调试。 CloseAllProcessHandles关闭所有打开的线程和进程句柄。它列出了存储在线程TEB中的列表-这意味着调用只能从调用其他调试api(例如WaitForDebugEvent)的同一线程完成。不幸的是,我也没有在文档中查看对此的确认,仅是研究。这张来自win10的屏幕截图

enter image description here