diff --git a/src/kits/interface/ColumnListView.cpp b/src/kits/interface/ColumnListView.cpp
index 0b034f1..50143b0 100644
a
|
b
|
OutlineView::FixScrollBar(bool scrollToFit)
|
4291 | 4291 | { |
4292 | 4292 | BScrollBar* vScrollBar = ScrollBar(B_VERTICAL); |
4293 | 4293 | if (vScrollBar) { |
| 4294 | fVisibleRect.PrintToStream(); |
4294 | 4295 | if (fItemsHeight > fVisibleRect.Height()) { |
4295 | 4296 | float maxScrollBarValue = fItemsHeight - fVisibleRect.Height(); |
4296 | 4297 | vScrollBar->SetProportion(fVisibleRect.Height() / fItemsHeight); |
diff --git a/src/servers/debug/DebugServer.cpp b/src/servers/debug/DebugServer.cpp
index 24d75e2..cf5d669 100644
a
|
b
|
private:
|
115 | 115 | status_t _PopMessage(DebugMessage *&message); |
116 | 116 | |
117 | 117 | thread_id _EnterDebugger(); |
118 | | void _SetupGDBArguments(const char **argv, int &argc, char *teamString, |
119 | | size_t teamStringSize, bool usingConsoled); |
| 118 | status_t _SetupGDBArguments(BString &argString, const char **argv, |
| 119 | int &argc, char *teamString, size_t teamStringSize, |
| 120 | bool usingConsoled); |
120 | 121 | void _KillTeam(); |
121 | 122 | |
122 | 123 | bool _HandleMessage(DebugMessage *message); |
… |
… |
TeamDebugHandler::_PopMessage(DebugMessage *&message)
|
435 | 436 | } |
436 | 437 | |
437 | 438 | |
438 | | void |
439 | | TeamDebugHandler::_SetupGDBArguments(const char **argv, int &argc, |
440 | | char *teamString, size_t teamStringSize, bool usingConsoled) |
| 439 | status_t |
| 440 | TeamDebugHandler::_SetupGDBArguments(BString &argString, const char **argv, |
| 441 | int &argc, char *teamString, size_t teamStringSize, bool usingConsoled) |
441 | 442 | { |
442 | 443 | // prepare the argument vector |
443 | 444 | snprintf(teamString, teamStringSize, "--pid=%ld", fTeam); |
… |
… |
TeamDebugHandler::_SetupGDBArguments(const char **argv, int &argc,
|
449 | 450 | if (error != B_OK) { |
450 | 451 | debug_printf("debug_server: can't find system-bin directory: %s\n", |
451 | 452 | strerror(error)); |
452 | | return; |
| 453 | return error; |
453 | 454 | } |
454 | 455 | error = terminalPath.Append("consoled"); |
455 | 456 | if (error != B_OK) { |
456 | 457 | debug_printf("debug_server: can't append to system-bin path: %s\n", |
457 | 458 | strerror(error)); |
458 | | return; |
| 459 | return error; |
459 | 460 | } |
460 | 461 | } else { |
461 | 462 | error = find_directory(B_SYSTEM_APPS_DIRECTORY, &terminalPath); |
462 | 463 | if (error != B_OK) { |
463 | 464 | debug_printf("debug_server: can't find system-apps directory: %s\n", |
464 | 465 | strerror(error)); |
465 | | return; |
| 466 | return error; |
466 | 467 | } |
467 | 468 | error = terminalPath.Append("Terminal"); |
468 | 469 | if (error != B_OK) { |
469 | 470 | debug_printf("debug_server: can't append to system-apps path: %s\n", |
470 | 471 | strerror(error)); |
471 | | return; |
| 472 | return error; |
472 | 473 | } |
473 | 474 | } |
474 | 475 | |
475 | | argv[argc++] = terminalPath.Path(); |
| 476 | argString = terminalPath.Path(); |
476 | 477 | |
477 | 478 | if (!usingConsoled) { |
478 | 479 | char windowTitle[64]; |
479 | 480 | snprintf(windowTitle, sizeof(windowTitle), "Debug of Team %ld: %s", |
480 | 481 | fTeam, _LastPathComponent(fExecutablePath)); |
481 | | argv[argc++] = "-t"; |
482 | | argv[argc++] = windowTitle; |
| 482 | argString += "\xff-t\xff"; |
| 483 | argString.Append(windowTitle); |
483 | 484 | } |
484 | 485 | |
485 | 486 | BPath gdbPath; |
… |
… |
TeamDebugHandler::_SetupGDBArguments(const char **argv, int &argc,
|
487 | 488 | if (error != B_OK) { |
488 | 489 | debug_printf("debug_server: can't find system-bin directory: %s\n", |
489 | 490 | strerror(error)); |
490 | | return; |
| 491 | return error; |
491 | 492 | } |
492 | 493 | error = gdbPath.Append("gdb"); |
493 | 494 | if (error != B_OK) { |
494 | 495 | debug_printf("debug_server: can't append to system-bin path: %s\n", |
495 | 496 | strerror(error)); |
496 | | return; |
| 497 | return error; |
| 498 | } |
| 499 | |
| 500 | argString += "\xff"; |
| 501 | argString += gdbPath.Path(); |
| 502 | argString += "\xff"; |
| 503 | argString += teamString; |
| 504 | if (strlen(fExecutablePath) > 0) { |
| 505 | argString += "\xff"; |
| 506 | argString += fExecutablePath; |
497 | 507 | } |
498 | 508 | |
499 | | argv[argc++] = gdbPath.Path(); |
500 | | argv[argc++] = teamString; |
501 | | if (strlen(fExecutablePath) > 0) |
502 | | argv[argc++] = fExecutablePath; |
| 509 | int32 i = 0; |
| 510 | do { |
| 511 | argv[argc++] = &argString[i]; |
| 512 | for (; argString[i] != -1 && i < argString.Length(); i++) |
| 513 | // skip to next argument |
| 514 | ; |
| 515 | |
| 516 | if (i < argString.Length()) { |
| 517 | argString[i] = '\0'; |
| 518 | i++; |
| 519 | } |
| 520 | } while (i < argString.Length()); |
| 521 | |
503 | 522 | argv[argc] = NULL; |
| 523 | |
| 524 | return B_OK; |
504 | 525 | } |
505 | 526 | |
506 | 527 | |
… |
… |
TeamDebugHandler::_EnterDebugger()
|
522 | 543 | return error; |
523 | 544 | } |
524 | 545 | |
| 546 | BString argString; |
525 | 547 | const char *argv[16]; |
526 | 548 | int argc = 0; |
527 | 549 | char teamString[32]; |
528 | 550 | bool debugInConsoled = _IsGUIServer() || !_AreGUIServersAlive(); |
529 | 551 | #ifdef HANDOVER_USE_GDB |
530 | 552 | |
531 | | _SetupGDBArguments(argv, argc, teamString, sizeof(teamString), |
532 | | debugInConsoled); |
| 553 | error = _SetupGDBArguments(argString, argv, argc, teamString, |
| 554 | sizeof(teamString), debugInConsoled); |
| 555 | if (error != B_OK) { |
| 556 | debug_printf("debug_server: Failed to set up gdb arguments: %s\n", |
| 557 | strerror(error)); |
| 558 | return error; |
| 559 | } |
533 | 560 | |
534 | 561 | // start the terminal |
535 | 562 | TRACE(("debug_server: TeamDebugHandler::_EnterDebugger(): starting " |
… |
… |
TeamDebugHandler::_EnterDebugger()
|
537 | 564 | |
538 | 565 | #elif defined(HANDOVER_USE_DEBUGGER) |
539 | 566 | if (debugInConsoled) { |
540 | | _SetupGDBArguments(argv, argc, teamString, sizeof(teamString), |
541 | | debugInConsoled); |
| 567 | error = _SetupGDBArguments(argString, argv, argc, teamString, |
| 568 | sizeof(teamString), debugInConsoled); |
| 569 | if (error != B_OK) { |
| 570 | debug_printf("debug_server: Failed to set up gdb arguments: %s\n", |
| 571 | strerror(error)); |
| 572 | return error; |
| 573 | } |
542 | 574 | } else { |
543 | 575 | // prepare the argument vector |
544 | | snprintf(teamString, sizeof(teamString), "%ld", fTeam); |
545 | | |
546 | 576 | BPath debuggerPath; |
547 | 577 | error = find_directory(B_SYSTEM_APPS_DIRECTORY, &debuggerPath); |
548 | 578 | if (error != B_OK) { |
… |
… |
TeamDebugHandler::_EnterDebugger()
|
557 | 587 | return error; |
558 | 588 | } |
559 | 589 | |
560 | | argv[argc++] = debuggerPath.Path(); |
561 | | argv[argc++] = "--team"; |
562 | | argv[argc++] = teamString; |
| 590 | argString.SetToFormat("%s --team %ld", debuggerPath.Path(), fTeam); |
| 591 | |
| 592 | argv[argc++] = argString.String(); |
| 593 | int32 stringOffset = strlen(debuggerPath.Path()); |
| 594 | argString[stringOffset] = '\0'; |
| 595 | argv[argc++] = &argString[stringOffset + 1]; |
| 596 | stringOffset += 7; |
| 597 | argString[stringOffset] = '\0'; |
| 598 | argv[argc++] = &argString[stringOffset + 1]; |
563 | 599 | argv[argc] = NULL; |
564 | 600 | |
565 | 601 | // start the debugger |