我正在使用GDB调试应用程序,当我进入框架时,会看到以下内容:
#2 0x00007fff4da4276b in MHWRender::THgeometryOverrideEvaluator::doDGBoundingBox(TdgContext const&, OGSMayaCompoundNode*) ()
通常,我只是打印出参数地址,但是在这里第二个参数的情况下,没有参数名称。如何获取所需的信息?
答案 0 :(得分:1)
如何获取所需的信息?
您得到的输出表明没有调试信息的情况下正在编译代码。
最简单的解决方法是根据需要添加<?php
use Carbon\Carbon;
use Carbon\CarbonPeriod;
use Carbon\CarbonInterval;
class PeriodInterval {
public function hoursIn() {
/**
* Time Periods
*/
$periods = [
'day' => [
'08:00:00',
'18:00:00'
],
'night' => [
'18:00:00',
'08:00:00'
],
'lunch' => [
'11:00:00',
'14:00:00'
]
];
/**
* Time Intervals
*/
$intervals = [
'parking' => [
'John Doe' => [
Carbon::createFromFormat('Y-m-d H:i:s', '2018-12-10 07:00:00'),
Carbon::createFromFormat('Y-m-d H:i:s', '2018-12-10 09:00:00')
],
'Jane Doe' => [
Carbon::createFromFormat('Y-m-d H:i:s', '2018-12-10 08:00:00'),
Carbon::createFromFormat('Y-m-d H:i:s', '2018-12-10 09:00:00')
],
'John Hope' => [
Carbon::createFromFormat('Y-m-d H:i:s', '2018-12-10 11:00:00'),
Carbon::createFromFormat('Y-m-d H:i:s', '2018-12-10 13:00:00')
],
'Jane Hope' => [
Carbon::createFromFormat('Y-m-d H:i:s', '2018-12-10 18:00:00'),
Carbon::createFromFormat('Y-m-d H:i:s', '2018-12-10 19:00:00')
]
]
];
/**
* Hours for Interval in Period
*/
function hoursForIntervalInPeriod(array $period, array $interval) {
$Period = new CarbonPeriod(array_shift($interval)->toDateTimeString(), '1 hour', array_pop($interval)->toDateTimeString());
return $Period->filter(function($date) use ($period) {
$period_starts = Carbon::createFromFormat('Y-m-d H:i:s', $date->format('Y-m-d') . ' ' . array_shift($period));
$period_ends = Carbon::createFromFormat('Y-m-d H:i:s', $date->format('Y-m-d') . ' ' . array_pop($period));
// Normal Period
if ($period_starts < $period_ends) {
return ($date >= $period_starts && $date < $period_ends);
}
// Inverted Period (Overnight)
if ($period_starts > $period_ends) {
return ($date >= $period_starts || $date < $period_ends);
}
return false;
})->count();
}
/**
* Map Everything
*/
$hours = array_map(function($interval, $interval_key) use ($periods) {
return array_map(function ($period, $period_key) use ($interval, $interval_key) {
return [ $interval_key . ucfirst($period_key) => array_map(function($interval_item, $interval_item_key) use ($period) {
/**
* Calculate Total Hours
*/
$total_hours = hoursForIntervalInPeriod($period, $interval_item);
return [ $interval_item_key => $total_hours ];
}, $interval, array_keys($interval)) ];
}, $periods, array_keys($periods));
}, $intervals, array_keys($intervals));
return $hours;
}
}
并重建您的应用程序。
没有调试信息,您只能在程序集级别进行调试,这需要了解平台上的调用约定(未指定)。
假设这是-g
上的Linux,并且假设x86_64
不是doDGBoundingBox
函数,则第一个(static
)参数将在{{1}中传递},在this
中排名第二($rdi
),在TdgContext&
中排名第三($rsi
)。 Reference。